tw-framework 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,47 @@ Notable changes to TW Framework. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/), and the project uses
5
5
  [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [2.0.1]
8
+
9
+ A patch release: bug fixes only. No new features, no breaking changes, and no
10
+ public API changes -- 2.0.1 is a drop-in replacement for 2.0.0.
11
+
12
+ ### Fixed
13
+
14
+ - **Compiler -- expressions.** Grouped and nested expressions, string
15
+ concatenation, method calls, unary operators, `&&` (now yields its operand),
16
+ and `.length` on a string all evaluate the way the docs describe. A call to a
17
+ helper the page imports now works; an unknown callee no longer renders its own
18
+ argument; a `}` inside an expression no longer ends it early.
19
+ - **Compiler -- conditions and loops.** A parenthesised `if` condition takes the
20
+ right branch, and a loop over a computed collection (`.filter`, `.map`,
21
+ `.slice`, `.concat`, `.reverse`) renders its items instead of an empty list.
22
+ - **Compiler -- components and props.** A dynamic prop (`prop={expr}`) binds its
23
+ value; a prop written in the block form reaches the component; two or more
24
+ classes with an `on:` binding no longer merge into one class name; a nested
25
+ component no longer trips the circular check; `{page.description}` resolves and
26
+ the description meta is emitted once.
27
+ - **Compiler -- diagnostics.** An interpolation the build cannot evaluate raises
28
+ a warning (`TW098`) instead of silently rendering its source text.
29
+ - **Server.** Request-time render modes (`ssr`, `stream`) no longer 404 without a
30
+ `cache` block; an unmatched path is answered with the nearest `not-found.tw`
31
+ and the right status code; `error.tw` is rendered when a render fails; a named
32
+ slot is filled after the layout chain is applied; a static resource answers
33
+ only the methods that apply to it; `tw dev` runs a page's server blocks and
34
+ shows the dev error page when one fails.
35
+ - **Runtime.** Store getters and actions follow the documented forms, `subscribe`
36
+ receives the new value, catch-all routes match multiple segments, derived
37
+ values propagate in a consistent order, and two helpers no longer throw on
38
+ edge-case input.
39
+ - **Plugins.** A hook returns the first interception result rather than the last,
40
+ so one plugin no longer disables another's `onRequest`; a command registered by
41
+ a plugin is dispatched.
42
+ - **Tooling and docs.** `tw --help` reports the real version; the image, link and
43
+ head helpers produce the documented output; several documentation corrections.
44
+ - **Security hardening** across token lifetime, upload validation, content-type
45
+ checks, the crypto helpers and the link helpers. The details are intentionally
46
+ not enumerated here -- upgrade if you are on 2.0.0.
47
+
7
48
  ## [2.0.0]
8
49
 
9
50
  ### Added