208 KiB
Change Log
5.37.1
Patch Changes
-
#2416
619c87fThanks @DylanPiercey! - Fix package json repository config. -
Updated dependencies [
619c87f]:- @marko/compiler@5.39.1
5.37.0
Minor Changes
- #2408
2be37f7Thanks @DylanPiercey! - Merge translator packages into their respective runtime packages.
Patch Changes
- Updated dependencies [
2be37f7]:- @marko/compiler@5.39.0
5.36.5
Patch Changes
-
#2404
fbc0cefThanks @DylanPiercey! - Upgrade all dependencies. Fix support for latest babel version. -
Updated dependencies [
fbc0cef]:- @marko/translator-default@6.1.3
- @marko/compiler@5.38.5
5.36.4
Patch Changes
- #2402
0a38845Thanks @DylanPiercey! - Fixes race conditions with new async iterator api.
5.36.3
Patch Changes
-
#2395
00cc3fbThanks @DylanPiercey! - Fix issue where lasso manifest file paths were not being provided correctly for lasso-marko. -
Updated dependencies [
00cc3fb]:- @marko/translator-default@6.1.2
- @marko/compiler@5.38.3
5.36.2
Patch Changes
-
#2387
8e67da0Thanks @DylanPiercey! - Fix issue with an attribute tag containing only a spread. -
Updated dependencies [
8e67da0]:- @marko/translator-default@6.1.1
- @marko/compiler@5.38.2
5.36.1
Patch Changes
-
#2383
133b562Thanks @DylanPiercey! - Partially revert #2380 which was causing non idempotent builds. -
Updated dependencies [
133b562]:- @marko/compiler@5.38.1
5.36.0
Minor Changes
- #2380
c5d2b48Thanks @DylanPiercey! - ReplaceoptimizeKnownTemplateswith a better an simpleroptimizeRegistryIdapi.
Patch Changes
- Updated dependencies [
c5d2b48]:- @marko/translator-default@6.1.0
- @marko/compiler@5.38.0
5.35.35
Patch Changes
-
#2368
bb44af0Thanks @DylanPiercey! - Fix issue with "package: " deps (used for lasso) not being hoisted when building the hydrate output. -
Updated dependencies [
bb44af0]:- @marko/translator-default@6.0.26
- @marko/compiler@5.37.26
5.35.34
Patch Changes
-
#2364
cbcd7ecThanks @DylanPiercey! - Addreturnmethod to asyncIterator on render method to better support apis that expect it to be there. -
#2367
c8e943dThanks @DylanPiercey! - Ignore errors from child template analysis (assume child will be compiled after imported anyway). -
#2365
894d0d0Thanks @rturnq! - Expose globalConfig and fix config default export -
Updated dependencies [
c8e943d,894d0d0]:- @marko/compiler@5.37.25
- @marko/translator-default@6.0.25
5.35.33
Patch Changes
-
#2358
76951d8Thanks @DylanPiercey! - Always use MarkoTagBody AST nodes for control flow (even with attribute tags). This fixes a regression with the @marko/tags-api-preview and is more accurate to what is actually happening, especially from a variable scoping perspective. -
Updated dependencies [
76951d8]:- @marko/translator-default@6.0.24
- @marko/compiler@5.37.24
5.35.32
Patch Changes
-
#2346
8ec88ffThanks @DylanPiercey! - Switch back to using babels startIndex api since the regression has been fixed. -
#2344
bafeac1Thanks @DylanPiercey! - Optimize circular reference child template analysis. -
Updated dependencies [
8ec88ff,bafeac1]:- @marko/compiler@5.37.23
- @marko/translator-default@6.0.23
5.35.31
Patch Changes
-
#2342
8e07673Thanks @DylanPiercey! - Make attribute tags a property on the MarkoTag AST and refactor how attribute tags are translated. -
Updated dependencies [
8e07673]:- @marko/translator-default@6.0.22
- @marko/compiler@5.37.22
5.35.30
Patch Changes
-
#2338
033adb9Thanks @DylanPiercey! - Ensure that errors discovered while loading optional module level taglibs are forwarded through the onError api. -
Updated dependencies [
033adb9]:- @marko/compiler@5.37.21
5.35.29
Patch Changes
-
#2334
212fbd0Thanks @LuLaValva! - TypeScript dependency fix -
#2337
ea95de1Thanks @DylanPiercey! - Avoid babelstartColumnapi until https://github.com/babel/babel/pull/16936 is merged. -
Updated dependencies [
212fbd0,ea95de1]:- @marko/compiler@5.37.20
- @marko/translator-default@6.0.21
5.35.28
Patch Changes
-
#2332
b920f86Thanks @DylanPiercey! - Fix incorrect AttrTag tag type definition. -
#2332
6e87653Thanks @DylanPiercey! - Remove extraneous runtime helper. -
Updated dependencies [
6e87653]:- @marko/translator-default@6.0.20
5.35.27
Patch Changes
-
#2326
807b725Thanks @DylanPiercey! - Deprecated the Marko.RepeatableAttrTag type (which is now an alias of Marko.AttrTag). This type was overcomplicating things and leading people to incorrectly handle the single item case. Update docs to avoid recommending relying on the array case since this behavior changes in Marko 6 to always be a single (iterable) item.Updates the
Marko.Inputtype to handle changes to theMarko.Bodytype from@marko/language-tools.
5.35.26
Patch Changes
-
#2324
4776e33Thanks @rturnq! - Allow child template analysis on manually imported tags in translator-default and optimize direct reference of imported tag -
Updated dependencies [
4776e33]:- @marko/translator-default@6.0.19
- @marko/compiler@5.37.19
5.35.25
Patch Changes
- #2322
420405dThanks @DylanPiercey! - Remove the default cache auto clearing behavior. Previously the default compiler "cache" was cleared every setImmediate. This was to support server hot reloading in apps usingLasso(andbrowser-refresh). Since we brought back support forbrowser-refreshin the Marko package we now clear this cache when browser-refresh triggers a change making the default cache clearing redundant. - Updated dependencies [
420405d]:- @marko/compiler@5.37.18
5.35.24
Patch Changes
-
#2320
13b3270Thanks @DylanPiercey! - Optimize how style and script tags are diffed (similar to textarea) where the text nodes are concatenated and diffed as a whole. -
#2320
a9da4d6Thanks @DylanPiercey! - Fix regression from #2138 which caused nullable native dynamic tags with body contents to not output the end tag. 😱 -
Updated dependencies [
13b3270,a9da4d6]:- @marko/translator-default@6.0.18
- @marko/compiler@5.37.17
5.35.23
Patch Changes
-
#2318
1dbb189Thanks @DylanPiercey! - Fix issue where a null able native tag with no body content (eg<${show && "div}/>) was incorrectly outputting a fragment for the body content (which did not exist). -
Updated dependencies [
1dbb189]:- @marko/translator-default@6.0.17
- @marko/compiler@5.37.16
5.35.22
Patch Changes
-
#2316
e57e706Thanks @DylanPiercey! - Expose the v3 legacy helpers properly in the marko package.json -
#2316
1e2c903Thanks @DylanPiercey! - Fix regression where an out of order await resolves before the "" (automatically injected at the end of the body) would be flushed. In practice this means an in order await after all out of order awaits (that resolves after any of the out of order awaits) was causing some out of order awaits not to be reordered.
5.35.21
Patch Changes
-
#2314
75d0ab8Thanks @DylanPiercey! - Downgrade minimatch module since latest version requires node 20. -
#2315
5b4ffa8Thanks @DylanPiercey! - Add back the "legacy helpers" from Marko 3 to simplify the process of upgrading some older applications. -
#2308
a279d09Thanks @LuLaValva! - Update documentation
5.35.20
Patch Changes
-
#2306
4d8eb53Thanks @mlrawlings! - fix: upgrade babel/it-fails, fix VComment -
#2310
f06d4b0Thanks @DylanPiercey! - Avoid babel compiler assert api to fix a regression. -
Updated dependencies [
f06d4b0]:- @marko/translator-default@6.0.16
- @marko/compiler@5.37.15
5.35.19
Patch Changes
-
#2303
e6d117bThanks @rturnq! - Add frame property to compile errors -
Updated dependencies [
e6d117b]:- @marko/compiler@5.37.14
5.35.18
Patch Changes
-
#2300
d45f91aThanks @DylanPiercey! - Fix issue where legacy compatw-binddirectives were being incorrectly optimized as static vdom. -
Updated dependencies [
d45f91a]:- @marko/translator-default@6.0.15
- @marko/compiler@5.37.13
5.35.17
Patch Changes
-
#2298
c01d83fThanks @DylanPiercey! - Fix issue with the "ignoreUnrecognizedTags" compiler option being used with dynamic tags that have attribute tags. -
#2298
cfff311Thanks @DylanPiercey! - Removes the debug mode dom manipulation warning since chrome dropped the api's that allowed us to get useful stack traces. -
Updated dependencies [
c01d83f,cfff311]:- @marko/translator-default@6.0.14
- @marko/compiler@5.37.12
5.35.16
Patch Changes
-
#2296
81c5c0eThanks @DylanPiercey! - Fix issues related to recent babel changes. -
#2296
81c5c0eThanks @DylanPiercey! - Improve support for @marko/compat. -
Updated dependencies [
81c5c0e,81c5c0e]:- @marko/compiler@5.37.11
- @marko/translator-default@6.0.13
5.35.15
Patch Changes
-
#2294
c600610Thanks @DylanPiercey! - Fix issue with comment nodes in unescaped html by bringing back virtual comment nodes. -
Updated dependencies [
c600610]:- @marko/translator-default@6.0.12
- @marko/compiler@5.37.10
5.35.14
Patch Changes
- #2289
e20e9afThanks @LuLaValva! - Add Marko to window when required
5.35.13
Patch Changes
-
#2286
55338b5Thanks @DylanPiercey! - Optimize template literal printing in html output. -
Updated dependencies [
55338b5]:- @marko/translator-default@6.0.11
- @marko/compiler@5.37.9
5.35.12
Patch Changes
-
#2284
d0723d3Thanks @DylanPiercey! - Fix off by one issue for static statement sourcemaps (eg import) and for concise mode tags. -
Updated dependencies [
d0723d3]:- @marko/compiler@5.37.8
- @marko/translator-default@6.0.10
5.35.11
Patch Changes
-
#2282
32e2effThanks @DylanPiercey! - Improve handling of sourcemaps for inline style blocks and tags. -
Updated dependencies [
32e2eff]:- @marko/translator-default@6.0.9
- @marko/compiler@5.37.7
5.35.10
Patch Changes
-
#2277
ce88d81Thanks @DylanPiercey! - Fix "off by one" issue with source location information when the index was at the start of the line. -
Updated dependencies [
ce88d81]:- @marko/compiler@5.37.6
- @marko/translator-default@6.0.8
5.35.9
Patch Changes
-
#2274
5cea7d6Thanks @DylanPiercey! - Optimize javascript parsing helpers to pass in start line / column information to babel rather than faking it with whitespace.For large templates this can have a significant impact on parsing performance.
-
Updated dependencies [
5cea7d6]:- @marko/compiler@5.37.5
- @marko/translator-default@6.0.7
5.35.8
Patch Changes
- #2267
b533216Thanks @mlrawlings! - Add open graph attributes to type defs
5.35.7
Patch Changes
-
#2264
992753eThanks @LuLaValva! - For-of loop code coverage improvement -
Updated dependencies [
992753e]:- @marko/translator-default@6.0.6
5.35.6
Patch Changes
5.35.5
Patch Changes
-
#2252
339c28dThanks @DylanPiercey! - Allow diagnostic fixes in parse stage. -
Updated dependencies [
bfe85d1,339c28d,339c28d,339c28d]:- @marko/compiler@5.37.4
- @marko/translator-default@6.0.5
5.35.4
Patch Changes
- #2250
2cf464fThanks @DylanPiercey! - Allow registering/loading top level hydrated components after the "load" event. Previously after the load event it was assumed all assets would have been loaded but this is not always accurate for assets loaded through interactions.
5.35.3
Patch Changes
-
#2248
0ced6e1Thanks @DylanPiercey! - Fix typo in upgrade docs and adding missingbrowser-refreshmodule. -
Updated dependencies [
0ced6e1]:- @marko/compiler@5.37.3
- @marko/translator-default@6.0.4
5.35.2
Patch Changes
-
#2246
a699cd9Thanks @DylanPiercey! - Misc backward compat improvements:- Expose
marko/browser-refreshas a noop - Allow translators to specify "optional" taglibs to load if they're installed (used for automatically loading compat taglibs)
marko/node-requirelegacy require hook now disables user babel transforms by default- Allow
<macro>tag instances to use tag arguments syntax
- Expose
-
Updated dependencies [
a699cd9]:- @marko/translator-default@6.0.3
- @marko/compiler@5.37.2
5.35.1
Patch Changes
-
#2244
934dc13Thanks @LuLaValva! - Allow mixing comments with attr tags -
Updated dependencies [
934dc13]:- @marko/translator-default@6.0.2
- @marko/compiler@5.37.1
5.35.0
Minor Changes
- #2238
a741f36Thanks @DylanPiercey! - Add new optimizedRegistryIds compiler option
Patch Changes
- Updated dependencies [
a741f36]:- @marko/compiler@5.37.0
5.34.5
Patch Changes
-
#2232
a67e1c4Thanks @DylanPiercey! - Fix issue where theignoreUnrecognizedTagscompiler option was incorrectly escaping attribute tags for recognized tags that did not explicitly define their attribute tags in a marko.json -
Updated dependencies [
a67e1c4]:- @marko/translator-default@6.0.1
- @marko/compiler@5.36.2
5.34.4
Patch Changes
- #2226
7691418Thanks @DylanPiercey! - Fix issue where an out of order await contained an in order await and then another out of order await. This previously caused a race condition where if the final out of order await resolved first, it'd try to send it's content without it's placeholder location being available.
5.34.3
Patch Changes
- #2223
1453eb8Thanks @LuLaValva! - fix native tag return types
5.34.2
Patch Changes
- Updated dependencies [
0ee141c]:- @marko/translator-default@6.0.0
5.34.1
Patch Changes
-
#2217
4fc4614Thanks @DylanPiercey! - Fix issue where element keys could be different because of hoisted const elements not always being keyed. This could cause a hydration issue since the server and client compilations would not agree on the keys. -
Updated dependencies [
4fc4614]:- @marko/translator-default@5.33.1
- @marko/compiler@5.36.1
5.34.0
Minor Changes
- #2214
2d0a566Thanks @DylanPiercey! - Using event handlers now causes a template to become an implicit component or split component (depending on if a string event handler is used).
Patch Changes
- Updated dependencies [
2d0a566]:- @marko/translator-default@5.33.0
- @marko/compiler@5.36.0
5.33.19
Patch Changes
-
#2212
a1a91a4Thanks @DylanPiercey! - Fix issues related to hydrating sections under a native tag with theno-updatedirective. -
Updated dependencies [
a1a91a4]:- @marko/compiler@5.35.14
- @marko/translator-default@5.32.16
5.33.18
Patch Changes
-
#2210
7d1bbdbThanks @DylanPiercey! - I completely messed up the release of https://github.com/marko-js/marko/pull/2205, this fixes that. -
#2210
7d1bbdbThanks @DylanPiercey! - Fix issue where native tags withno-updatewere not having their key serialized from the server causing a hydration diffing issue in some cases. -
Updated dependencies [
7d1bbdb]:- @marko/translator-default@5.32.15
- @marko/compiler@5.35.13
5.33.17
Patch Changes
-
c8fe951Thanks @DylanPiercey! - Bump compiler and translator to pull in Marko runtime changes. -
Updated dependencies [
c8fe951]:- @marko/compiler@5.35.12
- @marko/translator-default@5.32.14
5.33.16
Patch Changes
-
#2205
af4adcdThanks @DylanPiercey! - Fix issue where native tags withno-updatewere not having their key serialized from the server causing a hydration diffing issue in some cases. -
#2204
11acdf6Thanks @DylanPiercey! - Fix regression where interpolating null/undefined in a script/style tag was being replaced with an empty string instead of toString'd and added.Eg
<script>${undefined}</>was changed to render nothing, when previously it outputundefinedas a string inside the script.Note this behavior should not be relied on and will change in the next major of Marko to normalize the interpolated value to an empty string for nullish values.
5.33.15
Patch Changes
- #2201
e0602bbThanks @DylanPiercey! - Improve the html content escape helpers. The existing implementations no longer maintain an edge in newer versions of node and the regexp based versions are faster.
5.33.14
Patch Changes
- #2192
e2d5f18Thanks @DylanPiercey! - Fix regression where text was bring split too eagerly while hydrating including text which was not rendered by the current component. This lead to a diffing issue where elements could display in the wrong order.
5.33.13
Patch Changes
-
#2190
638ca07Thanks @DylanPiercey! - Update dependencies -
Updated dependencies [
638ca07]:- @marko/compiler@5.35.11
- @marko/translator-default@5.32.12
5.33.12
Patch Changes
-
#2187
fe344b0Thanks @DylanPiercey! - Fix some tags/class interop issues. -
Updated dependencies [
fe344b0]:- @marko/compiler@5.35.10
- @marko/translator-default@5.32.11
5.33.11
Patch Changes
-
#2182
1fa3b05Thanks @DylanPiercey! - Support tracking the "input" using babels scope analysis. -
Updated dependencies [
1fa3b05]:- @marko/compiler@5.35.9
- @marko/translator-default@5.32.10
5.33.10
Patch Changes
-
#2180
a8bfb50Thanks @DylanPiercey! - Fix issue where vdom optimizer was including elements with user key attributes. -
#2177
ba110fbThanks @rturnq! - Remove dependency on setTimeout which is not implemented in some isolates -
Updated dependencies [
a8bfb50]:- @marko/translator-default@5.32.9
- @marko/compiler@5.35.8
5.33.9
Patch Changes
- #2178
f8c66c6Thanks @DylanPiercey! - Fixes an issue where elements with "simple attributes" (those with a combination of class, style and id attributes) were not correctly removing the attribute value when a new value was false, null or undefined.
5.33.8
Patch Changes
-
#2170
7ab2d67Thanks @DylanPiercey! - Avoid writing unnecessary comments for server only components when in interop mode. -
#2173
614f432Thanks @DylanPiercey! - Fix regression where hydrate dependencies had the incorrect resolved path if they were in node_modules. -
Updated dependencies [
614f432]:- @marko/translator-default@5.32.8
- @marko/compiler@5.35.7
5.33.7
Patch Changes
-
409ef4eThanks @DylanPiercey! - Fix regression where hydrate entry files had incorrect relative paths. -
Updated dependencies [
409ef4e]:- @marko/translator-default@5.32.7
- @marko/compiler@5.35.6
5.33.6
Patch Changes
-
#2161
8ff7488Thanks @DylanPiercey! - Avoid using mutable exported bindings for stream data access in tags api. (It did not work in Vite/Rollup) -
Updated dependencies [
f9cf946,f9cf946]:- @marko/translator-default@5.32.4
5.33.5
Patch Changes
- #2156
cbb9f95Thanks @DylanPiercey! - Avoid using internal mangled props from tags api in the interop runtime.
5.33.4
Patch Changes
-
#2153
f2a924bThanks @DylanPiercey! - Fix issues with importing both cjs and mjs @marko/runtime-tags when loaded via compat layer. -
Updated dependencies [
f2a924b]:- @marko/translator-default@5.32.3
5.33.3
Patch Changes
- #2146
e2b48efThanks @DylanPiercey! - Fix MARKO_DEBUG output for compat runtime.
5.33.2
Patch Changes
-
#2145
ccc19e2Thanks @DylanPiercey! - Fix regression where a textarea created with no value in the browser was settingnullas the value. -
#2143
bb250c9Thanks @DylanPiercey! - Fix issue where interop helpers were mixed commonjs and esm
5.33.1
Patch Changes
-
#2138
105c26bThanks @DylanPiercey! - Fix issue with package json src/dist override script. -
Updated dependencies [
105c26b]:- @marko/compiler@5.35.1
- @marko/translator-default@5.32.1
5.33.0
Minor Changes
-
#2004
2704819Thanks @mlrawlings! - Release alpha of tags api translator/runtime. -
#2004
2704819Thanks @mlrawlings! - Addmountapi for client rendered components and exposeSymbol.asyncIteratorfor server rendered components.
Patch Changes
5.32.15
Patch Changes
- #2132
f3004d7Thanks @DylanPiercey! - Fix incorrect check for if a component has custom events
5.32.14
Patch Changes
- #2123
5bcc111Thanks @DylanPiercey! - Fix regression where attribute tags used without renderBody content was clearing existing renderBody content in the input, eg via a spread.
5.32.13
Patch Changes
- #2121
ddf3b5eThanks @DylanPiercey! - Fix issue where splitText was incorrectly called during hydrate when the text node content did not match up.
5.32.12
Patch Changes
-
#2119
ee2d9f9Thanks @DylanPiercey! - Fix regression with merging input and attribute tags if input defined the same property as the attribute tag name. -
Updated dependencies [
ee2d9f9]:- @marko/translator-default@5.31.17
5.32.11
Patch Changes
-
#2117
462992eThanks @DylanPiercey! - Fix issue where:no-updatemodifier was not working on special element handlers. -
#2117
462992eThanks @DylanPiercey! - Use vdom to vdom comparison for special attributes (input.value, input.checked and option.selected) to improve consistency with how other attributes are handled. -
#2117
462992eThanks @DylanPiercey! - Avoid setting attribute value for special properties (like input.value, input.checked and option.selected) -
#2117
462992eThanks @DylanPiercey! - Normalize attribute values before setting value to avoid unnecessary work. -
Updated dependencies [
462992e,462992e,462992e,462992e]:- @marko/translator-default@5.31.16
5.32.10
Patch Changes
-
#2115
a55fb06Thanks @DylanPiercey! - Improve nested attribute tag handling with scriptlets. -
Updated dependencies [
a55fb06]:- @marko/translator-default@5.31.15
- @marko/compiler@5.34.7
5.32.9
Patch Changes
- #2111
022879dThanks @LuLaValva! - add componentIdPrefix to id of await client-reorder
5.32.8
Patch Changes
-
#2108
9a18cedThanks @DylanPiercey! - Fix and optimize the output for vdom hoisting. -
#2108
a87b692Thanks @DylanPiercey! - Fix diffing issues when swapping keyed elements between native tags, custom tags and fragments. -
Updated dependencies [
9a18ced,a87b692]:- @marko/translator-default@5.31.14
5.32.7
Patch Changes
-
#2085
d82b21eThanks @DylanPiercey! - Improve compile error output. -
Updated dependencies [
d82b21e]:- @marko/translator-default@5.31.13
- @marko/compiler@5.34.6
5.32.6
Patch Changes
-
#2079
2976dfaThanks @DylanPiercey! - Fix issue where additional exports were being removed when stripping typescript types. -
Updated dependencies [
2976dfa]:- @marko/compiler@5.34.5
- @marko/translator-default@5.31.12
5.32.5
Patch Changes
-
#2076
69b3ff5Thanks @DylanPiercey! - Upgrade all package deps to latest -
Updated dependencies [
69b3ff5]:- @marko/translator-default@5.31.11
- @marko/compiler@5.34.4
5.32.4
Patch Changes
-
#2074
bf23c566fac02f4e2991be357a95483663493b3fThanks @DylanPiercey! - Upgrade package lock and built types. -
Updated dependencies [
bf23c566fac02f4e2991be357a95483663493b3f]:- @marko/translator-default@5.31.10
- @marko/compiler@5.34.3
5.32.3
Patch Changes
-
#2071
652b7aa16Thanks @DylanPiercey! - Fix types for onsecuritypolicyviolation native attribute. -
#2071
652b7aa16Thanks @DylanPiercey! - Fix types for tag attribute tags.
5.32.2
Patch Changes
-
#2069
977d69078Thanks @DylanPiercey! - Fix issue with printing variable declarations with multiple variables. -
Updated dependencies [
977d69078]:- @marko/translator-default@5.31.9
- @marko/compiler@5.34.2
5.32.1
Patch Changes
- #2067
ea859a547Thanks @DylanPiercey! - Simplify the typings of Marko.NativeTags to work better across typescript versions.
5.32.0
Minor Changes
- #2062
436ace040Thanks @LuLaValva! - Add "exports" to marko.json
Patch Changes
- Updated dependencies [
436ace040]:- @marko/compiler@5.34.0
5.31.18
Patch Changes
-
#2060
648a94928Thanks @DylanPiercey! - Expose meta data about which child Marko templates were analyzed for a given compilation. -
Updated dependencies [
648a94928,aed88284b]:- @marko/compiler@5.33.8
- @marko/translator-default@5.31.8
5.31.17
Patch Changes
-
#2056
84f443d60Thanks @DylanPiercey! - Fix issue when the Marko hot-reload runtime is loaded in native esm -
Updated dependencies [
84f443d60]:- @marko/translator-default@5.31.7
- @marko/compiler@5.33.7
5.31.16
Patch Changes
-
#2054
1c5eccadfThanks @DylanPiercey! - Fix regression with @marko/babel-utils not exposing new parse helpers. -
Updated dependencies [
1c5eccadf]:- @marko/compiler@5.33.6
- @marko/translator-default@5.31.6
5.31.15
Patch Changes
-
#2053
37b347eb5Thanks @DylanPiercey! - Improve compatibility of legacy Marko widgets loading a template compiled as esm. -
Updated dependencies [
5354d4411]:- @marko/translator-default@5.31.5
- @marko/compiler@5.33.5
5.31.14
Patch Changes
-
#2049
1554b1e1eThanks @DylanPiercey! - Allowtemplate.markoto act asindex.markofor backword compat with v4/v3. -
Updated dependencies [
1554b1e1e]:- @marko/translator-default@5.31.4
- @marko/compiler@5.33.4
5.31.13
Patch Changes
- #2046
b7cefe4c6Thanks @DylanPiercey! - Lazily check for global jQuery when patching legacy components.
5.31.12
Patch Changes
-
#2042
447104632Thanks @DylanPiercey! - When compiling async, prefer using the async babel api for loading babel config files. -
#2044
358fb2d22Thanks @LuLaValva! - fix event handler types -
#2043
f94486b10Thanks @LuLaValva! - Add CSS camelCase properties -
Updated dependencies [
447104632]:- @marko/compiler@5.33.3
5.31.11
Patch Changes
- #2040
a5e3f0461Thanks @DylanPiercey! - Fix compat issue where markoWidgets.defineRenderer was not resolving the default export of a Marko 5 template.
5.31.10
Patch Changes
-
#2038
71a227a5fThanks @DylanPiercey! - Fix issue where using the longhand nested attribute tag syntax in a marko.json with atarget-propertydefined was not registering the alias as a known attribute, leading to compile errors. -
Updated dependencies [
71a227a5f]:- @marko/translator-default@5.31.3
- @marko/compiler@5.33.2
5.31.9
Patch Changes
5.31.8
Patch Changes
- #2034
a340023b7Thanks @LuLaValva! - docs(concise-mode): add multiline attributes
5.31.7
Patch Changes
-
#2032
034f96741Thanks @DylanPiercey! - Add js file extension to compiled import of the registry runtime. This improves prebundling in Vite. -
Updated dependencies [
034f96741]:- @marko/translator-default@5.31.2
5.31.6
Patch Changes
- #2027
db819d388Thanks @mlrawlings! - Update Marko 5 Upgrade instructions
5.31.5
Patch Changes
- #2024
085c87387Thanks @DylanPiercey! - Avoid using the bare webpack include api to check if a module has already been loaded.
5.31.4
Patch Changes
-
#2020
6a4e947b5Thanks @DylanPiercey! - Ensure .marko files are resolved for legacy renderer taglib configs. -
Updated dependencies [
6a4e947b5]:- @marko/compiler@5.33.1
- @marko/translator-default@5.31.1
5.31.3
Patch Changes
- #2018
7a22dc3d1Thanks @DylanPiercey! - Fix loading of legacy components in some test environments.
5.31.2
Patch Changes
-
#2016
fb46f0a91Thanks @DylanPiercey! - Optimize preserve-tag implementation to use browser remap again. -
#2016
1b1df3f56Thanks @DylanPiercey! - Fix issue where marko-widger renderers were not bound to the correct "this".
5.31.1
Patch Changes
-
#2014
636ae526dThanks @DylanPiercey! - Avoid bundling load api when using legacy runtime. -
#2014
636ae526dThanks @DylanPiercey! - Avoid loading legacy Marko compiler api if possible when using load api.
5.31.0
Minor Changes
- #2012
9aede281fThanks @DylanPiercey! - Add compiler option to disable initializing components when outputting hydrate code.
Patch Changes
-
#2012
17099cd8fThanks @DylanPiercey! - Allow skipping output of virtual dependencies by returning a falsey value from theresolveVirtualDependencyoption. -
#2012
ec21e799fThanks @DylanPiercey! - Fix issue where data (legacy alias of input) was overwritten by assignment but still being migrated. -
Updated dependencies [
9aede281f,17099cd8f,ec21e799f,6ba268c84]:- @marko/translator-default@5.31.0
- @marko/compiler@5.33.0
5.30.2
Patch Changes
- #2010
c08f940c8Thanks @DylanPiercey! - Improve upgrade guide to reference the newmarko-widgetsand@marko/compat-v4modules.
5.30.1
Patch Changes
-
#2008
1235cf700Thanks @DylanPiercey! - Fix regression with static template literal expressions. -
Updated dependencies [
1235cf700]:- @marko/translator-default@5.30.1
5.30.0
Minor Changes
- #2006
b2e70bc45Thanks @DylanPiercey! - Add compute node helper to replace babelsevaluatehelper. This helper is less aggressive and doesn't suffer from the false positives that popped up with babels version.
Patch Changes
-
#2005
4286236b0Thanks @rturnq! - Handle errors thrown in await catch attribute -
#2006
b2e70bc45Thanks @DylanPiercey! - Avoid adding trailing semicolon to style attribute output. -
Updated dependencies [
b2e70bc45,b2e70bc45,d45962db1]:- @marko/translator-default@5.30.0
- @marko/compiler@5.32.0
5.29.2
Patch Changes
-
#1999
7957fb564Thanks @DylanPiercey! - Switch to .d.marko file for tag types to avoid issues when loaded in a pure typescript project. By default TypeScript doesn't play well withnode_moduleswhich are seen as.jsfiles which is what the jsdoc version of a Marko file appears as. By switching to a.d.markoit is instead always seen as.tswhich is always analyzed by typescript. -
Updated dependencies [
7957fb564]:- @marko/translator-default@5.29.2
5.29.1
Patch Changes
-
#1997
2afa3f6e6Thanks @DylanPiercey! - Ensure source maps are loaded in dev mode when using the @marko/register hook. -
Updated dependencies [
2afa3f6e6]:- @marko/compiler@5.31.1
- @marko/translator-default@5.29.1
5.29.0
Minor Changes
- #1996
d93037843Thanks @DylanPiercey! - Move tag validation to the translate phase and expose new utilities for working with macros in @marko/babel-utils. This allows for migration/transformer/etc compiler hooks to better work with 's.
Patch Changes
- Updated dependencies [
d93037843,57b280b2f]:- @marko/translator-default@5.29.0
- @marko/compiler@5.31.0
5.28.3
Patch Changes
-
#1992
1bc993012Thanks @DylanPiercey! - Fix regression which would happen if tools tried to "delete" thelocproperty on error instances returned from Marko. This property is now configurable and can be deleted again. -
Updated dependencies [
1bc993012]:- @marko/compiler@5.30.3
- @marko/translator-default@5.28.3
5.28.2
Patch Changes
-
#1990
a54a23794Thanks @DylanPiercey! - Change the stack frame for error messages generated by the compiler to work better with how node prints error messages. -
Updated dependencies [
a54a23794]:- @marko/translator-default@5.28.2
- @marko/compiler@5.30.2
5.28.1
Patch Changes
-
#1987
8bf5cb1f0Thanks @DylanPiercey! - When duplicate taglib entries are found and merged, nullish values are now ignored. This means if you specify a property in a taglib it will not be unset by another (merged) taglib. -
#1986
1b29b859fThanks @DylanPiercey! - Fix issue wheremodule-codeentries were not properly checking the expected module output (causing them to always output esm). This was previously fine due to the cjs conversion plugin running for these, however a recent change caused that plugin to no longer run for these files since (which should have been unnecessary, except for that they had the incorrect check). -
Updated dependencies [
8bf5cb1f0,1b29b859f]:- @marko/compiler@5.30.1
- @marko/translator-default@5.28.1
5.28.0
Minor Changes
- #1984
c6e2d0655Thanks @DylanPiercey! - Allow migrator as a tag entry file.
Patch Changes
- Updated dependencies [
c6e2d0655]:- @marko/compiler@5.30.0
- @marko/translator-default@5.28.0
5.27.1
Patch Changes
- #1982
d75ce5243Thanks @DylanPiercey! - Fix issue where thefinishevent was not being invoked when rendering a Marko template with a mock writable that was not an event emitter
5.27.0
Minor Changes
-
#1980
9d3b34eefThanks @DylanPiercey! - Allow parse errors to be recovered from by migrations. This adds a new ast node type of MarkoParseError. MarkoParseError nodes can be removed during the migration stage to handle legacy syntaxes. Any MarkoParseError left in the AST at the end of the migration phase will throw an error similar to what it would have previously thrown synchronously.This also means that all parse errors can be surfaced as an aggregate error instead of bailing on the first parse error. When the compiler is ran with
errorRecovery: truethese errors become diagnostics instead of being thrown.
Patch Changes
-
#1980
20deb5699Thanks @DylanPiercey! - Fix issue that could happen if DOMContentLoaded was manually invoked multiple times. -
Updated dependencies [
9d3b34eef]:- @marko/translator-default@5.27.0
- @marko/compiler@5.29.0
5.26.5
Patch Changes
-
#1978
931a5d24bThanks @DylanPiercey! - Avoids loading babel config when compiler output is set to source or migrate. -
Updated dependencies [
931a5d24b]:- @marko/compiler@5.28.5
- @marko/translator-default@5.26.5
5.26.4
Patch Changes
-
#1976
7555a46a1Thanks @DylanPiercey! - Fix issue where aggregate errors from the compiler were not exposing error objects (was exposing the raw diagnostics). -
#1976
7555a46a1Thanks @DylanPiercey! - Include locations and original message for errors thrown from the compiler. -
Updated dependencies [
7555a46a1,7555a46a1]:- @marko/compiler@5.28.4
- @marko/translator-default@5.26.4
5.26.3
Patch Changes
-
#1974
42f7b46e2Thanks @DylanPiercey! - Run migration fixes synchronously. -
Updated dependencies [
42f7b46e2]:- @marko/compiler@5.28.3
- @marko/translator-default@5.26.3
5.26.2
Patch Changes
-
#1972
897b8bebaThanks @DylanPiercey! - Fix issue where error messages without a source location were losing their message -
Updated dependencies [
897b8beba]:- @marko/compiler@5.28.2
- @marko/translator-default@5.26.2
5.26.1
Patch Changes
-
#1970
ce5c40c95Thanks @DylanPiercey! - Fix issue when outputting hydrate code with commonjs modules enabled. -
Updated dependencies [
ce5c40c95]:- @marko/translator-default@5.26.1
- @marko/compiler@5.28.1
5.26.0
Minor Changes
- #1968
70922e68eThanks @DylanPiercey! - Add support for additional diagnostics emitted from the compiler.
Patch Changes
- Updated dependencies [
70922e68e]:- @marko/translator-default@5.26.0
- @marko/compiler@5.28.0
5.25.18
Patch Changes
ddc6b6ca0Thanks @DylanPiercey! - Fix typescript syntax error in docs.
5.25.17
Patch Changes
-
#1965
08ea9febcThanks @DylanPiercey! - Fixes support for usage with arc and adaptive.markofiles. -
Updated dependencies [
08ea9febc]:- @marko/translator-default@5.25.9
5.25.16
Patch Changes
-
#1963
a00c63f5fThanks @DylanPiercey! - Ensure all component lifecycle methods invoked when HMR'ing a class component with lifecycle changes. -
#1963
a00c63f5fThanks @DylanPiercey! - Avoid removing SSR transcluded content while doing updating via HMR.
5.25.15
Patch Changes
- #1960
9cf477857Thanks @LuLaValva! - Native event handler strings
5.25.14
Patch Changes
- #1953
2b88703d5Thanks @LuLaValva! - Accuracy of types for Marko.Input<"input"> has been improved
5.25.13
Patch Changes
946f596c2Thanks @DylanPiercey! - Reduce restrictions on Marko.Component type. Add Marko.Template overload type for callback function passed to render.
5.25.12
Patch Changes
-
#1949
7f6b65a4bThanks @DylanPiercey! - Use @internal module to host browser/worker remapped files. Improves support for some tools that don't work well with nested package.json files. -
Updated dependencies [
7f6b65a4b]:- @marko/translator-default@5.25.8
- @marko/compiler@5.27.8
5.25.11
Patch Changes
-
#1947
7264e6ce6Thanks @LuLaValva! - Improve TS native tag event handler types- add onToggle
- add onFormData
- move onSubmit into form
5.25.10
Patch Changes
- #1945
ce2ab4763Thanks @LuLaValva! - fix(typescript): add no-update-body and no-update-body-if
5.25.9
Patch Changes
- #1940
b31487946Thanks @DylanPiercey! - Add back NativeTagInput and NativeTagReturn types as deprecated.
5.25.8
Patch Changes
- #1938
d8a922085Thanks @DylanPiercey! - Improve typing for some fields.
5.25.7
Patch Changes
-
#1936
f99e6deffThanks @DylanPiercey! - Fix regression with the HTML tag types. -
#1936
f216ca254Thanks @DylanPiercey! - Add the ability to extend the list of valid css property names when setting a style attrbitue with an object (useful for custom properties).
5.25.6
Patch Changes
-
#1934
722467a6cThanks @DylanPiercey! - Make the Input type less strict to avoid issues with extending it in a custom tag. -
#1934
04d6fad6dThanks @DylanPiercey! - Fix issue where types were not being stripped from the inline Marko component class. -
#1934
c492349a8Thanks @DylanPiercey! - Fix style attribute types. -
#1934
4523d7ce1Thanks @DylanPiercey! - Allow Marko.HTMLAttributes interface to be used without specifying a generic. -
#1934
a5fbf6cb3Thanks @DylanPiercey! - Expose types for the Marko attribute directives. -
Updated dependencies [
04d6fad6d]:- @marko/compiler@5.27.7
- @marko/translator-default@5.25.7
5.25.5
Patch Changes
-
#1929
c7a197a5cThanks @DylanPiercey! - Adds strict typescript types for the native HTML tags. -
Updated dependencies [
c7a197a5c]:- @marko/compiler@5.27.6
- @marko/translator-default@5.25.6
5.25.4
Patch Changes
-
#1923
62afb3256Thanks @DylanPiercey! - Remove class lifecycle types to avoid the need tooverridethem. -
Updated dependencies [
62afb3256]:- @marko/compiler@5.27.4
- @marko/translator-default@5.25.4
5.25.3
Patch Changes
-
#1921
1fe71a502Thanks @DylanPiercey! - Avoid usingtypeof windowand prefertypeof documentchecks for browser environment (improves future deno support). -
#1921
f0c697d7bThanks @DylanPiercey! - Avoids using a package.json remap for the browser implementation of the _preserve internal tag (used to implementno-updatedirectives). This fixes an issue where in vite the module could not be loaded properly. -
Updated dependencies [
1fe71a502,f0c697d7b]:- @marko/compiler@5.27.3
- @marko/translator-default@5.25.3
5.25.2
Patch Changes
-
#1920
7d5dab41cThanks @DylanPiercey! - Avoid addingexport {}(from "@babel/plugin-transform-typescript") when outputing a template with the types stripped. -
#1918
cceab7d20Thanks @DylanPiercey! - Reduce script parsing restrictions added by Babel. This was causing Babel to error when parsing partial scripts.static const x = 1; export { x };Before this change in the above code Babel would error when parsing
export { x }sayingxwas not previously defined. This is because Marko parses these statements in isolation. -
#1920
7d5dab41cThanks @DylanPiercey! - Avoid outputing adeclare'd type on aclass. -
Updated dependencies [
7d5dab41c,cceab7d20,7d5dab41c]:- @marko/compiler@5.27.2
- @marko/translator-default@5.25.2
5.25.1
Patch Changes
-
#1916
ac1d5062aThanks @mlrawlings! - fix: modify/remove some inefficient regexes -
Updated dependencies [
ac1d5062a]:- @marko/compiler@5.27.1
- @marko/translator-default@5.25.1
5.25.0
Minor Changes
- #1909
e8f1370cfThanks @DylanPiercey! - Allow repeated attribute tags without using amarko.jsonfile. Attribute tag objects now also containSymbol.iteratorimplementation to make the single case more easily forwarded to the<for>tag.
Patch Changes
-
#1914
22228e804Thanks @DylanPiercey! - Upgrades the included version of HTMLJS-Parser -
#1910
8512cf397Thanks @DylanPiercey! - Removes circular dependencies from the Marko runtime. -
#1913
2d3155e7bThanks @DylanPiercey! - Avoid using eval (in dev mode) for providing a better class name on component constructors. -
Updated dependencies [
22228e804,8512cf397,e8f1370cf]:- @marko/compiler@5.27.0
- @marko/translator-default@5.25.0
5.24.0
Minor Changes
- #1907
7211a6937Thanks @DylanPiercey! - Expose$globalas a shorthand forout.globalwithin the template scope.
Patch Changes
- Updated dependencies [
7211a6937]:- @marko/translator-default@5.24.0
- @marko/compiler@5.26.0
5.23.0
Minor Changes
- #1899
4fc38e800Thanks @DylanPiercey! - Expose the ability to intercept errors from the taglib builder.
Patch Changes
- Updated dependencies [
4fc38e800]:- @marko/compiler@5.25.0
- @marko/translator-default@5.23.0
5.22.9
Patch Changes
- #1895
230523adfThanks @DylanPiercey! - Fix issue where Marko.Component global was potentially not registered before the component file was loaded.
5.22.8
Patch Changes
268d0c32eThanks @mlrawlings! - Add docs for using TypeScript with Marko
5.22.7
Patch Changes
-
#1892
c55ae937cThanks @DylanPiercey! - Improve types for the await tag and Marko.Template. -
Updated dependencies [
c55ae937c]:- @marko/translator-default@5.22.6
- @marko/compiler@5.23.6
5.22.6
Patch Changes
- #1890
768fa17cbThanks @DylanPiercey! - No longer require state to be present when writing types for component files.
5.22.5
Patch Changes
-
#1888
d110b0b5fThanks @DylanPiercey! - Improve type definitions. -
Updated dependencies [
d110b0b5f]:- @marko/compiler@5.23.5
- @marko/translator-default@5.22.5
5.22.4
Patch Changes
-
23e36a04bThanks @DylanPiercey! - Add missing type definition file to exposed types in package.json. -
d920e833dThanks @DylanPiercey! - Add missing type definition for taglib. -
Updated dependencies [
23e36a04b,d920e833d]:- @marko/compiler@5.23.4
- @marko/translator-default@5.22.4
5.22.3
Patch Changes
-
#1885
f1efd707aThanks @DylanPiercey! - Add taglib extensions and type definitions for typescript support. -
Updated dependencies [
f1efd707a]:- @marko/translator-default@5.22.3
- @marko/compiler@5.23.3
5.22.2
Patch Changes
-
#1880
c4cce33e8Thanks @DylanPiercey! - Fix an issue where merging scripts (via the out.script api) was not properly inserting delimeters when scripts are added in different async writers. -
Updated dependencies [
c4cce33e8]:- @marko/compiler@5.23.2
- @marko/translator-default@5.22.2
5.22.1
Patch Changes
-
#1875
b744720dbThanks @DylanPiercey! - Upgrades "magic-string" module (used for css sourcemaps) to avoid deprecation warning. -
Updated dependencies [
b744720db]:- @marko/translator-default@5.22.1
- @marko/compiler@5.23.1
5.22.0
Minor Changes
- #1865
797e90489Thanks @DylanPiercey! - Changes the "default" attributes name to be "value". This is technically a breaking change, but it primarily only impacts the tags-api-preview which will also be getting a release to support this change.
Patch Changes
- Updated dependencies [
797e90489]:- @marko/compiler@5.23.0
- @marko/translator-default@5.22.0
5.21.11
Patch Changes
-
#1862
30e0ea43dThanks @DylanPiercey! - Avoid mutating component instance in HMR mode. (Improves support in tags api preview) -
Updated dependencies [
30e0ea43d]:- @marko/compiler@5.22.10
- @marko/translator-default@5.21.8
5.21.10
Patch Changes
- #1860
e64809458Thanks @DylanPiercey! - Improve tag scanning performance.
-
#1860
e64809458Thanks @DylanPiercey! - Update htmljs-parser version. -
Updated dependencies [
e64809458,e64809458]:- @marko/compiler@5.22.9
- @marko/translator-default@5.21.7
5.21.9
Patch Changes
-
#1845
65bab8e6dThanks @DylanPiercey! - Fix issue where Marko runtime was being incorrectly matched when swapping from dev to prod runtimes. -
Updated dependencies [
65bab8e6d]:- @marko/compiler@5.22.6
- @marko/translator-default@5.21.5
5.21.8
Patch Changes
-
#1843
963f08ce9Thanks @DylanPiercey! - Upgrade htmljs-parser. -
Updated dependencies [
963f08ce9]:- @marko/compiler@5.22.5
5.21.7
Patch Changes
-
#1841
26cd305eaThanks @DylanPiercey! - Upgrade htmljs-parser. -
Updated dependencies [
26cd305ea]:- @marko/compiler@5.22.4
5.21.6
Patch Changes
-
#1839
1df553e45Thanks @DylanPiercey! - Upgrade HTMLJS-Parser. -
Updated dependencies [
1df553e45]:- @marko/compiler@5.22.3
5.21.5
Patch Changes
-
#1837
63161abedThanks @DylanPiercey! - Fix issue with source map position for shorthand attribute methods. -
Updated dependencies [
63161abed]:- @marko/compiler@5.22.2
5.21.4
Patch Changes
- #1832
20dd7b088Thanks @DylanPiercey! - Update markoc cli to allow striping types.
5.21.3
Patch Changes
-
#1824
2f6459d2cThanks @DylanPiercey! - Fix issue where shorthand attribute methods could not have a "return" statement. -
Updated dependencies [
2f6459d2c]:- @marko/compiler@5.21.7
- @marko/translator-default@5.21.3
5.21.2
Patch Changes
- #1804
af8c944a3Thanks @DylanPiercey! - Fix issue when internal <flush_here_and_after> tag (used by bundler plugins) is used in sync mode.
5.21.1
Patch Changes
-
#1792
c9107ea7fThanks @DylanPiercey! - Fix broken previous release where the "main" field for package.json files was not correctly updated when published -
Updated dependencies [
c9107ea7f]:- @marko/compiler@5.21.1
- @marko/translator-default@5.21.1
5.21.0
Minor Changes
- #1787
dd9009d66Thanks @DylanPiercey! - Upgrades the compiler to use the latest major release ofhtmljs-parserbringing in the improvements listed here: https://github.com/marko-js/htmljs-parser/pull/93
Patch Changes
- Updated dependencies [
dd9009d66]:- @marko/compiler@5.21.0
- @marko/translator-default@5.21.0
5.20.9 (2022-04-27)
Bug Fixes
- some environments (deno) provide a window but not a document (e523252)
5.20.8 (2022-04-26)
Note: Version bump only for package marko
5.20.7 (2022-04-26)
Note: Version bump only for package marko
5.20.6 (2022-04-25)
Note: Version bump only for package marko
5.20.5 (2022-04-15)
Note: Version bump only for package marko
5.20.4 (2022-04-11)
Note: Version bump only for package marko
5.20.3 (2022-03-24)
Note: Version bump only for package marko
5.20.1 (2022-03-22)
Bug Fixes
5.19.3 (2022-03-08)
Bug Fixes
5.19.2 (2022-03-08)
Bug Fixes
- avoid deprecation warning for markoc cli (800861b)
5.19.0 (2022-01-28)
Features
5.18.2 (2022-01-25)
Bug Fixes
- update invalid docs link (3e67bfe)
5.18.1 (2022-01-25)
Note: Version bump only for package marko
5.18.0 (2022-01-24)
Features
5.17.10 (2022-01-14)
Note: Version bump only for package marko
5.17.9 (2022-01-07)
Bug Fixes
- improve error handling in web workers (8611e42)
5.17.8 (2022-01-06)
Bug Fixes
- setTimeout issue in webworkers (d838e4d)
5.17.7 (2022-01-06)
Bug Fixes
- improve cloudflare (workers) support (185d71b)
5.17.6 (2022-01-02)
Bug Fixes
5.17.5 (2021-11-24)
Note: Version bump only for package marko
5.17.4 (2021-11-17)
Note: Version bump only for package marko
5.17.3 (2021-10-30)
Note: Version bump only for package marko
5.17.2 (2021-10-26)
Bug Fixes
5.17.1 (2021-10-25)
Bug Fixes
- prefer delegating events from document.body (f51ac21)
5.17.0 (2021-10-25)
Features
5.16.1 (2021-10-22)
Bug Fixes
- regression with identical tag name & taglib deduping (a8d85d7)
5.16.0 (2021-10-11)
Note: Version bump only for package marko
5.15.12 (2021-10-04)
Bug Fixes
5.15.11 (2021-09-29)
Bug Fixes
- normalize file opts similar to babel (86310e6)
5.15.10 (2021-09-07)
Note: Version bump only for package marko
5.15.9 (2021-09-05)
Note: Version bump only for package marko
5.15.8 (2021-09-05)
Note: Version bump only for package marko
5.15.7 (2021-09-03)
Note: Version bump only for package marko
5.15.6 (2021-09-03)
Note: Version bump only for package marko
5.15.5 (2021-08-26)
Note: Version bump only for package marko
5.15.4 (2021-08-07)
Note: Version bump only for package marko
5.15.2 (2021-08-06)
Note: Version bump only for package marko
5.15.1 (2021-07-30)
Bug Fixes
- marko: issue with HMR enabled using split components (ab8706c)
5.15.0 (2021-07-28)
Features
- expose @marko/compiler/register api (5726899)
5.14.2 (2021-07-28)
Note: Version bump only for package marko
5.14.1 (2021-07-26)
Note: Version bump only for package marko
5.14.0 (2021-07-24)
Note: Version bump only for package marko
5.13.0 (2021-07-23)
Note: Version bump only for package marko
5.12.1 (2021-07-21)
Note: Version bump only for package marko
5.12.0 (2021-07-12)
Note: Version bump only for package marko
5.11.3 (2021-07-08)
Bug Fixes
- allow key attribute to pass through for attribute tags (ab52ae4)
5.11.2 (2021-07-07)
Note: Version bump only for package marko
5.11.1 (2021-07-07)
Note: Version bump only for package marko
5.11.0 (2021-07-07)
Note: Version bump only for package marko
5.10.7 (2021-06-23)
Note: Version bump only for package marko
5.10.6 (2021-06-10)
Bug Fixes
- translator-default: issue with user defined component var (a36cfd1)
5.10.5 (2021-06-08)
Bug Fixes
- marko: issue with dynamic tag name string and no renderbody (69e8514)
5.10.4 (2021-05-19)
Bug Fixes
- marko: issue when last mode stream ends too early (318044f)
5.10.3 (2021-05-14)
Bug Fixes
5.10.2 (2021-05-04)
Note: Version bump only for package marko
5.10.1 (2021-05-04)
Note: Version bump only for package marko
5.10.0 (2021-04-30)
Features
5.9.0 (2021-04-21)
Note: Version bump only for package marko
5.8.4 (2021-04-19)
Note: Version bump only for package marko
5.8.3 (2021-04-18)
Note: Version bump only for package marko
5.8.2 (2021-04-18)
Note: Version bump only for package marko
5.8.1 (2021-04-16)
Note: Version bump only for package marko
5.8.0 (2021-04-16)
Features
5.7.0 (2021-04-07)
Note: Version bump only for package marko
5.6.2 (2021-03-30)
Bug Fixes
- translator-default: some bundlers not supporting hoisted imports (0233d04)
5.6.0 (2021-03-27)
Features
5.5.4 (2021-03-22)
Note: Version bump only for package marko
5.5.3 (2021-03-22)
Note: Version bump only for package marko
5.5.2 (2021-03-19)
Note: Version bump only for package marko
5.5.1 (2021-03-18)
Note: Version bump only for package marko
5.5.0 (2021-03-18)
Bug Fixes
- compiler: use provided FS for taglib building (#1674) (edb570e)
- marko: issue with async hydrate after final flush (#1677) (f2fbaa6)
- correct Marko debug mode for ci tests (031ca0d)
Features
5.3.0 (2021-03-08)
Features
- marko: support lazy loading hydrated components (7e14181)
5.2.4 (2021-03-08)
Bug Fixes
- marko: issue with delegating events from text nodes (787578e)
5.2.3 (2021-03-05)
Bug Fixes
- marko: issue with MARKO_DEBUG and a const (c17f9fc)
5.2.2 (2021-03-01)
Bug Fixes
- add some additional missing deps from marko to @marko/compiler (65ac580)
5.2.1 (2021-03-01)
Bug Fixes
- compiler: add missing dependency after moving taglib code (ae843f1)
5.2.0 (2021-03-01)
Features
- move taglib apis into compiler source code (f7cbb1b)
5.1.20 (2021-02-26)
Bug Fixes
- marko: circular dep issue with browser-refresh (a704210)
5.1.19 (2021-02-26)
Bug Fixes
- marko: bring back hot-reload when node-require hook used (8d856a0)
- move @marko/babel-types into compiler (5369a63)
5.1.18 (2021-02-21)
Bug Fixes
- marko: add back missing preserve-name & remove-dashes config (4283178)
5.1.17 (2021-02-18)
Bug Fixes
- improve windows support for taglib finder (58f6568)
5.1.16 (2021-02-17)
Bug Fixes
5.1.15 (2021-02-13)
Note: Version bump only for package marko
5.1.14 (2021-02-12)
Note: Version bump only for package marko
5.1.13 (2021-02-12)
Note: Version bump only for package marko
5.1.12 (2021-02-12)
Bug Fixes
- marko: avoid prematurely resolving taglib paths (29f3cbe)
5.1.11 (2021-02-11)
Bug Fixes
- prevent potential race condition while tag scanning (cafa138)
5.1.10 (2021-02-05)
Note: Version bump only for package marko
5.1.9 (2021-02-03)
Bug Fixes
- marko: default export in esm mode for marko/component (9b144e1)
- marko: drop ie10 only runtime code (2125bf6)
- marko: include default export in esm marko/components (ed5fbc2)
5.1.8 (2021-02-02)
Note: Version bump only for package marko
5.1.7 (2021-02-01)
Bug Fixes
- allow passing 'dom' output instead of 'vdom' (9c11a9b)
5.1.6 (2021-01-29)
Note: Version bump only for package marko
5.1.5 (2021-01-28)
Note: Version bump only for package marko
5.1.4 (2021-01-27)
Bug Fixes
- docs link (69abe9a)
5.1.3 (2021-01-27)
Bug Fixes
- enable inline sourcemaps by default with dev mode require hook (6571a11)
5.1.2 (2021-01-26)
Note: Version bump only for package marko
5.1.1 (2021-01-26)
Note: Version bump only for package marko
5.1.0 (2021-01-26)
Features
- no longer publish as 'next' dist-tag (8113e25)
5.0.0-next.82 (2021-01-21)
Note: Version bump only for package marko
5.0.0-next.81 (2021-01-20)
Note: Version bump only for package marko
5.0.0-next.80 (2021-01-19)
Note: Version bump only for package marko
5.0.0-next.79 (2021-01-19)
Note: Version bump only for package marko
5.0.0-next.78 (2021-01-19)
Note: Version bump only for package marko
5.0.0-next.77 (2021-01-19)
Bug Fixes
- force commonjs modules for load api (bd84dad)
5.0.0-next.76 (2021-01-15)
Features
5.0.0-next.75 (2021-01-14)
Bug Fixes
- issue with using flags before defined (8628d01)
5.0.0-next.74 (2021-01-14)
Bug Fixes
- runtime mismatch check (892f9d0)
5.0.0-next.73 (2021-01-14)
Bug Fixes
5.0.0-next.72 (2021-01-13)
Bug Fixes
- issue with only renderBody being serialized (8c0e045)
5.0.0-next.71 (2021-01-12)
Note: Version bump only for package marko
5.0.0-next.70 (2020-12-16)
Note: Version bump only for package marko
5.0.0-next.69 (2020-12-14)
Note: Version bump only for package marko
5.0.0-next.68 (2020-12-11)
Note: Version bump only for package marko
5.0.0-next.67 (2020-12-09)
Note: Version bump only for package marko
5.0.0-next.66 (2020-12-08)
Bug Fixes
- renderbody with dynamic attrs (6c33c0f)
5.0.0-next.65 (2020-12-02)
Note: Version bump only for package marko
5.0.0-next.64 (2020-12-02)
Bug Fixes
- babel-types: support scope analysis for tag variables (c527474)
5.0.0-next.63 (2020-12-01)
Note: Version bump only for package marko
5.0.0-next.62 (2020-12-01)
Note: Version bump only for package marko
5.0.0-next.61 (2020-12-01)
Note: Version bump only for package marko
5.0.0-next.60 (2020-11-22)
Note: Version bump only for package marko
5.0.0-next.59 (2020-11-21)
Note: Version bump only for package marko
5.0.0-next.58 (2020-11-20)
Note: Version bump only for package marko
5.0.0-next.57 (2020-11-20)
Features
5.0.0-next.56 (2020-11-20)
Note: Version bump only for package marko
5.0.0-next.55 (2020-11-19)
Note: Version bump only for package marko
5.0.0-next.54 (2020-11-17)
Note: Version bump only for package marko
5.0.0-next.52 (2020-11-12)
Note: Version bump only for package marko
5.0.0-next.51 (2020-11-11)
Bug Fixes
- regression with no-update-body with no renderBody (1e89057)
Features
- cached compilations, nested tag analysis (74d5f10)
5.0.0-next.50 (2020-10-12)
Bug Fixes
- no longer use fragments for preserved native els (22e9322)
- regression serializing empty component data with custom runtimeid (7ee0cd1)
- translator-default: owner component missing for text nodes (50b4e97)
5.0.0-next.49 (2020-09-28)
Bug Fixes
- marko: output esm for module-code (db4793d)
Performance Improvements
5.0.0-next.48 (2020-09-18)
Note: Version bump only for package marko
5.0.0-next.47 (2020-09-18)
Note: Version bump only for package marko
5.0.0-next.46 (2020-09-17)
Bug Fixes
- only include template path with meta option enabled (e1b39e1)
Performance Improvements
- prevent bundlers from pulling in setImmediate shim (585d6be)
- remove unecessary function for template load api (33ae635)
5.0.0-next.45 (2020-08-26)
Bug Fixes
- regression with manual component init with custom runtimeid (ec6e670)
5.0.0-next.44 (2020-08-26)
Note: Version bump only for package marko
5.0.0-next.43 (2020-08-20)
Bug Fixes
- issue with hydrating body-only content (c975b87)
5.0.0-next.42 (2020-08-18)
Note: Version bump only for package marko
5.0.0-next.41 (2020-08-18)
Note: Version bump only for package marko
5.0.0-next.40 (2020-08-12)
Bug Fixes
- component type use relative path in dev mode (7b7a4f9)
5.0.0-next.39 (2020-08-10)
Bug Fixes
- invalid missing closing svg tags (47a9834)
5.0.0-next.38 (2020-08-10)
Bug Fixes
- add support for nested tag long hand properties (#1592) (36c501c)
- set default value for textarea when created (#1593) (00a0a55)
5.0.0-next.37 (2020-08-05)
Note: Version bump only for package marko
5.0.0-next.36 (2020-08-05)
Features
5.0.0-next.35 (2020-08-04)
Bug Fixes
- lint and format scripts (57b66ef)
5.0.0-next.34 (2020-08-04)
Bug Fixes
- allow in sync mode (#1589) (f91bd37)
- diffing dynamic attributes with mismatched keys (#1587) (4b8cce4)
- issue with hydrating no-update-if content (#1581) (457f3d4)
5.0.0-next.33 (2020-08-03)
Note: Version bump only for package marko
5.0.0-next.32 (2020-07-31)
Note: Version bump only for package marko
5.0.0-next.31 (2020-07-31)
Note: Version bump only for package marko
5.0.0-next.30 (2020-07-29)
Note: Version bump only for package marko
5.0.0-next.29 (2020-07-29)
Note: Version bump only for package marko
5.0.0-next.28 (2020-07-27)
Bug Fixes
- better errors, track deps and cleanup for import shorthand (00464f2)
Features
- add new syntax for dynamic component import (e9b4cd6)
5.0.0-next.27 (2020-07-24)
Note: Version bump only for package marko
5.0.0-next.26 (2020-07-24)
Bug Fixes
- docs paths (583197e)
5.0.0-next.25 (2020-07-23)
Note: Version bump only for package marko
5.0.0-next.24 (2020-07-22)
Note: Version bump only for package marko
5.0.0-next.23 (2020-07-14)
Note: Version bump only for package marko
5.0.0-next.22 (2020-07-10)
Note: Version bump only for package marko
5.0.0-next.21 (2020-07-07)
Note: Version bump only for package marko
5.0.0-next.20 (2020-07-07)
Note: Version bump only for package marko
5.0.0-next.19 (2020-07-06)
Note: Version bump only for package marko
5.0.0-next.18 (2020-05-27)
Note: Version bump only for package marko
5.0.0-next.17 (2020-05-27)
Bug Fixes
- additional taglib cleanup for website support (f462d8a)
5.0.0-next.16 (2020-05-27)
Features
- website compatibility fixes (4390fd1)
5.0.0-next.15 (2020-05-26)
Note: Version bump only for package marko
5.0.0-next.14 (2020-05-26)
Bug Fixes
5.0.0-next.13 (2020-05-20)
Bug Fixes
5.0.0-next.12 (2020-05-19)
Bug Fixes
- components not always initializing inside client-reorder await (#1566) (da31ead)
- data-marko attributes under 'no-update' with (#1564) (0a227d0)
5.0.0-next.11 (2020-04-27)
Bug Fixes
- regression with unquoted attribute with trailing slash (#1561) (128b68a)
- split components under preserved root resetting ___isPreserved (#1559) (dd9f7ac)
5.0.0-next.10 (2020-04-23)
Bug Fixes
Performance Improvements
5.0.0-next.9 (2020-04-16)
Bug Fixes
- add devmode warning for removing fragment markers (#1541) (de27b4a)
- implement missing methods for void-writer (#1540) (b50f93c)
- improve micro task helper (2129451)
- issue with keys under ssr no-update root (#1527) (480bc77)
- regression with nullish values in partial string attribute values (#1537) (144c352)
- spread attrs for native tag preserves case (#1530) (6b3156f)
Features
Performance Improvements
- misc improvements (#1535) (1fed43e)
- optimize dynamic tag when types are statically known (#1550) (4719405)
- optimize merge html attrs (#1538) (792aa6a)
- optimize serializing renderBody & legacy widgets (#1539) (eb9e156)
- skip serializing instance props & state for non split components (#1546) (75fd1b0)
5.0.0-next.8 (2020-03-17)
Note: Version bump only for package marko
5.0.0-next.7 (2020-03-17)
Note: Version bump only for package marko
5.0.0-next.6 (2020-03-16)
Bug Fixes
Features
5.0.0-next.5 (2020-02-26)
Bug Fixes
- always include nested contexts when serializing (#1515) (84aa30e)
- set preserve false under new rerender roots (#1513) (c00a02c)
5.0.0-next.4 (2020-02-25)
Bug Fixes
5.0.0-next.3 (2020-02-25)
Bug Fixes
5.0.0-next.2 (2020-02-25)
Note: Version bump only for package marko
5.0.0-next.1 (2020-02-25)
chore
- delete deprecated apis/tests (c163054)
Features
- update apis/tests for new compiler (ea6736d)
BREAKING CHANGES
- api for compile-time tags has changed. This affects tranformer/node-factory/code-generator tags.
Co-authored-by: Michael Rawlings mirawlings@ebay.com Co-authored-by: Dylan Piercey dpiercey@ebay.com Co-authored-by: Andrew Gliga agliga@ebay.com
- The following deprecated apis have been removed:
- Deprecated top-level entrypoints of the
markopackage - The marko@3/marko-widgets@6 legacy compatibility layer
- Auto-migratable syntax and api changes to the core tags
Co-authored-by: Michael Rawlings mirawlings@ebay.com Co-authored-by: Dylan Piercey dpiercey@ebay.com
Changelog
4.x
4.18.x
4.18.48
- Fixes a regression from #1499 which caused
<${dynamic}>tags with body content to not have their events registered. #1507 - Fixes issue with
getElbeing used on a keyed<${dynamic}>tag. #1507 - Fixes registering event handlers added to a
<${dynamic}>tag that renders a native element under a split component. #1507
4.18.47
- Deprecate implicit JSON.stringify for attributes, attr toString fix. #1505
- Remove data-widget, add warning for non-split, non-stateful widgets. #1503
- Flushing improvements. #1502
4.18.46
- Fixed issue with
<init-components>being rendered under nested async outs. #1500
4.18.45
- Fixed dynamic tags to add data-marko-key for split components #1499
- Fixed dynamic tags properly render self-closing tags on the server #1499
4.18.44
- Fix issue with diffing SSR'd
no-updatesection. #1498
4.18.43
- No longer serialize input for split legacy widgets. #1497
4.18.42
- Fix regression for unkeyed elements with toggled spread attributes #1496
- Fix regression with body-only-if migration for legacy renderers #1495
4.18.41
- Improve support for conditional
w-bind. #1494 - No longer delete
onBeforeDestroyandonBeforeUpdatefrom legacy widget prototypes. #1494 - Fix regression with registering event handlers for SSR content under a
no-update. #1493
4.18.40
- Fix issue with the
ignoreUnrecognizedTagscompiler option with<@attribute>tags inside of a<${dynamic}>tag. #1491 - Improve support for legacy widgets by allowing for custom
initmethod on prototype. #1490 - Removes some unused properties that were serialized with legacy widgets #1489
- Improves consistency with
...spreadattributes onto native tags. #1488- Now turns
camelCaseproperties intodash-cash - Now omits
renderBodyproperties.
- Now turns
- Improves
this.elwarning for legacy widgets. #1487 - Fixes an issue with nested
no-update's around components not initializing properly. #1486
4.18.39
- Support overriding the 'ready' method in legacy widgets. #1484
4.18.38
- Fix regression with ssr'd components under 'no-update' not initializing. #1483
4.18.37
- Fix regression with no-update-body on textarea tags. #1482
4.18.36
- Fix issue for legacy widget rerenders not preserving props. #1481
no-updatewill now preserve elements rendered from the server side. #1480
4.18.35
- Improve support for legacy split widgets. #1477
4.18.34
- Improve legacy widgets assigning into state causing a replace instead of merge. #1476
4.18.33
- Fix event name case normalization for legacy components with
w-on. #1475
4.18.32
- Return the component id if no key is passed to getElId/elId. #1474
- Support having nullish keys in the legacy (v3) renderer. #1473
4.18.31
- Fix legacy render lifecycle order to match marko-widgets@6. #1472
4.18.30
- Fix regression with browser remap for legacy widgets. #1471
4.18.29
- Fixed regression which was causing getTemplateData to be serialized.
- Refactor helpers, fix circular deps, improve code splitting #1468
- Remove unused deps, update package-lock #1469
- Fixed typo in example output #1463
4.18.28
- Allow support for
<state>tag and callingsetStateon null state #1460
4.18.27
- Allow empty
<@catch>in<await>#1456
4.18.26
- Improve errors emitted from AsyncWriter
4.18.25
- Better async stack traces in dev #1453
4.18.24
- Remove circular dep for dom weakmaps. #1449
- Fix invalid deprecation message for core-tags on windows. #1448
4.18.23
- Allow
<macro>nested under<if>. #1445
4.18.22
- Improve legacy compatibilty layer by exposing
widgetPropson thedataobject. #1443 - Improve getComponentByEl lookup to prefer owner components. #1444
4.18.21
- Fix issue where duplicated attributes were not being included properly in compiled templates. #1442
4.18.20
- Fix initialization edge-case for top-level async components. #1441
4.18.19
- Deprecate
$global.widgetIdPrefix(should use$global.componentIdPrefixinstead). #1439 - Improve support for rollup by removing usage of
require.resolve. #1440 - Update minimum version of htmljs-parser to bring in patch release for parsing css calc values.
4.18.18
- Adds a missing method used by part of the legacy compatibility layer.
4.18.17
- Fix issue with async out of order components initializing in the wrong order #1436
- Improvements to the legacy compatibility layer #1437
4.18.16
- Fix top-level components throwing error on hydrate #1428
- Ensure scripts only have one text node as a child #1429
4.18.15
- Improve support for conditional comments spanning multiple comments. #1427
- Add a check for loading precompiled templates. #1426
4.18.14
- Improve support for running multiple versions of Marko on the page. #1418
- Add migration for
component.elIdwhen used in a place where:scopedis recommended. #1413 - Fix issue where static regexps in the template would output differently than dynamic ones. #1412
- Improve
marko.jsondefinitions for core/html tags #1411
4.18.13
- Improve support for consuming v3 components via webpack. #1410
4.18.12
- Improve autocompletion for core tags. #1405
- Fix issue when using
getComponentForElwith split components. #1400
4.18.11
- Fix server-rendered conditional widgets in the compatibility layer. #1395
- Deprecate the partial dynamic tag. #1397
4.18.10
- Improve migration for
getInitialStatewith legacy widgets. #1385
4.18.9
- Legacy compat fixes #1383
- Temporary fix to ensure
getComponentsdoesn't returnnullentries - these should really be removed from thelookupinstead - Use a
for...inloop to extend theBaseComponent(doesn't support getters properly) to maintain the same behavior asmarko-widgets - Ensure that the original
inputfor a widget is what gets serialized, not the result ofgetTemplateData(which is called again when hydrating)
- Temporary fix to ensure
4.18.8
- Fixes an issue where
require("marko/components").getComponentForElcould return undefined when a component exists, or the wrong component, when nested fragments are present. #1382
4.18.7
- Fixes a regression from 4.18.6 that could cause some body content to be omitted from the output #1380
- Adds deprecated string dynamic attributes to the vdom runtime for improved legacy compatibility #1378
4.18.6
- Migration does not add
id:scopedwhen migrating a repeatedw-id#1377 - Fixes an issue diffing the selected option within an optgroup #1376
- Fixes component tracking for client-reorder #1375
- Improve the migration for legacy
<for>syntax #1374 - Add migration for named classes in the template #1372
4.18.5
- Fix issue with invoke tag migration when a inline control flow is used #1366
4.18.4
- Lazily evaluate attributes for dynamic tags #1365
4.18.3
- Fix
registerTaglib: use correct function call #1363 - Fix tryonline: correct paths and no
taglibImports#1360 - Migration fix: #1364
- Migration improvement: deprecation warnings that are automatically migratable now have a
MIGRATIONheading #1364 (also included test improvements) - Migration improvement: remove empty
<layout-put>tags #1355
4.18.2
- Fixes an issue where fragments could remove nodes from their siblings #1359
4.18.1
- Fixes a regression with
body-only-ifand a legacy control flow attribute #1356
4.18.0
- Added dynamic tags to act like body-only-if. If dynamic tags are null then the outer tag will not be rendered. However, the body will be rendered. Deprecated body-only-if #1332
4.17.x
4.17.5
- Fix issue where setting the
valueattribute of a textarea tofalsecaused the string"false"to be used in the vdom. #1348
4.17.4
- Updates htmljs-parser to fix an issue with comments inside inline scriptlets.
- Fix some issues with for loop auto keying. #1346
- Fix error when using a non string as a key (now logs a deprecation). #1344
4.17.3
- Fix issue were
getElswould not work with repeated keys for split components. #1343
4.17.2
- Fix regression with namespaces in nested fragments. #1340
4.17.1
- Allow emitting events while the parent is mounting. #1336
- Fix issue where
component.elandcomponent.getElcould return a marker node. #1339
4.17.0
- Element namespaces are now calculated at runtime, fixes some edge cases with the dynamic tag. #1333
4.16.x
4.16.15
- Fix an issue where nodes may be preserved if another node with the same key was rendered as preserved. #1334
- Improve the
ignoreUnrecognizedTagscompiler option to ignored nested@tagson unrecognized tags (removes the need for theescapeAtTagsoption). #1335
4.16.14
- Prevent treating macro usage with parameters as a component. #1326
4.16.13
- Fixes a regression with printing nested unary expressions (eg typeof). #1323
4.16.12
- fix destorying a component that has already removed some top-level nodes #1321
- fix components runtime path after refactor released in 4.16.11 #1322
4.16.11
- Fixes a regression (syntax) in IE 11 introduced in 4.16.10
4.16.10
- Hydrating components now consistently render from the top down. #1317
4.16.9
- Fixes an issue where legacy widgets could loose a reference to their parent components. #1311
4.16.8
- Fixes an issue with hot-reload. #1282
- If the require hook is enabled, all templates loaded by marko will now use the require hook, including hot-reloaded templates and tags loaded from compiled templates. #1310
4.16.7
- Improve parsing of tag arguments (allows for
<${input.renderBody}(...spread)/>). #1308
4.16.6
- Fix issue with hydrating legacy Marko 3 widgets from the server. #1306
4.16.5
- Fix regression with legacy dynamic attributes when a string without whitespace is used. #1304
- The
disabledproperty on buttons is now properly synced with the template. #1303
4.16.4
- Fix regression with migrating legacy
<macro>syntax with a magicrenderBodyvariable. #1300
4.16.3
- Fix issue with migrating
<var>and<assign>withwidgetproperties. #1298
4.16.2
- Fix issue with nested fragments (often as dynamic tags) that were adjacent in the DOM not hydrating properly. #1294
- Remove redundant portion of keys for
<macro>tags within<for>loops. #1295
4.16.1
- Fix regression for
:no-updateon dynamic tag html attributes. #1292
4.16.0
- Add
<marko deprecated-no-create-or-input-for-top-level-hydrate />option to revert to pre4.9.0hydrate behavior. #1289
4.15.x
4.15.6
- Fix regression in older browsers caused by using
string.startsWithin the runtime code.
4.15.5
- Allow syntax that Marko does not understand (but esprima does) to pass through in the arguments syntax. #1286
- Fix issue with
<title>inside of an<svg>using the wrong namespace. #1284
4.15.4
- Forward errors from
<await client-reorder>to the parent out to prevent potential unhandled rejections. #1275
4.15.3
- Fix false positive deprecation message for legacy nested tag syntax. #1271
4.15.2
- Improve the webpack server-bundling experience by guarding a legacy (lasso-specific) api that uses a dynamic require and causes a warning to be emitted. #1267
4.15.1
- Improve support for using raw functions as event handlers by not outputing
data-markocontent for components that will rerender in the browser. #1262
4.15.0
The most notable change here is to the <for>, <macro> and <await> core tags. These tags previously each relied on custom syntax to implement an API that was not possible to do in userland when they were introduced. Generic solutions for these problems has arrived in the form of attribute tags and tag parameters.
With these new features in place and currently available in userland we set out to normalize these existing tags, hopefully making the learning process for Marko a little easier, and also promoting the use of these new features. We've also spent time formalizing some best practices, and highlighting this new syntax in the documentation on the markojs.com website.
The existing syntax will continue to be supported until Marko 5 and will currently log a deprecation warning. For these deprecations and most others you can automatically migrate existing code using the marko migrate cli tool.
- Updated documentation with guides and changes to syntax/core tags. #1260
- Modernize the
<for>tag. #1238 - Modernize the
<await>tag. #1244 - Modernize the
<macro>tag. #1227 - Deprecated legacy top level imports (jquery/ready) and compiler option tags (recommended to use marko.json instead). #1258
- Modern arguments support for the dynamic tag. #1259
- Improves parsing inside of the
<html-comment>tag to support the same style of content as actual html comments. #1261 - Ignore only whitespace content inside of concise mode tags (including
classandstyle) which would previously error. #1256 - Fixes a regression with passing a string literal as a
${dynamic}attribute and add a deprecation warning. #1257
4.14.x
4.14.25
- Fix regression with non standard template literals (
"stuff ${placeholder}") that have escaped content such as newlines #1254
4.14.24
- Fix regression in
<await>that caused flushing to not occur in all cases #1252
4.14.23
- Fix warning that
"marko"was using deprecated features. #1250 - Improve code optimization for conditional
@nestedtags. #1249
4.14.22
- Fix issue with
no-updatenot moving preserved items #1247. - Fix regression with include tag migration where
<include(data())>has side effects. #1246 - Treat importing tags the same as using them in the template (uses
loadapi instead ofrequirewhen configured). #1245 - Gracefully handle async client-reorder when nodes are missing during hydrate. #1243
4.14.21
- Update
htmljs-parserto improve parsing regexes htmljs-parser #61
4.14.20
- Add new
<tag|params|>support and migrator for old syntax/flag #1236 - Remove unneeded deprecation warning when using
componentwithin a template #1235
4.14.19
- Fixes walking into some AST nodes which was causing some migrations to not be as effective #1233
4.14.18
- Fixes #1230 - regression with include tag migration outputing invalid identifiers #1231
- Add migration for legacy nested tag syntax #1129
4.14.17
- Fixes #1219 - transitive widget getEl and events #1225
- Importing a marko template adds it to tags meta (fixes regression with
<include>tag) #1226
4.14.16
- Add migration for non-standard template literals. #1224
- Fix regression with dynamic attribute migration. #1223
4.14.15
- Improve migrating
widgetreferences tocomponentin attributes. #1220
4.14.14
- Fix regression with
evaling class names in debug mode. #1218
4.14.13
- Support file name migrations with Marko migrate. #1216
- Skip
id:scopedwhen migrating w-id for custom tags. #1217
4.14.12
- Add migrator for
w-configattribute. #1214 - Add migrator for and deprecate
unlesstag/directive. #1210
4.14.11
- Fix regression with
w-bodytag. #1213
4.14.10
4.14.9
- Add migrator for layout tags and include tag/directive. #1206 & #1204
- Add migrator for
<script template-helpers>and<script marko-init>. #1209
4.14.8
- Add migrator from w-body to dynamic tag. #1199
- Add migrator from dynamic attributes to spread attributes. #1202
4.14.7
- Fix regression for
widget.elIdmigration. #1198
4.14.6
- Add a whitelist of files to publish to NPM. #1197
4.14.5
- Add
getTemplateDatamigrator. #1195 - Add migrators for most of the
w-*attributes. #1190 - Add basic legacy widget migration. #1192
4.14.4
- Fix regression with
setPropson legacy compatibility layer. #1193
4.14.3
- Move
w-oncompatibility to the migrate stage. #1186 - Legacy compatibility (v3) improvements. #1189
- Specially handle template literals in templates. #1188
4.14.2
- Convert the
<async-fragment>transformer into a migrator. #1185
4.14.1
- Fix regression causing some parsed javascript nodes to be omitted from output. #1184
4.14.0
- Add migration stage, deprecate rendering with
out, deprecate control-flow directive as attributes. #1180 - parse = parseRaw + normalize #1179
- parse nonstandard string with placeholder to TemplateLiteral node, transpile template literals. #1179
- add new parse api
4.13.x
4.13.13
- Fix regression: parsing of
ifstatements without braces (in scriptlets & otherwise). #1175 - Fix regression:
<var>and<assign>tags with non-standard placeholders in normal string attributes. #1176
4.13.12
<invoke>tag translates to modern Marko scriptlet (or dynamic tag). #1165<assign>tag translates to modern Marko scriptlet. #1158- Imperative rendering in scriptlets translates to modern Marko dynamic tag. #1174
4.13.11
- Add spread attribute optimization, fix issue with spreading non objects. #1171
- Move
#to the start of:scopedattributes (allows forhref:scoped="#name"). #1172
4.13.10
- Adds a hidden api used to make @marko-tags/context possible. #1168
4.13.9
4.13.8
- Quick patch for
4.13.7that removes aletassignment. #1153
4.13.7
- Prevent treating components with tag params being treated as implicit components. #1149
4.13.6
- Prevent mutating component input when using a single spread attribute with repeated @tags. #1142
- Fix for include tag hydration when transcluded. #1143
4.13.5
- Add additional reference to fragment nodes which resolves an issue with IE. #1130
4.13.4
- Remove Object.assign calls in the browser. #1120
4.13.3
- Propagate errors to express automatically with the
res.markoapi. #1119 - Support multi line import statments. #1118
4.13.2
- Allow discovering tags where the template name matches the directory name #1117:
components/
tag-name/
tag-name.marko
tag-name.style.css
4.13.1
- Remove es2015 features from runtime. #1115
4.13.0
PR #1094
Introducing HTMLFragment
- Updates the diffing algorithm to use an HTMLFragment node as an abstraction rather than keeping track of startNode and endNode all throughout the diffing algorithm.
- Uses the HTMLFragment for the
<${dynamic}>tag and<include>tags to preserve server-rendered content for which therenderBodyis not available in the browser.
Changes to keys
- Component ids are based on the resulting parent tree (not the owner tree). This means we cannot rely on the ids in the global lookup, so component key/refs are now also stored on the component instance.
- Autokeyed elements are now stored on the parent rather than the owner. User assigned key/refs are still stored on the owner component. Because of this, user assigned keys are now prefixed to differentiate them from autokeys. This also has the benefit that assigning numeric keys can no longer conflict with the autokeys.
- Static node trees are now only auto assigned a key for the top-level node (instead of all nodes). This is because:
- When updating, only the top-level node is considered.
- When static nodes are hoisted out of the render method, they are not associated with the owner component
Changes to Hydration
- Server comment starting markers now have the component's key serialized so the component can be attached to its owner
- Server comment markers no longer have the id on the closing marker, it is stack based.
- Normalize differences between hydration and client-rendering, so post mount the DOM looks the same regardless of whether a component was server or client rendered.
4.12.x
4.12.4
- Don't render invalid attribute names on the server #1103
4.12.3
- Removes extra parentheses in output javascript for expressions that Marko does not understand.
4.12.2
- Fixes automatic keying of elements/components in
for()attribute loops
4.12.1
- Fix #1022 - transcluded keys don't match, stateful component not preserved #1086
4.12.0
- Tag params #1076
- Style arrays #1082
- Fix #1075 - cannot compile dynamic tag at root with user key #1081
- Fix #1078 - mutating spread attributes #1080
4.11.x
4.11.5
- Add fallback location for compile-time deprecation warnings
4.11.4
- Fixes an issue with scoped attributes automatically setting keys in a problematic way #1069
- Fixes #1059 and #1052 -
Cannot read property 'nextSibling' of null
4.11.3
- Fixes #952
- Fixes automatic keying of elements/components in
<for>loops
4.11.2
- Fixes another regression in the
<${dynamic}>tag wheredashed-caseattributes were being converted tocamelCasewhen rendering html elements.
4.11.1
- Fixes a regression in
<${dynamic}>tags for object/array class/style attributes:$ const style = { color:'blue' }; <${tagName} style=style/> - Allows dynamic attributes defined using
...spreadto include object/array class/style #933:$ const attrs = { style:{ color:'blue' } }; <tag ...attrs/> - Fixes issue where object/array class/style attributes could not be used with
...spread#1007:$ const attrs = {}; <tag class=["oops"] ...attrs/>
4.11.0
- Implement #880:
<${dynamic}>tag <include>should be considered deprecated. Formal deprecation warning to come.
4.10.x
4.10.1
- Fix issue with calling
require('marko/components').init(components)multiple times.
4.10.0
- Fix #1049 Fix documentation urls on the website.
4.9.x
4.9.7
- Fix #1038 Legacy compatibility dirty check returning false positives.
4.9.6
- Fix #1008 Spread attribute now supports functions (
..attrs()) #1029
4.9.5
- Fix
onBeforeUpdatetiming for legacy component layer #1027
4.9.4
- Fix breaking older browsers with es6 object shorthand notation bc0e91d5
4.9.3
- Fix import-var compilation when there are no explicit attributes #1002
4.9.2
- Fixes collisions with multiple Marko runtimes on the same page. #1019
- Switch to using prettier and eslint. #1016
4.9.1
- Fixes an issue with keyed elements not getting properly removed. #1013
4.9.0
-
Fixes related to hydration, split components, and the legacy compatibility layer #1010
-
Fix paths for vdom dependencies #1011
4.8.x
4.8.0
4.7.x
4.7.5
4.7.4
- Make jQuery optional for legacy components #951
4.7.3
- Prevent onRender running on the server for legacy widgets
4.7.2
-
Fixes #946 - don't put legacy init code in a separate lasso bundle
-
Fixes allowing conditionally binding to different roots in a legacy widget #944
4.7.1
- Fix issue with multiple top level elements being removed twice. #940
4.7.0
-
Add jQuery legacy compatibility layer support #937
-
Reorganize Marko tests #934
-
Switch to using jsdom in test suite #935
-
Decouple component hydration from Lasso #929
4.6.x
4.6.0
-
Setup
marko.load()to prefer precompiled templates from marko-cli -
Various compiler changes to improve marko-migrate
-
Fixes #916 - Add Marko debug mode. Adds babel plugin to remove and statically evaluate 'MARKO_DEBUG' literals for adding deprecation warnings and hints for the runtime without a performance penalty for production builds.
4.5.x
4.5.6
- Fixes #909 - Fix condition preventing bubbling DOM events from properly being attached to a component.
4.5.5
- Add 10 Awesome Marko Features article to documentation
4.5.4
- Fixes #904 - The loop status variable is not compiling when the equal sign is padded in spacing
4.5.3
- Fixes #903 - Special unicode chars (\u2028 and \u2029) need to be escaped if within script tag
4.5.2
- Fixes #899 - Keyed element could be incorrectly removed after DOM diffing/patching in case of HTML element mismatch for elements with the same key. PR #900
4.5.1
- Fixes #893 - Keyed element could be incorrectly removed after DOM diffing/patching in case of HTML element mismatch for elements with the same key. PR #894 by @westtrade
4.5.0
Summary of changes across all beta releases for the 4.5.0 release:
- Fixes #886 - Write component initialization code when async out and all of its nested async outs finish
- Fixes #854 - Make every .marko file a UI component (PR #855)
- Added support for the
:scopedmodifier on attributes and deprecated:key:
<label for:scoped="name">Name</label>
<input id:scoped="name" value="Frank"/>
- Fixes #817 - Support dynamic root elements
- Marko no longer attaches
idattributes to elements for purposes of keyed matching- Keyed elements are maintained in an internal, per-component lookup
- Keys are now assigned to all custom tags and HTML elements at compile-time to improve reliability and performance of DOM diffing
- Optimized internal bookkeeping required during rendering a UI component tree (no more UI component stack)
- DOM diffing/patching changes:
- Significant performance improvements
- morphdom is now UI component-aware
4.5.0-beta.3
4.5.0-beta.2
- Add ids for any key when component.elId/getElId is used as an attribute value
- Use indexOf instead of includes to support Node 4
- [docs] Fixes #841 -
docs/components.mdrefers to deprecated "data" variable #842
4.5.0-beta.1
- Add back (legacy) support for component.elId + key in template
- Fixes #837 - Update esprima to the latest to support async/await and ES2017 inside of components. (PR #839)
- Fixes key/scope for attributes that have dashes in the name
4.5.0-beta.0
- Fixes #817 - Support dynamic root elements
- Marko no longer attaches
idattributes to elements for purposes of keyed matching- Keyed elements are maintained in an internal, per-component lookup
- Keys are now assigned to all custom tags and HTML elements at compile-time to improve reliability and performance of DOM diffing
- Optimized internal bookkeeping required during rendering a UI component tree (no more UI component stack)
- DOM diffing/patching changes:
- Significant performance improvements
- morphdom is now UI component-aware
4.4.x
4.4.28
- fix undefined reference error in Component.js
- Increase mocha timeout to avoid CI build's failing #821
4.4.27
- Add ability to update globals by setting new input.
- [docs] Remove unneeded command from installation docs
- [docs] Update installing.md
4.4.26
- Add better interop for importing modules with default exports #803
4.4.25
- Fixes #778 - Fix Marko compiler generating incorrect path for requires on Windows.
4.4.24
- [docs] Update installing.md
4.4.23
- Fixes #796 - Fix events for event targets that are SVGElementInstance types in IE11.
- Used shortcut for escapeAtTags;
- Added
escapeAtTagsoptions in order to render<@tags>as they are; - simplify a condition judgement in components-jquery
- Fixes #790 - Class tag should not allow nested body content.
- Update
compile/index.jstest description - Update handleRootNodes.js #747
- [docs] Fix reference to lifecycle section in docs.
4.4.22
- Fixes #784 - Fix compiled preserve-attrs path.
- [testing] Fix express tests #779
- [docs] Update webpack.md
4.4.21
- Updated description in
package.json
4.4.20
- update bindComponentVar to use dynamic location
- updating location of bindComponent helper
4.4.19
- [testing] Fix key suffix test assertions.
- Address key suffix feedback. Additional tests.
- [morphdom] Removed bad and unhelpful optimization to avoid infinite loops
- [morphdom] Ensure
onBeforeNodeDiscardedis only called once by looking to see if the node is still attached. - [morphdom] Infinite loop fix in morphdom
- Fixes #761 - component.elId() does not work on the server
- Fixes #755 - Allow diffing of HTML, head, and body. #756
- [docs] Updated component docs
- [docs] Use relative link for image
- [testing] User default npm version for each Node.js version
4.4.18
- Fixes #749 #690 - Do not rely on root node having an ID on rerender and properly handle style root nodes.
4.4.17
- Put package (
browser.json) deps before others and parent deps before child deps #750 - [docs] Fix typo in redux.md
- [docs] Add redux document to structure.json
- [docs] Add doc describing how to use Redux with Marko.
4.4.16
- Fix duplicate body variable
4.4.15
- Fixes #739 - Should not attempt to check instanceof of type Map if it does not exist in the browser.
- Added build scripts
4.4.14
- Fixes issue with renderToString not rendering text nodes
4.4.13
- Fixes #721 - Add a Code of Conduct
- Fixes #655 - Implement renderToString in the browser.
4.4.12
- Fixes #695 - Always ignore unrecognized tags for XML files when using the compiler.
- Fixes #705 - Throw error when the root HTML element is a component and has a dynamic id attribute.
- [testing] Additional test for root node with dynamic id of a component with a component.js file.
4.4.11
- Fixes #728 - Do not use module keyword because webpack compiles it to a custom object.
- Fixes #719 - Support Express 4 and Express 5.
- fixes #658 by removing empty style blocks #715
- fixes #688 - add reference to browser.json in meta dependencies
- [docs] Fix broken link
- [docs] Fix Marko syntax in docs causing compilation errors on the website.
- [docs] Change pixels to percent in doc images.
- [testing] Purge express cache so that express tests both use correct module versions.
4.4.9
- Revert "Fixes #705 - Throw error when the root HTML element has a dynamic id …"
- [testing] Only run Node 4, 6, & 8 in travis
4.4.8
- [docs] Clean up why-is-marko-fast.md
- [docs] Clean up marko-vs-react.md
4.4.7
- Add silent option to browser-refresh and hot-reload
- Check id attribute for Literal. Update error message to include error page.
- Fixes #705 - Throw error when the root HTML element has a dynamic id attribute.
- [docs] Clean up components.md
- [docs] Fix typo in webpack.md
- [testing] give extra time for test timing out in travis
- [testing] run tests on node 8
- [testing] ignore test-dist from coverage
4.4.6
- Fixes #693 - [SSR] Improved handling of top-level UI components with renderBody func
- Switching to using
prepublishwith npm@5
4.4.3
- Use parent module to require express patch #701
- [docs] Reference app should point to "marko-lasso" because "ui-components-playground" does not contain lasso
- [docs] Add articles section to docs.
4.4.2
- Build fixes related to compiler
4.4.0
- Improve no-update-if condition check
- Compatibility improvements for Try Online
- Code size reduction
- Introduced src/ and dist/ folders for optimized production builds
- Fixes #695 - Default to ignoring unrecognized tags for XML files.
4.3.x
4.3.1
- Add basic test for ensuring that res.marko returns a promise.
- enable res.marko can catch a error safe
4.3.0
- [compiler] Added more control over how attributes are targeted to props
- Don't add root markers to tags that don't produce output
- [docs] Added docs for Marko + Huncwot integration
- [AST] Added
node.removeChildren() - Extend marko globals with defaults
4.3.0-beta.4
- Fixes #673 - Circular dependency is causing problems with Webpack
4.3.0-beta.3
- Changes related to #670 - Globals must be serialized earlier to allow early mount of UI components in
- [docs] Improved docs for SSR
4.3.0-beta.2
- Fixes for #670 - Add support for serialized globals and retain globals on re-render
4.2.x
4.2.8
- Bug: Fixes #661 - Component initialization code may end up in the wrong place
- Bug: Fixes #668 - Declarative event listeners are now allowed on the
<include>tag
4.2.7
- Bug: Fixes #650 - The tag "await" does not support attribute "unless"
- Improvements to legacy state
4.2.6
- Bug: Fixes #654 - Bug: components implementing a
keyattribute break in Marko v4 - Improvements to legacy compatibility layer
4.2.5
- Improved support for UI components implemented using native JavaScript class in a separate file
- Improved how legacy layout tags are handled by Marko v4
4.2.4
- Bug: Fixes #653 - Event handlers are no longer bound in edge case
4.2.3
- Bug: Fixes #649 - New line always added to
textareaand other elements for single line/delimited HTML blocks
4.2.2
- Bug: Fixes #648 - Style attribute object and lengths not handled properly
4.2.1
- Bug: Fixed #644 - Attribute not rendered by Marko is not preserved if component first rendered on the server
- [Performance] Escaping is not needed for the
data-markoattribute
4.2.0
- Bug: Fixed #629 - VDOM: Rendering unescaped HTML produces non-functioning HTML input controls
- Bug: Fixed #634 - writeInitComponentsCode is not a function
- Enhancement: Added support to allow improved precompiling of templates
- Enhancement: Fixed #636 - Add error when macro with duplicate name is found
- Performance: Optimized diffing/patching to avoid indexing entire tree to find keyed elements
- Performance: Optimized how event handlers are attached to VDOM nodes (separated from attributes)
4.1.x
4.1.3
- Bug: Fixed losing cursor position in Edge (see morphdom PR #100 by @zastavnitskiy)
- Bug: Ignore
xmlnsattributes when virtualizing real DOM nodes (needed when inserting an HTML string when rendering to a VDOM)
4.1.2
- Bug: Fixed #623 - Uncaught TypeError:
toEl.$__hasAttributeis not a function - Bug: Fixed #619 - Deprecated
constructor()for UI component classes
4.1.1
- Added
"use strict";to restore Node.js compatibility for Node.js v4 and v5
4.1.0
- Bug: Fixes #611 - Component IDs are not being assigned correctly when intermediate non-component is rendered
- Performance: SVG namespaced elements are now resolved determined at compile-time
- Performance: Merged in
morphdomand optimized for Marko - Performance: Optimized diffing/patching of elements with only simple attributes in the following set:
class,idandstyle
4.0.x
4.0.1
- Bug: Fixes #612 - Compile error when class method has empty
return - Bug: Fixes #604 -
no-updateattributes error when first rendered on the server - Bug: Fixes #608 - Component losing
renderBodyinput on a particular redraw - Enhancement: Fixes #606 - named single-file component doesn't work
4.0.0
- Marko v4! Release Announcement
3.x
3.13.x
3.13.2
- Fixed [#478](TagLookup fails when merging taglibs) - TagLookup fails when merging taglibs
3.13.1
- Fixes #465
3.13.0
3.12.x
3.12.0
- Added warnings for using render methods when you want string output (Pull Request #450 by @mlrawlings)
3.11.x
3.11.8
- Fixes #382 - Local variable for tag should have prefix or suffix to avoid conflict
3.11.7
- Fixes #381 -
$globalbroken when usingtemplate.stream()
3.11.6
- Internal change:
AsyncWriter→AsyncStream
3.11.5
- (no changes)
3.11.4
- Update to
async-writer@2
3.11.3
- Silently ignore errors when parsing tag definition code inlined in JavaScript
3.11.2
- Fixed #318 - Use compiler options passed to require hook to configure marko globally
require("marko/node-require").install({
compilerOptions: {
writeToDisk: false,
},
});
3.11.1
- Fixed #370 - HTML characters in loop separator string should not be escaped
3.11.0
- Introduced the
<include-html(path)>tag for including static HTML:
<include-html('./foo.html')>
3.10.x
3.10.1
- Fixed #44 - Webpack compatibility fixes. Also see marko-loader (A marko loader for webpack)
3.10.0
- Fixed #357 - Deprecate
empty/notEmptyin Marko v3
3.9.x
3.9.4
- Fixed #355 -
status-var/separatoroptions not handled when looping over properties - Fixed #354 - regular expressions used in attribute values are not being handled correctly
- Fixed #353 -
body-only-ifattribute does not work with custom tags (only HTML tags)
3.9.3
- Upgraded to
raptor-util@^2
3.9.2
- Fixed #327 - alt attribute with empty string should be allowed (Pull Request #350 by @mlrawlings)
3.9.1
- Fixed #348 - exclude all
*.origand other files from published npm package
3.9.0
- Fixed #231 - Allow <assign count++>
- Fixed #345 - Whitespace preservation now applies to all deeply nested text nodes
- Fixed #344 - Introduced defineRenderer for Marko
- Docs: Added docs for excluding directories from taglib discovery (@mlrawlings)
- Docs: Added docs for component autodiscovery (@mlrawlings)
- Docs: Added docs for passing a data object to a custom tag
3.8.x
3.8.1
- Fixed #342 -
await:finishevent not emitted for async fragments with client reorder and that complete synchronously
3.8.0
- Fixed #329 - Add autodiscover of components/ directory (Pull Request #338 by @mlrawlings)
3.7.x
3.7.4
- Fixed #339 - Tag transformers are not being applied to tags with a dynamic tag name (fixes #146 for Marko Components)
3.7.3
- Fixed #332 and #333 - Correct values for
literalUndefinedandliteralFalsein the Builder API @bkuri - Fixed #336 - Upgraded to latest version of
minimatch
3.7.2
- Fixed #328 - Improve error reporting when taglib/tag definition fails to load
- Additional change to disable escaping for dynamic
Textnodes added to body of<script>tag to fix issue #326
3.7.1
- Improved escaping within the
<script>tag to fix issue #322. Special HTML characters will no longer be escaped within the context of the<script>tag since browsers do not decode HTML entities within the<script>tag. Instead, only the ending</script>tag sequence is escaped using JavaScript string escaping sequences.
3.7.0
- Made change to make configuration a true singleton shared across all instances of
markoloaded at runtime (commit)
3.6.x
3.6.2
- Improved support for hot reloading by automatically disabling
assumeUpToDateif hot reload is enabled. (Pull Request #320 by @ianvonholt)
3.6.1
- Fixed a bug that was causing transforms to be run on detached nodes. This was manifesting itself in the
<async-fragment>to<await>transform if anif()attribute was present (or other core attributes that end up wrapping the tag it is defined on).
3.6.0
- Introduced a new and simpler
<await>tag that should be used instead of the now deprecated<async-fragment>tag (see deprecation details below) (Pull Request #312 by @mlrawlings)
Deprecations
- Deprecated the
<async-fragment var="<var>" data-provider=<data-provider>>tag in favor of the<await(<var> from <data-provider>)>tag:
OLD:
<async-fragment var="userInfo" data-provider=data.userInfoPromise>
Hello ${userInfo.name}!
</async-fragment>
NEW:
<await(userInfo from data.userInfoPromise)>
Hello ${userInfo.name}!
</await>
The <await> tag supports all of the attributes of the previous <async-fragment> tag except for var and data-provider:
<await(userInfo from data.userInfoPromise) name="userInfo" timeout=10000 client-reorder>
Hello ${userInfo.name}!
</await>
Finally, the nested tags for providing content for the placeholder, error and timeout messages have been renamed accordingly:
<await(userInfo from data.userInfoPromise) client-reorder>
<await-placeholder>
This is alternate content while the async fragment is loading.
</await-placeholder>
<await-timeout>
A timeout has occurred!
</await-timeout>
<await-error>
A error has occurred!
</await-error>
Hello ${userInfo.name}!
</await>
3.5.x
3.5.1
- Fixes #316 - Autocomplete for tags is not updated when tag files updated despite clearing cache. This improves the autocomplete-marko plugin for Atom.
- Fixes #314 - Remove hyphens from include props
- Deprecated:
- Properties passed in using the
<include>tag should not be access using hyphens.
- Properties passed in using the
For example, given the following template:
<include("./include-target.marko") first-name='Jane'/>
The first-name data should be accessed using the firstName property:
var firstName = input.firstName;
// NOT: var firstName = input['first-name'];
3.5.0
- Added functionality to exclude specific directory or package from taglib finder (Pull Request #309 by @oxala)
3.4.x
3.4.9
- Fixed [https://github.com/marko-js/marko/issues/307] - Marko concise syntax, with multiple class names (Pull Request #308 by @mlrawlings)
3.4.8
- Added support for an "enum" attribute value
3.4.7
- Async fragment improvements (Pull Request #305 by @mlrawlings)
- Adds additional event info (finished/timedout) to the data emitted from tags.
- Ensures that renderBody() is not called again if the fragment has already finished (timed out).
- Fixes
npm run test-async - Removes a redundant
async-fragmenttimeout related test
3.4.6
- Updated autocomplete information
3.4.5
- Fixes #304 - async-fragment-tag-transformer.js being loaded by PhantomJS
- Updated taglibs with additional information to support tooling
- Added Michael Rawlings as a maintainer
3.4.4
- Fixes #303 -
addStaticVaris not generating unique variable names correctly
3.4.3
- Improved validation for macros (@mlrawlings, PR #300)
- Added code coverage reporting (@mlrawlings, PR #301)
3.4.2
- Improved error reporting in cases when code generation fails (@mlrawlings)
3.4.1
- Additional tweaks for #298 - Always emit correct events for async fragments
3.4.0
- Fixes #298 - Always emit correct events for async fragments
- Updated docs
3.3.x
3.3.0
- Include async fragment name in the
asyncFragmentFinishevents (@kprakasam)
3.2.x
3.2.0
- Fixes #286 - Add res.marko(templateData) for use with Express (@mlrawlings)
3.1.x
3.1.9
- Fixes #288 - Provide API for discovering custom tags and attributes for autocomplete/tooling purposes
- Documentation improvements
3.1.8
- Fixes #280 - Switch from jsonminify to strip-json-comments
- Updated docs for Koa and Hapi
- Additional tests for Node.js v6
3.1.7
- Fixes #274 - marko-compiler-options tag is not properly ended when using raw parsing (for prettyprint)
3.1.6
- Fixes #268 - this.write is not a function for empty ArrayExpression
3.1.5
- Fixes #262 - node-require module removes
.markoextension from filenames in compiled code
3.1.4
- Fixes #267 - Shorthand CSS class name cannot be combined with object/array class names
3.1.3
- Fixed #266 - Hot reloading fails if original template is deleted
3.1.2
- Fixed error reporting when using
compiler.parseRaw() - Added test for #262
3.1.1
- Improved whitespace removal for text nodes directly below the root
3.1.0
- Fixes #254 - Allow preserve whitespace to be enabled at the global level
3.0.x
3.0.7
- Fixes #240 - Always trim start and end of template (even if preserveWhitespace is true)
- Fixes #260 - Circular custom tags causes infinite recursion when writeToDisk is set to false
- Minor internal cleanup
3.0.6
- Don't wrap exception in
parseJavaScriptif error object was not created by Esprima
3.0.5
- Fixes #257 - Placeholders don't render for out-of-order async fragments
3.0.4
- Fixes #256 - Convert attributes to title case if no attributes are declared for a custom tag
- Use
<noscript>for out-of-order async fragment placeholders
3.0.3
3.0.2
- Store
tagDefwithHtmlElementnode (needed for pretty printing)
3.0.1
- Docs: Fixed minor issues in docs
- Reintroduced support for the
MARKO_CLEANenvironment variable:MARK_CLEAN=true node server.js
3.0.0
2.x
2.8.x
2.8.4
- Fixes circular dependency issue between runtime/index.js and hot-reload/index.js
2.8.3
- Fixes circular dependency issue between runtime/index.js and hot-reload/index.js
2.8.2
- Fixes #203 - Incorrect behavior when attrs is used on a standard HTML tag with a tag def
2.8.1
- Fixes #202 - Pass along options to compiler when loading a template
2.8.0
- Added support for automatically discovering taglibs from installed packages that are scoped. (PR #183 by @tropperstyle)
2.8.3
- Fixes circular dependency issue between
hot-reload/index.jsandruntime/index.js
2.7.x
2.7.31
- Fixes #167 - Nested tags only work one level deep
2.7.30
- docs: don't exclude docs in .npmignore
2.7.29
- Fixes #161 - Nested tags with no body content are not handled correctly
2.7.28
- Fixes #140 - Also de-dupe cached taglibs in finder
2.7.27
- Make loading template from String template source easier:
var template = marko.load(templatePath, "Hello $!{data.name}!");
NOTE: Loading directly from source only works on the server
2.7.26
- Use shorter relative paths in error messages
2.7.25
- Fixes #150 - Provide option to prevent writing compiled templates to disk. Example usage:
require("marko/compiler").defaultOptions.writeToDisk = false;
NOTE: If you disable writing compiled templates to disk then it will be a little harder to debug errors in templates on the server since the stack trace will refer to a file that has not been written to disk.
For a more complete list of compiler options please see: http://markojs.com/docs/marko/javascript-api/#defaultoptions
2.7.24
- Fixes #140 - De-dupe taglibs by module name
- Documentation: Miscellaneous changes
2.7.23
- Fixed a typo for
rendererFuncin helpers.js(commit:0205a47f04)
2.7.22
- New language feature:
unlesssupport added
2.7.21
- Automatically enable hot-reload and browser-refresh if launched using browser-refresh
2.7.20
- Documentation: Miscellaneous changes
2.7.19
- Fixes #137 - adds support for dynamic HTML tag names
2.7.18
- Improvement: Better resolving of tag renderer
- Compiler: Fix to make compiler work in the browser
2.7.17
- Fixes #135 Allow "attrs" attribute on custom tags
2.7.16
- Improved handling of imports
- Better handling of loading taglibs with circular dependencies
2.7.15
- Handle circular taglib imports
2.7.14
- Fixes #131 - Recursively handle taglib imports
2.7.13
- Added a
.npmignorefile - Fixed licensing header in source
- Documentation: improved docs for input.renderBody()
- Documentation: Miscellaneous changes
2.7.12
- Fixes #122 Don't allow invalid attributes when using shorthand
- Fixes #122 Typo in hasAttributes
- Fixes #127 - Make sure all possible input files are accounted for when checking if a compiled template is up-to-date
- Use
browser.jsonfiles instead ofoptimizer.jsonfiles - Documentation: Improved docs for async taglib
- Documentation: Added empty() and notEmpty() helpers to the readme
- Added Martin Aberer as a maintainer
- Documentation: Miscellaneous changes
2.7.11
- New logo!
2.7.10
- Fixes #118 Better error when parsing JSON file for tag
- Testing: More test cases related to empty attributes
- Documentation: Clarification for the Node.js require extension
- Documentation: doc reference for
getLength()of loopstatus-var - Documentation: Added reference to sublime-marko under the tools section.
2.7.9
- Fixes #109 - Allow
compiler.createNode('div') - Fixes #108 - Improve how the
MARKO_CLEANenv variable is handled
2.7.8
- Minor documentation changes
2.7.7
- Allow
.htmlextension for layouts (Fix for https://github.com/raptorjs/marko-layout/issues/2)
2.7.6
- Make require('marko/node-require').install() a noop in the browser
2.7.5
- Improvement: Allow
template-datato be combined with other attributes on the<include>tag - Documentation: Fixes #98 - docs for
<include template-data="...">
2.7.4
- Fixes #96 - Allow relative, dynamic include paths
2.7.3
- Internal change: Additional test cases added for using promises with async fragments
2.7.2
- Fixes #73 - Prevent same taglib from being loaded multiple times
2.7.1
- Fixes #88 - Assign global data to the correct out
2.7.0
- Fixes #27 - IE conditional comments (e.g.,
<!--[if lt IE 9]><div><![endif]-->) are automatically preserved. Previously, all HTML comments were stripped out when loading a template. For example: - Added support for
<compiler-options comments="preserve"/>to enable comments to preserved in a template. For example:
<compiler-options comments="preserve"/>
Hello
<!--This comment should be preserved-->
World
Output:
Hello
<!--This comment should be preserved-->
World
2.6.x
2.6.0
- Performance improvements
'use strict';- Optimized render code paths
- Code cleanup
- Compatibility fixes for Node.js 0.12
- Bad:
fs.readFile(path, 'utf8') - Good:
fs.readFile(path, {encoding: 'utf8'})
- Bad:
2.5.x
2.5.0
- Fixes #78 - Custom Node.js require extension for Marko template files. Example usage:
// Install the Node.js require extension in your application's main script (server-side only)
require("marko/node-require").install();
// Now you can require `*.marko` files just like any other JavaScript module
var template = require("./hello.marko");
var html = template.renderSync({ name: "Frank" });
- Compiled templates now export a loaded Template instance. In the previous version of marko, compiled templates exported a function that could be used to create a loaded Template instance.
2.4.x
2.4.3
- Fixes edge case: More precise regular expression for decoding HTML entities
2.4.2
- Internal: Fixes #75 Always assign the tag property to custom tag nodes
2.4.1
- Improvement to allow taglibs to be imported from other taglibs (commit)
2.4.0
- Added support for short-hand tags and attributes
Old marko-taglib.json:
{
"tags": {
"my-hello": {
"renderer": "./hello-renderer",
"attributes": {
"name": "string"
}
}
}
}
Short-hand marko-taglib.json:
{
"<my-hello>": {
"renderer": "./hello-renderer",
"@name": "string"
}
}
- Fixes #61 Simplify parent/child relationships
Marko now supports custom tags in the following format: <parent_tag.nested_tag>
Example usage:
<ui-tabs orientation="horizontal">
<ui-tabs.tab title="Home"> Content for Home </ui-tabs.tab>
<ui-tabs.tab title="Profile"> Content for Profile </ui-tabs.tab>
<ui-tabs.tab title="Messages"> Content for Messages </ui-tabs.tab>
</ui-tabs>
ui-tabs/marko-tag.json
{
"@orientation": "string",
"@tabs <tab>[]": {
"@title": "string"
}
}
ui-tabs/renderer.js
var template = require("marko").load(require.resolve("./template.marko"));
exports.renderer = function (input, out) {
var tabs = input.tabs;
// Tabs will be in the following form:
// [
// {
// title: 'Home',
// renderBody: function(out) { ... }
// },
// {
// title: 'Profile',
// renderBody: function(out) { ... }
// },
// {
// title: 'Messages',
// renderBody: function(out) { ... }
// }
// ]
console.log(tabs.length); // Output: 3
template.render(
{
tabs: tabs,
},
out,
);
};
ui-tabs/template.marko
<div class="tabs">
<ul class="nav nav-tabs">
<li class="tab" for="tab in data.tabs">
<a href="#${tab.title}"> ${tab.title} </a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane" for="tab in data.tabs">
<invoke function="tab.renderBody(out)" />
</div>
</div>
</div>
2.3.x
2.3.2
Fixes #66 - Allow circular dependencies when loading templates
2.3.1
- Testing framework changes
- Fixes #65 - Generated variable name is an empty string in some cases
2.3.0
- Fixes #53 Merge c-input with attr props
2.2.x
2.2.2
Fixes #60 Don't replace special operators for body functions
2.2.1
- Fixes #58 Added support for MARKO_CLEAN env variable (force recompile of all loaded templates). Example usage:
MARKO_CLEAN=true node run.js
- Code formatting: add spaces in var code
2.2.0
- Fixes #51 Allow body content to be mapped to a String input property
- Fixes #52 Remove JavaScript comments from JSON taglib files before parsing
2.1.x
2.1.6
- Fixes #50 Initialize the loader after the runtime is fully initialized
2.1.5
- Fixes #50 Ensure that all instances of marko have hot-reload and browser-refresh enabled
2.1.4
- Allowing complex var names (i.e. LHS) for the
<assign>tag.
2.1.3
- Minor change: Slight improvement to code to resolve tag handler
2.1.2
- Minor change: Improve how renderer is resolved
2.1.1
- Fixes #48 name in marko-tag.json should override default name given during discovery
2.1.0
- Fixes #47 - Added support for "taglib-imports"
2.0.x
2.0.12
- Fixes #31 - Add support for providing prefix when scanning for tags
- Allow "code" to be a function that lazily evaluates to a code string during code generation
2.0.11
- Added method for custom node compilers to get access to the
escapeXmlfunction at runtime
2.0.10
- Fixes #39 - Added missing return when using hot-reload
2.0.9
- Fixed bad publish
2.0.8
- Better merging of tags when loading and merging taglibs
2.0.7
- Changes to avoid problems associated with the same taglib being found multiple times in the search path
2.0.6
renderBodyfunction is only added if tag has children
2.0.5
- Fixed #36 - Don't use
invokeBody()in the cache taglib
2.0.4
- ❗ Fixed #36 - Deprecated - When using
<include>with body content, nested body content is now passed in asStringproperty namedbody. Old behavior: nested content would be passed in as aFunctionproperty namedinvokeBodythat would return theStringvalue of the nested content.invokeBody()has been deprecated.
2.0.3
- Fixed #36 - Don't use
invokeBody()in test code and the HTML comments tag
2.0.2
- ❗ Fixed #36 - Deprecated
input.invokeBody()in favor ofinput.renderBody(out) - Fixed #37 - Duplicate input property for custom tag renderers
2.0.1
- Fixed #35 - Added support for
<compiler-options>. Example:
<compiler-options whitespace="preserve" /> A B C
2.0.0
- Dynamic attributes for scanned tags without a tag will have dashes removed by default.
- ❗ When using
tags-dirto discover tags that do not have amarko-tag.json, the previous behavior was to allow all attributes and to use the actual attribute name as the input property name. For example, when using<hello first-name="John">, first name would need to be read in asinput['first-name']. This was changed such that the first name property should now be read in asinput.firstName(dashes removed and converted to camel case)
- ❗ When using
- Changes to allow UI component to be put into a single JS file:
- Updated taglib directory scanner to use
index.jsif found. New search order:renderer.js(userenderer.jsif it exists)index.js(useindex.jsif it exists and assume it exports arendererorrenderproperty)template.marko(use the template as the renderer if norenderer.jsorindex.js)
- ❗ Changes to the taglib directory scanner could break existing code. Specifically, if a UI component directory had an
index.jsfile and atemplate.markofile then in inmarko@<2thetemplate.markofile would have been selected as the renderer. Inmarko@2.x, theindex.jswill be selected as the tag renderer.
- Updated taglib directory scanner to use
- ❗ Removed support for mapping a tag renderer to a module with a
processmethod - Removed sub-module
marko/rendererthat exports raptor-renderer
1.x
1.6.x
1.6.1
- Added back code to allow the new marko runtime to load templates compiled by an earlier compiler that used
module.exports
1.6.0
- Fixed #32. Switched from
module.exports = function create(__helpers) { ... }toexports.create = function(__helpers) { ... }to avoid circular dependency problems
1.5.x
1.5.8
- Added support for adding "static" code to the top of a compiled template (helpful for initializing variables or running code once).
1.5.7
- Added sub-module
marko/rendererthat exports raptor-renderer
1.5.6
- Changes to avoid unoptimized code in V8
1.5.5
- Handle case where template was loaded before hot-reload was enabled
1.5.4
- Added support for
$globalinrenderSync