Commit Graph
464 Commits
Author SHA1 Message Date
3cd024d652 fix: path traversal vulnerability, #851 (#855)
* Fix Path Traversal fallback

* Update loader.ts

Fixed nested

* Update loader.ts

padding fix

* refactor: reuse root enforcing

* docs: update test case and docs

---------

Co-authored-by: MorielHarush <[email protected]>
2026-03-08 02:36:09 +08:00
Loo Rong JieandGitHub 955b7971c0 Support having new line and other whitespace after include filename (#834) 2025-11-11 13:58:12 +08:00
Omri RosnerandGitHub 86fc135d9e feat(filters): Add base64_encode and base64_decode filters for Shopify compatibility (#828)
* feat(filters): add base64 encode and decode

* fix: use Object.defineProperty for cross-platform btoa/atob mocking

* docs(filters): update docs

* docs(filters): update version
2025-10-27 22:40:31 +08:00
Yang JunandGitHub e55128850e feat: allow context access in liquidMethodMissing, #808 (#820) 2025-10-06 18:34:08 +08:00
Yang JunandGitHub e8e502c585 fix: math filters coerce invalid string to 0, #813 (#819) 2025-10-06 18:31:43 +08:00
Yang JunandGitHub 025c40f0f2 fix: block.super with strictVariables, #806 (#807) 2025-05-15 01:47:57 +08:00
Bruno CarvalhoandGitHub 0deb93eeae feat: add find_index, has, and reject filters (#799)
* feat: add find_index, has, and reject filters

* Minor tweaks

* Change semantics of jekyllStyle, add more tests

* Some docs improvements
2025-02-23 22:57:17 +08:00
HarttleandYang Jun 38a0f510b0 fix: empty tagToken.args since 10.20.0, fixes #796 2025-02-09 22:49:40 +08:00
HarttleandJun Yang a490a70da1 fix: consistent range syntax parsing, #791 2025-01-19 17:58:00 +08:00
HarttleandJun Yang a5070af3e4 fix: context for group_by_exp/where_exp/find_exp, #790 2025-01-19 17:53:25 +08:00
Jun YangandGitHub 25ef104446 fix: enumerate plain objects in where/where_exp, #785 (#788) 2025-01-04 23:41:25 +08:00
HarttleandJun Yang 59cf3c08db fix: preserveTimezones support for RFC2822 date, #784 2025-01-04 22:46:07 +08:00
HarttleandJun Yang 5f1a4cfdc9 fix: break/continue stops whole template, #783 2025-01-04 22:15:39 +08:00
JamesandGitHub 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
HarttleandJun Yang 35a84421a6 feat: size, first, last support arraylike objects, #781 2024-12-28 16:10:06 +08:00
HarttleandJun Yang e3ef574674 fix: inconsistent continue behaviour, fixes #779 2024-12-22 16:32:08 +08:00
Harttle 2af297f81a fix: memoryLimit doesn't work in for tag, #776 2024-12-22 15:46:56 +08:00
HarttleandJun Yang 9107eb1b93 feat: support Jekyll style where, #768 2024-11-17 21:33:38 +08:00
Yang Jun 0b195b21eb test: case for "." path handling 2024-11-12 23:59:40 +08:00
Yang Jun d705888c8d feat: expose FilterToken to filter this, #762 2024-10-16 22:07:25 +08:00
Yang Jun 86f6bf0d31 fix: expose originalError from LiquidError, #742 2024-08-29 11:37:56 +08:00
Yang Jun 62bb20e433 test: refactor test:demo script into demo/*/test.sh 2024-08-29 01:30:25 +08:00
Yang Jun 3eb307ad86 test: CI test for demos 2024-08-28 00:31:59 +08:00
Yang Jun ce84cd6f43 fix: ESM bundle for Node.js, #739 2024-08-28 00:31:59 +08:00
Yang Jun 68387c31ea fix: "filter is not a function" for uniq 2024-08-23 21:27:53 +08:00
Yang Jun 2d59cff0a6 fix: memory limit issue for join filter, fix #737 2024-08-23 21:27:53 +08:00
Jun YangandGitHub e941378535 docs: add internal types in apidoc (#734)
* docs: add internal types in apidoc

* chore: downgrade package-lock version for NodeJS 14

* test: test case when performance uses Date.now
2024-08-17 00:55:24 +08:00
Jun YangandGitHub c6a6ef1a1f chore: check node@14 on pipeline, #728 (#731) 2024-08-16 00:55:14 +08:00
Yang Jun 21a822348f fix: parser throws on non-string input, #726 2024-07-25 20:06:12 +08:00
Jun YangandGitHub 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 df27ac6947 feat: support in-memory template mapping, inspired by @jg-rp #714 2024-07-08 02:25:25 +08:00
Harttle 22b5a12333 fix: report error for malformed else/elsif/endif/endfor, #713 2024-07-05 01:23:33 +08:00
Jun YangandGitHub 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
Adam TannerandGitHub a7da93ff0f fix: use drop valueOf when evaluated as condition (#705) 2024-06-05 08:28:21 +08:00
55e144a029 fix: isComparable full interface check (#701)
* Improve isComparable function to ensure full Comparable interface implementation

* Deleted trailing commas

---------

Co-authored-by: Guillermo Casal Caro <[email protected]>
2024-05-24 10:35:49 +08:00
0983f2c420 fix: allow liquidMethodMissing to return any supported value type (#698)
* fix: allow liquidMethodMissing to return any supported value type

* Update src/drop/drop.ts

Co-authored-by: Jun Yang <[email protected]>

---------

Co-authored-by: Jun Yang <[email protected]>
2024-05-22 12:35:46 +08:00
Yang Jun 47ddc1193b feat: slugify filter from Jekyll, #443 2024-05-13 23:54:07 +08:00
Yang Jun 50253a98ca feat: array_to_sentence_string and number_of_words filters from Jekyll, #443 2024-05-13 00:38:52 +08:00
Yang Jun b12eb8ab4b feat: escape filters from Jekyll, #443 2024-05-12 15:05:36 +08:00
Yang Jun 4955e75be7 feat: date filters from Jekyll 2024-05-09 23:37:27 +08:00
Yang Jun 842b45c96a feat: jsonify, inspect, to_integer, normalize_whitespace filters 2024-05-06 21:10:27 +08:00
Yang JunandJun Yang 2b630353c4 fix: case/when array equality, #673 2024-04-28 23:17:01 +08:00
Yang JunandJun Yang 8c7cef9f95 feat: introduce where_exp filter from Jekyll 2024-04-28 23:17:01 +08:00
Max MedveandGitHub 490ff4309c fix: Allow lenientIf for multiple operands (issue #682) (#683)
* allow `lenientIf` for multiple operands

* update tests
2024-04-21 16:04:38 +08:00
Yang JunandJun Yang e09657c52b fix: allow %Z for TimezoneDate, update docs accordingly #684 2024-04-21 15:57:43 +08:00
Jun Yang 2b713b721d feat: group_by/group_by_exp/find/find_exp from Jekyll, #443 2024-04-14 19:34:07 +08:00
Jun Yang 258780e9a8 feat: pop/shift/unshift filters from Jekyll 2024-04-14 19:34:07 +08:00
Jun YangandGitHub 05223c4378 fix: contains regression (#677)
* fix: `contains` regression on string-like objects, #675

* chore: fix build docs on macos
2024-03-21 23:56:10 +08:00