Harttle
94440a0653
chore: more strict mem limit for string filters
2026-03-22 22:10:39 +08:00
Yang Jun and Harttle
95ddefc056
fix: mem limiter for invalid ranges
2026-03-22 10:24:03 +08:00
Yang Jun and GitHub
e8e502c585
fix: math filters coerce invalid string to 0, #813 ( #819 )
2025-10-06 18:31:43 +08:00
Harttle and Jun Yang
59cf3c08db
fix: preserveTimezones support for RFC2822 date, #784
2025-01-04 22:46:07 +08:00
James and GitHub
3492ff63f4
feat: static variable analysis ( #770 )
...
* feat: static variable analysis
* Accept any iterable from `children`, `arguments`, etc.
* Test analysis of standard tags
* Use `TagToken.tokenizer` instead of creating a new one
* Test analysis of netsted tags
* Group variables by their root value
* Test analysis of nested globals and locals
* Analyze included and rendered templates WIP
* Use existing tokenizer when constructing `Hash`
* Improve test coverage
* Analyze variables from `layout` and `block` tags
* Test analysis of Jekyll style includes
* Handle variables that start with a nested variable
* Async analysis
* Test non-standard tag end to end
* Implement convenience analysis methods on the `Liquid` class
* More analysis convenience methods
* Accept string or template array
* Draft static analysis docs
* Deduplicate variables names
* Fix isolated scope global variable map
* Coerce variables to strings instead of extending String
* Private map instead of extending Map
* Fix e2e test
* Tentatively implement analysis of aliased variables
* Fix nested variable segments array
* Update docs sidebar
2024-12-28 21:35:28 +08:00
Harttle and Jun Yang
35a84421a6
feat: size, first, last support arraylike objects, #781
2024-12-28 16:10:06 +08:00
Yang Jun
86f6bf0d31
fix: expose originalError from LiquidError, #742
2024-08-29 11:37:56 +08:00
Yang Jun
68387c31ea
fix: "filter is not a function" for uniq
2024-08-23 21:27:53 +08:00
Yang Jun
4548c11406
fix: support for NodeJS 15, fixes #732
2024-08-16 23:40:48 +08:00
Jun Yang and GitHub
e4aeb023fd
feat: locale support for date filter, #567 ( #723 )
2024-07-22 00:39:44 +08:00
Yang Jun
e443068cb9
feat: DoS prevention, #250
2024-07-09 22:51:11 +08:00
Harttle
22b5a12333
fix: report error for malformed else/elsif/endif/endfor, #713
2024-07-05 01:23:33 +08:00
Jun Yang and GitHub
3b5627b040
feat: support catching all errors, #220 ( #710 )
2024-06-17 22:48:57 +08:00
a0ea372764
docs: fix some spelling ( #708 )
...
* spelling: according
Signed-off-by: Josh Soref <[email protected] >
* spelling: asynchronously
Signed-off-by: Josh Soref <[email protected] >
* spelling: background
Signed-off-by: Josh Soref <[email protected] >
* spelling: camel
Signed-off-by: Josh Soref <[email protected] >
* spelling: cannot
Signed-off-by: Josh Soref <[email protected] >
* spelling: case-sensitive
Signed-off-by: Josh Soref <[email protected] >
* spelling: comparison
Signed-off-by: Josh Soref <[email protected] >
* spelling: demos
Signed-off-by: Josh Soref <[email protected] >
* spelling: forloop
Signed-off-by: Josh Soref <[email protected] >
* spelling: formatters
Signed-off-by: Josh Soref <[email protected] >
* spelling: github
Signed-off-by: Josh Soref <[email protected] >
* spelling: guidelines
Signed-off-by: Josh Soref <[email protected] >
* spelling: hashes
Signed-off-by: Josh Soref <[email protected] >
* spelling: https
Signed-off-by: Josh Soref <[email protected] >
* spelling: javascript
Signed-off-by: Josh Soref <[email protected] >
* spelling: keep
Signed-off-by: Josh Soref <[email protected] >
* spelling: natural
Signed-off-by: Josh Soref <[email protected] >
* spelling: neither
Signed-off-by: Josh Soref <[email protected] >
* spelling: no longer
Signed-off-by: Josh Soref <[email protected] >
* spelling: nonexistent
Signed-off-by: Josh Soref <[email protected] >
* spelling: output
Signed-off-by: Josh Soref <[email protected] >
* spelling: polymorphism
Signed-off-by: Josh Soref <[email protected] >
* spelling: precache
Signed-off-by: Josh Soref <[email protected] >
* spelling: programmatically
Signed-off-by: Josh Soref <[email protected] >
* spelling: punctuation
Signed-off-by: Josh Soref <[email protected] >
* spelling: registration
Signed-off-by: Josh Soref <[email protected] >
* spelling: rendered
Signed-off-by: Josh Soref <[email protected] >
* spelling: synchronously
Signed-off-by: Josh Soref <[email protected] >
* spelling: thrown
Signed-off-by: Josh Soref <[email protected] >
* spelling: trimmed
Signed-off-by: Josh Soref <[email protected] >
* spelling: unbalanced
Signed-off-by: Josh Soref <[email protected] >
* chore: use example.com
* chore: fix reference for sidebar.registration
---------
Signed-off-by: Josh Soref <[email protected] >
Co-authored-by: Harttle <[email protected] >
2024-06-17 17:19:46 +08:00
Yang Jun
4955e75be7
feat: date filters from Jekyll
2024-05-09 23:37:27 +08:00
Yang Jun and Jun Yang
e09657c52b
fix: allow %Z for TimezoneDate, update docs accordingly #684
2024-04-21 15:57:43 +08:00
Jun Yang
258780e9a8
feat: pop/shift/unshift filters from Jekyll
2024-04-14 19:34:07 +08:00
Harttle
dd7616acb9
fix: allow unicode to be identifiers, fixes #655
2023-11-04 21:33:29 +08:00
Jun Yang and GitHub
660d9be55f
feat: more flexible squared property read expression, fixes #643 ( #646 )
...
* fix: more flexible squared property read expression, fixes #643
* fix: unecessary error wrapping in browser bundles
* style: update code style and types
* perf: use token.value when evalToken
2023-08-23 00:45:49 +08:00
Francisco Soto and Jun Yang
dc6a301387
fix: for throws undefined var with a null value with strictVariables
2023-08-19 23:54:32 +08:00
Jason Garber and Jun Yang
0b4e2a9979
fix: strftime getSuffix works for all dates
...
As written, the strftime module's `getSuffix` method (responsible for
returning a date's ordinal string) works correctly for all dates in a
month _except_ 11, 12, and 13.
The existing code would return a string based on the last digit of the
date. In American English, these three dates use the `th` suffix rather
than `st`, `nd`, or `rd`.
This refactor/bug fix draws inspiration from Rails' ActiveSupport
ordinal inflector:
https://github.com/rails/rails/blob/main/activesupport/lib/active_support/locale/en.rb
The Ruby code above is designed to work with any number, so the bug fix
to this library is simpler.
The test suite is also updated with additional examples to verify the
correctness of these changes.
2023-06-15 21:01:55 +08:00
Harttle
3a67eb7f1c
fix: incorrect error message for browser UMD bundle
2023-06-04 12:00:32 +08:00
Harttle and Jun Yang
e347e603d7
feat: precise line/col for tokenization Error, #613
2023-06-04 02:06:42 +08:00
Harttle and Jun Yang
33b3c010af
fix: incorrect timezone correction for DST dates, fixes #604
2023-04-25 01:28:48 +08:00
Harttle and Jun Yang
21ee27b575
fix: timezoneOffset ignored in date when preserveTimezones is enabled, fixes #605
2023-04-25 01:28:48 +08:00
Jun Yang
7b87ea82d3
feat: JSON format by space in json filter
2023-03-22 00:08:24 +08:00
Harttle and Jun Yang
c6cde9cd10
chore: migrate test cases from Chai to Jest
2023-03-20 00:41:06 +08:00
Jun Yang
92992689cd
refactor: Tag class support in registerTag()
2022-11-27 14:04:01 +08:00
Jun Yang
ffefd91fbc
refactor: remove toThenable export
...
BREAKING CHANGE: `<liquidjs>.toThenable` is removed, use `<liquidjs>.toPromise` instead
2022-11-27 14:04:01 +08:00
Jun Yang
ff112a4750
chore: rename filters to snake style, #487
...
BREAKING CHANGE: keys in `<liquidjs>.filters` are now in snake case (instead of camel case), identical to that in Liquid template.
2022-11-27 14:04:00 +08:00
Harttle and Harttle
bbf00f37bf
feat: promise in expression & nested property, #533 #276
2022-08-27 23:19:16 +08:00
Harttle
4289b4e804
refactor: rename toValue to toValueSync
2022-07-10 00:24:00 +08:00
Harttle
c3e51caa70
fix: for tag not respecting Drop#valueOf(), fixes #515
2022-07-09 22:21:51 +08:00
James Prior and Jun Yang
a19feea7c4
feat: iteration protocols
2022-07-09 18:21:54 +08:00
Harttle
3dc4290b56
fix: stack overflow on large number of templates, #513
2022-07-08 01:46:51 +08:00
Harttle
f88490cd3c
feat: automatic output escaping, closes #500
2022-04-22 02:19:36 +08:00
Harttle
c503cb23df
feat: allow strip filter with specified char, closes #390
2022-03-06 00:20:51 +08:00
Harttle
7dfb620d30
fix: some filters throw on nil input, see #481
2022-02-27 02:07:59 +08:00
Harttle
ab5e245fba
fix: array output now join with "" instead of ","
2022-02-20 13:03:40 +08:00
Harttle and Harttle
95fc705b5d
chore: upgrade typescript
2021-12-11 20:23:09 +08:00
Harttle and Harttle
69286c6909
test: coverage to 100%
2021-12-07 23:34:53 +08:00
Harttle and Harttle
e2ef236f68
fix: throws when using preserveTimezones on Node.js, fixes #431
2021-12-07 22:43:47 +08:00
Harttle and harttle
b5b2a98d5e
chore: fix types
2021-10-16 22:36:46 +08:00
Harttle and harttle
8894cbfe6e
fix: cache ongoing parseFile() calls, fixes #416
2021-10-16 21:07:48 +08:00
Harttle and harttle
9cfa43b8ae
fix: hardcoded '/' in normalized options.fs, fixes #412 , #408
...
Changes including:
- will not call fs.resolve when normalizing `fs`
- removed hardcoded `/`
- mandatory `fs.dirname` for relative reference
- mandatory `fs.sep`, defaults to '/'
2021-10-16 12:10:55 +08:00
Harttle
fd5ef474c3
fix: support timezoneOffset for date from scope, #401
2021-10-06 15:45:41 +08:00
harttle
8273c17dab
perf: parse filenames in parse() insteadof render()
2021-09-30 22:15:09 +08:00
Harttle and harttle
6b9f872bcc
feat: timezoneOffset option to specify output timezone, see #375
2021-09-27 01:54:31 +08:00
Jun Yang
3e3d84a5ed
fix: operator boundary not correctly recognized, fixes #342
2021-05-04 18:13:02 +08:00
Laurin Quast and Jun Yang
1fd76acf28
fix: make LiquidError context property public
2021-05-01 20:00:02 +08:00