v0.3.0
Features
- Bracketed personalization strings (
[First Name],[_subscriberkey]) are now tokenized as a newPERSONALIZATIONtoken and emitted as an atomicPersonalizationStringAST node, instead of being split into separate bracket and identifier tokens. - Works in all positions: assignment targets/values, function arguments, comparison operands, and inline
%%=[...]=%%expressions.
Bugfixes
- The bracket tokenizer is deliberately conservative: content containing
=, quotes,%,,or;is no longer mistaken for a personalization string, so constructs such as%%[ SET @a = "nested" ]%%degrade gracefully to raw tokens. - Unterminated brackets no longer swallow following statements.
Chores
- Added
test/personalization-string.test.mjscovering all supported positions and the degradation cases. npm audit fixapplied; CI workflow maintenance.
Full Changelog: v0.2.0...v0.3.0