Initial commit

This commit is contained in:
2024-11-03 17:41:45 +01:00
commit c1640c1754
8043 changed files with 775536 additions and 0 deletions

21
node_modules/liquidjs/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 Jun Yang
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

222
node_modules/liquidjs/README.md generated vendored Normal file
View File

@@ -0,0 +1,222 @@
# liquidjs
[![npm version](https://img.shields.io/npm/v/liquidjs.svg?logo=npm&style=flat-square)](https://www.npmjs.org/package/liquidjs)
[![npm downloads](https://img.shields.io/npm/dm/liquidjs.svg?style=flat-square)](https://www.npmjs.org/package/liquidjs)
[![Coverage](https://img.shields.io/coveralls/harttle/liquidjs.svg?style=flat-square)](https://coveralls.io/github/harttle/liquidjs?branch=master)
[![Build Status](https://img.shields.io/github/actions/workflow/status/harttle/liquidjs/ci-build.yml?branch=master&style=flat-square)](https://github.com/harttle/liquidjs/actions/workflows/ci-build.yml?query=branch%3Amaster)
[![DUB license](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](https://github.com/harttle/liquidjs/blob/master/LICENSE)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/harttle/liquidjs)
A simple, expressive and safe [Shopify][shopify/liquid] / GitHub Pages compatible template engine in pure JavaScript.
**The purpose of this repo** is to provide a standard Liquid implementation for the JavaScript community so that [Jekyll sites](https://jekyllrb.com), [GitHub Pages](https://pages.github.com/) and [Shopify templates](https://themes.shopify.com/) can be ported to Node.js without pain.
* [Documentation][doc]
* Please star [LiquidJS on GitHub][github]!
* Financial support via [GitHub Sponsors](https://github.com/sponsors/harttle).
<p align="center"><a href="https://liquidjs.com"><img height="155px" width="155px" src="https://liquidjs.com/icon/mstile-310x310.png" alt="logo"></a></p>
## What's it like?
Basically there're two types of Liquid syntax: tags enclosed by `{% %}` and outputs enclosed by `{{ }}`. A Liquid template looks like:
```liquid
{% if username %}
{{ username | append: ", welcome to LiquidJS!" | capitalize }}
{% endif %}
```
[A live demo](https://liquidjs.com/playground.html) is also available and here's a [quick tutorial](https://liquidjs.com/tutorials/intro-to-liquid.html) for Liquid syntax.
## Installation
Install from npm in Node.js:
```bash
npm install liquidjs
```
Or use the UMD bundle from jsDelivr:
```html
<script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>
```
Or render directly from CLI using npx:
```bash
npx liquidjs --template 'Hello, {{ name }}!' --context '{"name": "Snake"}'
```
For more details, refer to the [Setup Guide][setup].
## Who's Using LiquidJS?
- [Eleventy](https://www.11ty.dev/): Eleventy, a simpler static site generator.
- [Opensense](https://www.opensense.com/): The smarter way to send email.
- [Directus](https://docs.directus.io/): an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.
- [Semgrep](https://github.com/returntocorp/semgrep): Lightweight static analysis for many languages.
- [Rock](https://www.rockrms.com/): An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
- [Mitosis](https://github.com/BuilderIO/mitosis): Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
- [Pattern Lab](https://patternlab.io/): a frontend workshop environment that helps you build, view, test, and showcase your design system's UI components.
- [Builder.io](https://www.builder.io/m/developers): the first and only headless CMS with a visual editor that lets you drag and drop with your components, directly within your current site or app. Completely API-driven, for cleaner code and simpler workflows.
- [Microsoft Power Pages](https://learn.microsoft.com/en-us/power-pages/introduction): a secure, enterprise-grade, low-code software as a service (SaaS) platform for creating, hosting, and administering modern external-facing business websites.
- [Azure API Management developer portal](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal): an automatically generated, fully customizable website with the documentation of your APIs.
- [WISMOlabs](https://wismolabs.com/): Post Purchase Experience platform for eCommerce retailers enhancing customer satisfaction by using LiquidJS to provide customizable post-purchase experiences through programmable email, SMS, order tracking pages, and webhooks.
Feel free to create a PR or contact me to add your use case into this list!
## Financial Support
If you personally love LiquidJS or it's benefiting your business, please consider financially support us via [GitHub Sponsors](https://github.com/sponsors/harttle). Special thanks to our sponsors!
<!-- FINANCIAL-CONTRIBUTORS-BEGIN -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.opensense.com/"><img src="https://images.opencollective.com/opensense-inc/bf840ae/logo/256.png?height=100" width="100px;" alt="Opensense Inc."/><br /><sub><b>Opensense</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.11ty.dev/"><img src="https://avatars.githubusercontent.com/u/35147177?v=4?s=100" width="100px;" alt="Eleventy"/><br /><sub><b>Eleventy</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=100" width="100px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/touchless"><img src="https://images.opencollective.com/touchless/273bc74/logo/256.png?height=100" width="100px;" alt="Touchless"/><br /><sub><b>Touchless</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.dropkiq.com/"><img src="https://images.opencollective.com/1bertlol/43a8ea8/logo/256.png?height=100" width="100px;" alt="Adam Darrah"/><br /><sub><b>Dropkiq</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://dailycontributors.com/"><img src="https://images.opencollective.com/dailycontributors/3c2e057/logo/256.png?height=100&width=100" width="100px;" alt="Dailycontributors"/><br /><sub><b>Dailycontributors</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/coni2k"><img src="https://avatars0.githubusercontent.com/u/1284601?v=4?s=100" width="100px;" alt="coni2k"/><br /><sub><b>Serkan Holat</b></sub></a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amit777"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4?s=100" width="100px;" alt="amit777"/><br /><sub><b>amit777</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/khaled-salem"><img src="https://images.opencollective.com/khaled-salem/avatar/256.png?height=256" width="100px;" alt="Khaled Salem"/><br /><sub><b>Khaled Salem</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://sentry.io/"><img src="https://avatars.githubusercontent.com/u/1396951?v=4?s=100" width="100px;" alt="Sentry"/><br /><sub><b>Sentry</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.checkoutblocks.com/"><img src="https://avatars.githubusercontent.com/u/114603307?v=4?s=100" width="100px;" alt="Checkout Blocks"/><br /><sub><b>Checkout Blocks</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://customer.io/"><img src="https://avatars.githubusercontent.com/u/1152079?v=4?s=100" width="100px;" alt="Customer IO"/><br /><sub><b>Customer IO</b></sub></a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/15fathoms"><img src="https://avatars.githubusercontent.com/u/79156039?v=4?s=100" width="100px;" alt="Emmanuel Cartelli"/><br /><sub><b>Emmanuel Cartelli</b></sub></a><br /></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/microsoft"><img src="https://avatars.githubusercontent.com/u/6154722?v=4?s=100" width="100px;" alt="Microsoft"/><br /><sub><b>Microsoft</b></sub></a><br /></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.pakstyle.pk/"><img src="https://images.opencollective.com/pakstyle/2b81605/logo/256.png?height=100" width="100px;" alt="PakStyle.pk"/><br /><sub><b>PakStyle.pk</b></sub></a></td>
</tr>
</tbody>
</table>
<!-- FINANCIAL-CONTRIBUTORS-END -->
## Contributors ✨
Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to these wonderful people:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://harttle.land"><img src="https://avatars3.githubusercontent.com/u/4427974?v=4?s=100" width="100px;" alt="Jun Yang"/><br /><sub><b>Jun Yang</b></sub></a><br /><a href="#maintenance-harttle" title="Maintenance">🚧</a> <a href="https://github.com/harttle/liquidjs/commits?author=harttle" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chenos"><img src="https://avatars0.githubusercontent.com/u/2993310?v=4?s=100" width="100px;" alt="chenos"/><br /><sub><b>chenos</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=chenos" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://zachleat.com/"><img src="https://avatars2.githubusercontent.com/u/39355?v=4?s=100" width="100px;" alt="Zach Leatherman"/><br /><sub><b>Zach Leatherman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/issues?q=author%3Azachleat" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/thardy"><img src="https://avatars3.githubusercontent.com/u/120636?v=4?s=100" width="100px;" alt="Tim Hardy"/><br /><sub><b>Tim Hardy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thardy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://paulrobertlloyd.com/"><img src="https://avatars3.githubusercontent.com/u/813383?v=4?s=100" width="100px;" alt="Paul Robert Lloyd"/><br /><sub><b>Paul Robert Lloyd</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=paulrobertlloyd" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Apaulrobertlloyd" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/alecdotbiz"><img src="https://avatars2.githubusercontent.com/u/1925840?v=4?s=100" width="100px;" alt="Alec Larson"/><br /><sub><b>Alec Larson</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aleclarson" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pmalouin"><img src="https://avatars1.githubusercontent.com/u/1411117?v=4?s=100" width="100px;" alt="Patrick Malouin"/><br /><sub><b>Patrick Malouin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=pmalouin" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://jaswrks.com"><img src="https://avatars3.githubusercontent.com/u/1563559?v=4?s=100" width="100px;" alt="jaswrks"/><br /><sub><b>jaswrks</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jaswrks" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://oott123.com"><img src="https://avatars2.githubusercontent.com/u/905663?v=4?s=100" width="100px;" alt="三三"/><br /><sub><b>三三</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=oott123" title="Code">💻</a> <a href="#ideas-oott123" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ssendev"><img src="https://avatars0.githubusercontent.com/u/450793?v=4?s=100" width="100px;" alt="ssendev"/><br /><sub><b>ssendev</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=ssendev" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wojtask9"><img src="https://avatars3.githubusercontent.com/u/6099236?v=4?s=100" width="100px;" alt="wojtask9"/><br /><sub><b>wojtask9</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wojtask9" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/thelornenelson"><img src="https://avatars3.githubusercontent.com/u/24596583?v=4?s=100" width="100px;" alt="Andrew Barclay"/><br /><sub><b>Andrew Barclay</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thelornenelson" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.stam.pr/"><img src="https://avatars2.githubusercontent.com/u/142338?v=4?s=100" width="100px;" alt="Cory Mawhorter"/><br /><sub><b>Cory Mawhorter</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cmawhorter" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/thehappybug"><img src="https://avatars0.githubusercontent.com/u/3393530?v=4?s=100" width="100px;" alt="Mehdi Jaffery"/><br /><sub><b>Mehdi Jaffery</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=thehappybug" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/robinbijlani"><img src="https://avatars0.githubusercontent.com/u/2503108?v=4?s=100" width="100px;" alt="Robin Bijlani"/><br /><sub><b>Robin Bijlani</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=robinbijlani" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/issues?q=author%3Arobinbijlani" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.rmkennedy.com"><img src="https://avatars3.githubusercontent.com/u/8356669?v=4?s=100" width="100px;" alt="Ryan Kennedy"/><br /><sub><b>Ryan Kennedy</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ryaninvents" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/strax"><img src="https://avatars2.githubusercontent.com/u/587213?v=4?s=100" width="100px;" alt="Sami Kukkonen"/><br /><sub><b>Sami Kukkonen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=strax" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ScottFreeCode.github.io/"><img src="https://avatars3.githubusercontent.com/u/16506071?v=4?s=100" width="100px;" alt="Scott Santucci"/><br /><sub><b>Scott Santucci</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ScottFreeCode" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://stevenrescigno.com"><img src="https://avatars3.githubusercontent.com/u/8505293?v=4?s=100" width="100px;" alt="Steven "/><br /><sub><b>Steven </b></sub></a><br /><a href="#example-stevenanthonyrevo" title="Examples">💡</a> <a href="https://github.com/harttle/liquidjs/commits?author=stevenanthonyrevo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://efcl.info/"><img src="https://avatars1.githubusercontent.com/u/19714?v=4?s=100" width="100px;" alt="azu"/><br /><sub><b>azu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=azu" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wyozi"><img src="https://avatars3.githubusercontent.com/u/4894573?v=4?s=100" width="100px;" alt="Joonas"/><br /><sub><b>Joonas</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=wyozi" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jamelait"><img src="https://avatars1.githubusercontent.com/u/14369255?v=4?s=100" width="100px;" alt="Jamel A."/><br /><sub><b>Jamel A.</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jamelait" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://brandonpittman.net"><img src="https://avatars0.githubusercontent.com/u/967145?v=4?s=100" width="100px;" alt="Brandon Pittman"/><br /><sub><b>Brandon Pittman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=brandonpittman" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tgrandgent"><img src="https://avatars3.githubusercontent.com/u/17069042?v=4?s=100" width="100px;" alt="tgrandgent"/><br /><sub><b>tgrandgent</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tgrandgent" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mastodon0"><img src="https://avatars1.githubusercontent.com/u/7924332?v=4?s=100" width="100px;" alt="Martin Schuster"/><br /><sub><b>Martin Schuster</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mastodon0" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://js.chenlei.me"><img src="https://avatars0.githubusercontent.com/u/6339390?v=4?s=100" width="100px;" alt="Ray"/><br /><sub><b>Ray</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Tests">⚠️</a> <a href="https://github.com/harttle/liquidjs/commits?author=richardo2016" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CriGoT"><img src="https://avatars0.githubusercontent.com/u/1936786?v=4?s=100" width="100px;" alt="Cristofer Gonzales"/><br /><sub><b>Cristofer Gonzales</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=CriGoT" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.raymondcamden.com"><img src="https://avatars3.githubusercontent.com/u/393660?v=4?s=100" width="100px;" alt="Raymond Camden"/><br /><sub><b>Raymond Camden</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cfjedimaster" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://stedman.dev"><img src="https://avatars1.githubusercontent.com/u/183122?v=4?s=100" width="100px;" alt="Steve Stedman"/><br /><sub><b>Steve Stedman</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=stedman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ciccarello.me"><img src="https://avatars0.githubusercontent.com/u/11273838?v=4?s=100" width="100px;" alt="Anthony Ciccarello"/><br /><sub><b>Anthony Ciccarello</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=aciccarello" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/IAmTrySound"><img src="https://avatars0.githubusercontent.com/u/5635476?v=4?s=100" width="100px;" alt="Bogdan Chadkin"/><br /><sub><b>Bogdan Chadkin</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=TrySound" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://hightouch.io"><img src="https://avatars0.githubusercontent.com/u/5959235?v=4?s=100" width="100px;" alt="Tejas Manohar"/><br /><sub><b>Tejas Manohar</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tejasmanohar" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=100" width="100px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=pdehaan" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amit777"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4?s=100" width="100px;" alt="amit777"/><br /><sub><b>amit777</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=amit777" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.ifi.uzh.ch/en/ce/people/schuldenzucker.html"><img src="https://avatars3.githubusercontent.com/u/1100776?v=4?s=100" width="100px;" alt="Steffen Schuldenzucker"/><br /><sub><b>Steffen Schuldenzucker</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=sschuldenzucker" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pixcell"><img src="https://avatars0.githubusercontent.com/u/4005291?v=4?s=100" width="100px;" alt="Pixcell"/><br /><sub><b>Pixcell</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=Pixcell" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://jasonet.co"><img src="https://avatars.githubusercontent.com/u/10660468?v=4?s=100" width="100px;" alt="Jason Etcovitch"/><br /><sub><b>Jason Etcovitch</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JasonEtco" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kayuapi"><img src="https://avatars.githubusercontent.com/u/10304328?v=4?s=100" width="100px;" alt="ZC"/><br /><sub><b>ZC</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=kayuapi" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://memmie.lenglet.name"><img src="https://avatars.githubusercontent.com/u/729275?v=4?s=100" width="100px;" alt="Memmie Lenglet"/><br /><sub><b>Memmie Lenglet</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mems" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ilhamdev0"><img src="https://avatars.githubusercontent.com/u/57636145?v=4?s=100" width="100px;" alt="ilhamdev0"/><br /><sub><b>ilhamdev0</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ilhamdev0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/c412216887"><img src="https://avatars.githubusercontent.com/u/29691650?v=4?s=100" width="100px;" alt="一饮一啄皆是人生"/><br /><sub><b>一饮一啄皆是人生</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=c412216887" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://digitalinspiration.com/"><img src="https://avatars.githubusercontent.com/u/1344071?v=4?s=100" width="100px;" alt="Amit Agarwal"/><br /><sub><b>Amit Agarwal</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=labnol" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://n1ru4l.cloud/"><img src="https://avatars.githubusercontent.com/u/14338007?v=4?s=100" width="100px;" alt="Laurin Quast"/><br /><sub><b>Laurin Quast</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=n1ru4l" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mattvague"><img src="https://avatars.githubusercontent.com/u/64985?v=4?s=100" width="100px;" alt="Matt Vague"/><br /><sub><b>Matt Vague</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mattvague" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bglw"><img src="https://avatars.githubusercontent.com/u/40188355?v=4?s=100" width="100px;" alt="Liam Bigelow"/><br /><sub><b>Liam Bigelow</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bglw" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://about.me/jasonkurian"><img src="https://avatars.githubusercontent.com/u/2642545?v=4?s=100" width="100px;" alt="Jason Kurian"/><br /><sub><b>Jason Kurian</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=JaKXz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dphm"><img src="https://avatars.githubusercontent.com/u/1707217?v=4?s=100" width="100px;" alt="d pham (they/them)"/><br /><sub><b>d pham (they/them)</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=dphm" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.aleksandrhovhannisyan.com/"><img src="https://avatars.githubusercontent.com/u/19352442?v=4?s=100" width="100px;" alt="Aleksandr Hovhannisyan"/><br /><sub><b>Aleksandr Hovhannisyan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=AleksandrHovhannisyan" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jg-rp"><img src="https://avatars.githubusercontent.com/u/72664870?v=4?s=100" width="100px;" alt="jg-rp"/><br /><sub><b>jg-rp</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jg-rp" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ameyaapte1"><img src="https://avatars.githubusercontent.com/u/16054747?v=4?s=100" width="100px;" alt="Ameya Apte"/><br /><sub><b>Ameya Apte</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ameyaapte1" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tbdrz"><img src="https://avatars.githubusercontent.com/u/50599116?v=4?s=100" width="100px;" alt="tbdrz"/><br /><sub><b>tbdrz</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=tbdrz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://santialbo.com"><img src="https://avatars.githubusercontent.com/u/1557563?v=4?s=100" width="100px;" alt="Santi Albo"/><br /><sub><b>Santi Albo</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=santialbo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/YahangWu"><img src="https://avatars.githubusercontent.com/u/12295975?v=4?s=100" width="100px;" alt="Yahang Wu"/><br /><sub><b>Yahang Wu</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=YahangWu" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hongl-1"><img src="https://avatars.githubusercontent.com/u/101576612?v=4?s=100" width="100px;" alt="hongl"/><br /><sub><b>hongl</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=hongl-1" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zxx-457"><img src="https://avatars.githubusercontent.com/u/114141362?v=4?s=100" width="100px;" alt="zxx-457"/><br /><sub><b>zxx-457</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=zxx-457" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/prassie"><img src="https://avatars.githubusercontent.com/u/1357831?v=4?s=100" width="100px;" alt="prassie"/><br /><sub><b>prassie</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=prassie" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://slavv.com/"><img src="https://avatars.githubusercontent.com/u/713329?v=4?s=100" width="100px;" alt="Slav Ivanov"/><br /><sub><b>Slav Ivanov</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=slavivanov" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.orgflow.io/"><img src="https://avatars.githubusercontent.com/u/3889090?v=4?s=100" width="100px;" alt="Daniel Rosenberg"/><br /><sub><b>Daniel Rosenberg</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=DaRosenberg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bobgubko"><img src="https://avatars.githubusercontent.com/u/733312?v=4?s=100" width="100px;" alt="bobgubko"/><br /><sub><b>bobgubko</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bobgubko" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bangank36"><img src="https://avatars.githubusercontent.com/u/10071857?v=4?s=100" width="100px;" alt="BaNgan"/><br /><sub><b>BaNgan</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=bangank36" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mahyar-pasarzangene"><img src="https://avatars.githubusercontent.com/u/16485039?v=4?s=100" width="100px;" alt="Mahyar Pasarzangene"/><br /><sub><b>Mahyar Pasarzangene</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=mahyar-pasarzangene" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://hubelbauer.net/"><img src="https://avatars.githubusercontent.com/u/6831144?v=4?s=100" width="100px;" alt="Tomáš Hübelbauer"/><br /><sub><b>Tomáš Hübelbauer</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=TomasHubelbauer" title="Code">💻</a> <a href="https://github.com/harttle/liquidjs/commits?author=TomasHubelbauer" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://sixtwothree.org"><img src="https://avatars.githubusercontent.com/u/73866?v=4?s=100" width="100px;" alt="Jason Garber"/><br /><sub><b>Jason Garber</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jgarber623" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://nickreilingh.com/"><img src="https://avatars.githubusercontent.com/u/2458645?v=4?s=100" width="100px;" alt="Nick Reilingh"/><br /><sub><b>Nick Reilingh</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=NReilingh" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://ebobby.org"><img src="https://avatars.githubusercontent.com/u/170356?v=4?s=100" width="100px;" alt="Francisco Soto"/><br /><sub><b>Francisco Soto</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=ebobby" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.davidlj95.com"><img src="https://avatars.githubusercontent.com/u/8050648?v=4?s=100" width="100px;" alt="David LJ"/><br /><sub><b>David LJ</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=davidlj95" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RasmusWL"><img src="https://avatars.githubusercontent.com/u/1054041?v=4?s=100" width="100px;" alt="Rasmus Wriedt Larsen"/><br /><sub><b>Rasmus Wriedt Larsen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=RasmusWL" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/brunodccarvalho"><img src="https://avatars.githubusercontent.com/u/24962950?v=4?s=100" width="100px;" alt="Bruno Carvalho"/><br /><sub><b>Bruno Carvalho</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=brunodccarvalho" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fupengl"><img src="https://avatars.githubusercontent.com/u/20211964?v=4?s=100" width="100px;" alt="傅鹏"/><br /><sub><b>傅鹏</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=fupengl" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joel-hamilton"><img src="https://avatars.githubusercontent.com/u/12899024?v=4?s=100" width="100px;" alt="Joel Hamilton"/><br /><sub><b>Joel Hamilton</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=joel-hamilton" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/amedve"><img src="https://avatars.githubusercontent.com/u/23156422?v=4?s=100" width="100px;" alt="Max Medve"/><br /><sub><b>Max Medve</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=amedve" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://maizzle.com"><img src="https://avatars.githubusercontent.com/u/1656595?v=4?s=100" width="100px;" alt="Cosmin Popovici"/><br /><sub><b>Cosmin Popovici</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=cossssmin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/admtnnr"><img src="https://avatars.githubusercontent.com/u/27502?v=4?s=100" width="100px;" alt="Adam Tanner"/><br /><sub><b>Adam Tanner</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=admtnnr" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GuillermoCasalCaro"><img src="https://avatars.githubusercontent.com/u/18685581?v=4?s=100" width="100px;" alt="Guillermo Casal Caro"/><br /><sub><b>Guillermo Casal Caro</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=GuillermoCasalCaro" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsoref"><img src="https://avatars.githubusercontent.com/u/2119212?v=4?s=100" width="100px;" alt="Josh Soref"/><br /><sub><b>Josh Soref</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jsoref" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://vrugtehagel.nl"><img src="https://avatars.githubusercontent.com/u/41021050?v=4?s=100" width="100px;" alt="Koen"/><br /><sub><b>Koen</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=vrugtehagel" title="Code">💻</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
[shopify/liquid]: https://shopify.github.io/liquid/
[plugins]: https://liquidjs.com/tutorials/plugins.html#Plugin-List
[setup]: https://liquidjs.com/tutorials/setup.html
[doc]: https://liquidjs.com
[github]: https://github.com/harttle/liquidjs
[oc]: https://opencollective.com/liquidjs/
[contribution]: https://liquidjs.com/tutorials/contribution-guidelines.html

139
node_modules/liquidjs/bin/liquid.js generated vendored Executable file
View File

@@ -0,0 +1,139 @@
#!/usr/bin/env node
const fs = require('fs/promises')
const Liquid = require('..').Liquid
// Preserve compatibility by falling back to legacy CLI behavior if:
// - stdin is redirected (i.e. not connected to a terminal) AND
// - there are either no arguments, or only a single argument which does not start with a dash
// TODO: Remove this fallback for 11.0
let renderPromise = null
if (!process.stdin.isTTY && (process.argv.length === 2 || (process.argv.length === 3 && !process.argv[2].startsWith('-')))) {
renderPromise = renderLegacy()
} else {
renderPromise = render()
}
renderPromise.catch(err => {
process.stderr.write(`${err.message}\n`)
process.exitCode = 1
})
async function render () {
const { program } = require('commander')
program
.name('liquidjs')
.description('Render a Liquid template')
.requiredOption('-t, --template <liquid | @path>', 'liquid template to render (@- to read from stdin)') // TODO: Change to argument in 11.0
.option('-c, --context <json | @path>', 'input context in JSON format (@- to read from stdin)')
.option('-o, --output <path>', 'write rendered output to file (omit to write to stdout)')
.option('--cache [size]', 'cache previously parsed template structures (default cache size: 1024)')
.option('--extname <string>', 'use a default filename extension when resolving partials and layouts')
.option('--jekyll-include', 'use jekyll-style include (pass parameters to include variable of current scope)')
.option('--js-truthy', 'use JavaScript-style truthiness')
.option('--layouts <path...>', 'directories from where to resolve layouts (defaults to --root)')
.option('--lenient-if', 'do not throw on undefined variables in conditional expressions (when using --strict-variables)')
.option('--no-dynamic-partials', 'always treat file paths for partials and layouts as a literal value')
.option('--no-greedy', 'disable greedy matching for --trim* options')
.option('--no-relative-reference', 'require absolute file paths for partials and layouts')
.option('--ordered-filter-parameters', 'respect parameter order when using filters')
.option('--output-delimiter-left <string>', 'left delimiter to use for liquid outputs')
.option('--output-delimiter-right <string>', 'right delimiter to use for liquid outputs')
.option('--partials <path...>', 'directories from where to resolve partials (defaults to --root)')
.option('--preserve-timezones', 'preserve input timezone in date filter')
.option('--root <path...>', 'directories from where to resolve partials and layouts (defaults to ".")')
.option('--strict-filters', 'throw on undefined filters instead of skipping them')
.option('--strict-variables', 'throw on undefined variables instead of rendering them as empty string')
.option('--tag-delimiter-left', 'left delimiter to use for liquid tags')
.option('--tag-delimiter-right', 'right delimiter to use for liquid tags')
.option('--timezone-offset <value>', 'JavaScript timezone name or timezoneOffset value to use in date filter (defaults to local timezone)')
.option('--trim-output-left', 'trim whitespace from left of liquid outputs')
.option('--trim-output-right', 'trim whitespace from right of liquid outputs')
.option('--trim-tag-left', 'trim whitespace from left of liquid tags')
.option('--trim-tag-right', 'trim whitespace from right of liquid tags')
.showHelpAfterError('Use -h or --help for additional information.')
.parse()
const options = program.opts()
if (Object.values(options).filter((value) => value === '@-').length > 1) {
throw new Error(`The stdin input specifier '@-' must only be used once.`)
}
const template = await resolveInputOption(options.template)
const context = await resolveContext(options.context)
const liquid = new Liquid(options)
const output = liquid.parseAndRenderSync(template, context)
if (options.output) {
await fs.writeFile(options.output, output)
} else {
process.stdout.write(output)
}
}
async function resolveContext (contextOption) {
let contextJson = '{}'
if (contextOption) {
contextJson = await resolveInputOption(contextOption)
}
const context = JSON.parse(contextJson)
return context
}
async function resolveInputOption (option) {
let content = null
if (option) {
if (option === '@-') {
content = await readStream(process.stdin)
} else if (option.startsWith('@')) {
const filePath = option.slice(1)
const stat = await fs.stat(filePath, { throwIfNoEntry: false })
if (!stat || !stat.isFile) {
throw new Error(`'${filePath}' does not exist or is not a file`)
}
content = await fs.readFile(filePath, 'utf8')
} else {
content = option
}
}
return content
}
async function readStream (stream) {
const chunks = []
for await (const chunk of stream) {
chunks.push(chunk)
}
return Buffer.concat(chunks).toString('utf8')
}
// TODO: Remove for 11.0
async function renderLegacy () {
process.stderr.write('Reading template from stdin. This mode will be removed in next major version, use --template option instead.\n')
const contextArg = process.argv.slice(2)[0]
let context = {}
if (contextArg) {
const contextJson = await resolveInputOptionLegacy(contextArg)
context = JSON.parse(contextJson)
}
const template = await readStream(process.stdin)
const liquid = new Liquid()
const output = liquid.parseAndRenderSync(template, context)
process.stdout.write(output)
}
// TODO: Remove for 11.0
async function resolveInputOptionLegacy (option) {
let content = null
if (option) {
const stat = await fs.stat(option).catch(e => null)
if (stat && stat.isFile) {
content = await fs.readFile(option, 'utf8')
} else {
content = option
}
}
return content
}

View File

@@ -0,0 +1,7 @@
export declare function resolve(root: string, filepath: string, ext: string): string;
export declare function readFile(url: string): Promise<string>;
export declare function readFileSync(url: string): string;
export declare function exists(filepath: string): Promise<boolean>;
export declare function existsSync(filepath: string): boolean;
export declare function dirname(filepath: string): string;
export declare const sep = "/";

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,10 @@
/// <reference types="node" />
import { Emitter } from '../emitters';
export declare class StreamedEmitter implements Emitter {
buffer: string;
stream: NodeJS.ReadableStream;
constructor();
write: (html: any) => void;
error: (err: Error) => void;
end: () => void;
}

View File

@@ -0,0 +1 @@
export {};

7
node_modules/liquidjs/dist/cache/cache.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import type { Template } from '../template/template';
export interface Cache<T> {
write(key: string, value: T): void | Promise<void>;
read(key: string): T | undefined | Promise<T | undefined>;
remove(key: string): void | Promise<void>;
}
export type LiquidCache = Cache<Template[] | Promise<Template[]>>;

2
node_modules/liquidjs/dist/cache/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
export * from './cache';
export * from './lru';

14
node_modules/liquidjs/dist/cache/lru.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import { Cache } from './cache';
export declare class LRU<T> implements Cache<T> {
limit: number;
size: number;
private cache;
private head;
private tail;
constructor(limit: number, size?: number);
write(key: string, value: T): void;
read(key: string): T | undefined;
remove(key: string): void;
clear(): void;
private ensureLimit;
}

1
node_modules/liquidjs/dist/cache/lru.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

4
node_modules/liquidjs/dist/context/block-mode.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export declare enum BlockMode {
OUTPUT = 0,
STORE = 1
}

61
node_modules/liquidjs/dist/context/context.d.ts generated vendored Normal file
View File

@@ -0,0 +1,61 @@
import { NormalizedFullOptions, RenderOptions } from '../liquid-options';
import { Scope } from './scope';
import { Limiter } from '../util';
type PropertyKey = string | number;
export declare class Context {
/**
* insert a Context-level empty scope,
* for tags like `{% capture %}` `{% assign %}` to operate
*/
private scopes;
private registers;
/**
* user passed in scope
* `{% increment %}`, `{% decrement %}` changes this scope,
* whereas `{% capture %}`, `{% assign %}` only hide this scope
*/
environments: Scope;
/**
* global scope used as fallback for missing variables
*/
globals: Scope;
sync: boolean;
/**
* The normalized liquid options object
*/
opts: NormalizedFullOptions;
/**
* Throw when accessing undefined variable?
*/
strictVariables: boolean;
ownPropertyOnly: boolean;
memoryLimit: Limiter;
renderLimit: Limiter;
constructor(env?: object, opts?: NormalizedFullOptions, renderOptions?: RenderOptions, { memoryLimit, renderLimit }?: {
[key: string]: Limiter;
});
getRegister(key: string): any;
setRegister(key: string, value: any): any;
saveRegister(...keys: string[]): [string, any][];
restoreRegister(keyValues: [string, any][]): void;
getAll(): Scope;
/**
* @deprecated use `_get()` or `getSync()` instead
*/
get(paths: PropertyKey[]): unknown;
getSync(paths: PropertyKey[]): unknown;
_get(paths: PropertyKey[]): IterableIterator<unknown>;
/**
* @deprecated use `_get()` instead
*/
getFromScope(scope: unknown, paths: PropertyKey[] | string): IterableIterator<unknown>;
_getFromScope(scope: unknown, paths: PropertyKey[] | string, strictVariables?: boolean): IterableIterator<unknown>;
push(ctx: object): number;
pop(): Scope | undefined;
bottom(): Scope;
spawn(scope?: {}): Context;
private findScope;
}
export declare function readProperty(obj: Scope, key: PropertyKey, ownPropertyOnly: boolean): any;
export declare function readJSProperty(obj: Scope, key: PropertyKey, ownPropertyOnly: boolean): any;
export {};

1
node_modules/liquidjs/dist/context/context.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

3
node_modules/liquidjs/dist/context/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
export * from './context';
export * from './scope';
export * from './block-mode';

6
node_modules/liquidjs/dist/context/scope.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Drop } from '../drop/drop';
interface ScopeObject extends Record<string, any> {
toLiquid?: () => any;
}
export type Scope = ScopeObject | Drop;
export {};

4
node_modules/liquidjs/dist/drop/blank-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import { EmptyDrop } from '../drop';
export declare class BlankDrop extends EmptyDrop {
equals(value: any): boolean;
}

10
node_modules/liquidjs/dist/drop/block-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Drop } from './drop';
export declare class BlockDrop extends Drop {
private superBlockRender;
constructor(superBlockRender?: () => Iterable<any>);
/**
* Provide parent access in child block by
* {{ block.super }}
*/
super(): Iterable<any>;
}

8
node_modules/liquidjs/dist/drop/comparable.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
export interface Comparable {
equals: (rhs: any) => boolean;
gt: (rhs: any) => boolean;
geq: (rhs: any) => boolean;
lt: (rhs: any) => boolean;
leq: (rhs: any) => boolean;
}
export declare function isComparable(arg: any): arg is Comparable;

3
node_modules/liquidjs/dist/drop/drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
export declare abstract class Drop {
liquidMethodMissing(key: string | number): Promise<any> | any;
}

10
node_modules/liquidjs/dist/drop/empty-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Drop } from './drop';
import { Comparable } from './comparable';
export declare class EmptyDrop extends Drop implements Comparable {
equals(value: any): boolean;
gt(): boolean;
geq(): boolean;
lt(): boolean;
leq(): boolean;
valueOf(): string;
}

15
node_modules/liquidjs/dist/drop/forloop-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,15 @@
import { Drop } from './drop';
export declare class ForloopDrop extends Drop {
protected i: number;
name: string;
length: number;
constructor(length: number, collection: string, variable: string);
next(): void;
index0(): number;
index(): number;
first(): boolean;
last(): boolean;
rindex(): number;
rindex0(): number;
valueOf(): string;
}

7
node_modules/liquidjs/dist/drop/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
export * from './drop';
export * from './null-drop';
export * from './empty-drop';
export * from './blank-drop';
export * from './forloop-drop';
export * from './block-drop';
export * from './comparable';

10
node_modules/liquidjs/dist/drop/null-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Drop } from './drop';
import { Comparable } from './comparable';
export declare class NullDrop extends Drop implements Comparable {
equals(value: any): boolean;
gt(): boolean;
geq(): boolean;
lt(): boolean;
leq(): boolean;
valueOf(): null;
}

10
node_modules/liquidjs/dist/drop/tablerowloop-drop.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { ForloopDrop } from './forloop-drop';
export declare class TablerowloopDrop extends ForloopDrop {
private cols;
constructor(length: number, cols: number, collection: string, variable: string);
row(): number;
col0(): number;
col(): number;
col_first(): boolean;
col_last(): boolean;
}

11
node_modules/liquidjs/dist/emitters/emitter.d.ts generated vendored Normal file
View File

@@ -0,0 +1,11 @@
export interface Emitter {
/**
* Write a html value into emitter
* @param html string, Drop or other primitive value
*/
write(html: any): void;
/**
* Buffered string
*/
buffer: string;
}

4
node_modules/liquidjs/dist/emitters/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export * from './emitter';
export * from './simple-emitter';
export * from '../build/streamed-emitter-browser';
export * from './keeping-type-emitter';

View File

@@ -0,0 +1,5 @@
import { Emitter } from './emitter';
export declare class KeepingTypeEmitter implements Emitter {
buffer: any;
write(html: any): void;
}

View File

@@ -0,0 +1,5 @@
import { Emitter } from './emitter';
export declare class SimpleEmitter implements Emitter {
buffer: string;
write(html: any): void;
}

View File

@@ -0,0 +1,9 @@
/// <reference types="node" />
import { Emitter } from './emitter';
export declare class StreamedEmitter implements Emitter {
buffer: string;
stream: NodeJS.ReadWriteStream;
write(html: any): void;
error(err: Error): void;
end(): void;
}

26
node_modules/liquidjs/dist/filters/array.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
import { FilterImpl } from '../template';
import type { Scope } from '../context';
export declare const join: (this: unknown, v: any[], arg: string) => any;
export declare const last: (this: unknown, v: any) => any;
export declare const first: (this: unknown, v: any) => any;
export declare const reverse: (this: unknown, v: any[]) => any;
export declare function sort<T>(this: FilterImpl, arr: T[], property?: string): IterableIterator<unknown>;
export declare function sort_natural<T>(this: FilterImpl, input: T[], property?: string): any[];
export declare const size: (v: string | any[]) => number;
export declare function map(this: FilterImpl, arr: Scope[], property: string): IterableIterator<unknown>;
export declare function sum(this: FilterImpl, arr: Scope[], property?: string): IterableIterator<unknown>;
export declare function compact<T>(this: FilterImpl, arr: T[]): any[];
export declare function concat<T1, T2>(this: FilterImpl, v: T1[], arg?: T2[]): (T1 | T2)[];
export declare function push<T>(this: FilterImpl, v: T[], arg: T): T[];
export declare function unshift<T>(this: FilterImpl, v: T[], arg: T): T[];
export declare function pop<T>(v: T[]): T[];
export declare function shift<T>(this: FilterImpl, v: T[]): T[];
export declare function slice<T>(this: FilterImpl, v: T[] | string, begin: number, length?: number): T[] | string;
export declare function where<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
export declare function where_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
export declare function group_by<T extends object>(this: FilterImpl, arr: T[], property: string): IterableIterator<unknown>;
export declare function group_by_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
export declare function find<T extends object>(this: FilterImpl, arr: T[], property: string, expected: string): IterableIterator<unknown>;
export declare function find_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
export declare function uniq<T>(this: FilterImpl, arr: T[]): T[];
export declare function sample<T>(this: FilterImpl, v: T[] | string, count?: number): T | string | (T | string)[];

6
node_modules/liquidjs/dist/filters/date.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { FilterImpl } from '../template';
export declare function date(this: FilterImpl, v: string | Date, format?: string, timezoneOffset?: number | string): string | Date;
export declare function date_to_xmlschema(this: FilterImpl, v: string | Date): string | Date;
export declare function date_to_rfc822(this: FilterImpl, v: string | Date): string | Date;
export declare function date_to_string(this: FilterImpl, v: string | Date, type?: string, style?: string): string | Date;
export declare function date_to_long_string(this: FilterImpl, v: string | Date, type?: string, style?: string): string | Date;

6
node_modules/liquidjs/dist/filters/html.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { FilterImpl } from '../template';
export declare function escape(this: FilterImpl, str: string): string;
export declare function xml_escape(this: FilterImpl, str: string): string;
export declare function escape_once(this: FilterImpl, str: string): string;
export declare function newline_to_br(this: FilterImpl, v: string): string;
export declare function strip_html(this: FilterImpl, v: string): string;

2
node_modules/liquidjs/dist/filters/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import { FilterImplOptions } from '../template';
export declare const filters: Record<string, FilterImplOptions>;

11
node_modules/liquidjs/dist/filters/math.d.ts generated vendored Normal file
View File

@@ -0,0 +1,11 @@
export declare const abs: (this: unknown, x: number) => any;
export declare const at_least: (this: unknown, ...args: number[]) => any;
export declare const at_most: (this: unknown, ...args: number[]) => any;
export declare const ceil: (this: unknown, x: number) => any;
export declare const divided_by: (this: unknown, dividend: number, divisor: number, integerArithmetic?: any) => any;
export declare const floor: (this: unknown, x: number) => any;
export declare const minus: (this: unknown, v: number, arg: number) => any;
export declare const modulo: (this: unknown, v: number, arg: number) => any;
export declare const times: (this: unknown, v: number, arg: number) => any;
export declare function round(v: number, arg?: number): number;
export declare function plus(v: number, arg: number): number;

18
node_modules/liquidjs/dist/filters/misc.d.ts generated vendored Normal file
View File

@@ -0,0 +1,18 @@
import { identify } from '../util/underscore';
import { FilterImpl } from '../template';
declare function defaultFilter<T1 extends boolean, T2>(this: FilterImpl, value: T1, defaultValue: T2, ...args: Array<[string, any]>): T1 | T2;
declare function json(value: any, space?: number): string;
declare function inspect(value: any, space?: number): string;
declare function to_integer(value: any): number;
declare const _default: {
default: typeof defaultFilter;
raw: {
raw: boolean;
handler: typeof identify;
};
jsonify: typeof json;
to_integer: typeof to_integer;
json: typeof json;
inspect: typeof inspect;
};
export default _default;

27
node_modules/liquidjs/dist/filters/string.d.ts generated vendored Normal file
View File

@@ -0,0 +1,27 @@
/**
* String related filters
*
* * prefer stringify() to String() since `undefined`, `null` should eval ''
*/
import { FilterImpl } from '../template';
export declare function append(this: FilterImpl, v: string, arg: string): string;
export declare function prepend(this: FilterImpl, v: string, arg: string): string;
export declare function lstrip(this: FilterImpl, v: string, chars?: string): string;
export declare function downcase(this: FilterImpl, v: string): string;
export declare function upcase(this: FilterImpl, v: string): string;
export declare function remove(this: FilterImpl, v: string, arg: string): string;
export declare function remove_first(this: FilterImpl, v: string, l: string): string;
export declare function remove_last(this: FilterImpl, v: string, l: string): string;
export declare function rstrip(this: FilterImpl, str: string, chars?: string): string;
export declare function split(this: FilterImpl, v: string, arg: string): string[];
export declare function strip(this: FilterImpl, v: string, chars?: string): string;
export declare function strip_newlines(this: FilterImpl, v: string): string;
export declare function capitalize(this: FilterImpl, str: string): string;
export declare function replace(this: FilterImpl, v: string, pattern: string, replacement: string): string;
export declare function replace_first(this: FilterImpl, v: string, arg1: string, arg2: string): string;
export declare function replace_last(this: FilterImpl, v: string, arg1: string, arg2: string): string;
export declare function truncate(this: FilterImpl, v: string, l?: number, o?: string): string;
export declare function truncatewords(this: FilterImpl, v: string, words?: number, o?: string): string;
export declare function normalize_whitespace(this: FilterImpl, v: string): string;
export declare function number_of_words(this: FilterImpl, input: string, mode?: 'cjk' | 'auto'): number;
export declare function array_to_sentence_string(this: FilterImpl, array: unknown[], connector?: string): unknown;

14
node_modules/liquidjs/dist/filters/url.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
export declare const url_decode: (x: string) => string;
export declare const url_encode: (x: string) => string;
export declare const cgi_escape: (x: string) => string;
export declare const uri_escape: (x: string) => string;
declare const rSlugifyReplacers: {
raw: RegExp;
default: RegExp;
pretty: RegExp;
ascii: RegExp;
latin: RegExp;
none: null;
};
export declare function slugify(str: string, mode?: keyof typeof rSlugifyReplacers, cased?: boolean): string;
export {};

9
node_modules/liquidjs/dist/fs/fs-impl.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export declare function exists(filepath: string): Promise<boolean>;
export declare function readFile(filepath: string): Promise<string>;
export declare function existsSync(filepath: string): boolean;
export declare function readFileSync(filepath: string): string;
export declare function resolve(root: string, file: string, ext: string): string;
export declare function fallback(file: string): string | undefined;
export declare function dirname(filepath: string): string;
export declare function contains(root: string, file: string): boolean;
export { sep } from 'path';

1
node_modules/liquidjs/dist/fs/fs-impl.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

20
node_modules/liquidjs/dist/fs/fs.d.ts generated vendored Normal file
View File

@@ -0,0 +1,20 @@
export interface FS {
/** check if a file exists asynchronously */
exists: (filepath: string) => Promise<boolean>;
/** check if a file exists synchronously */
existsSync: (filepath: string) => boolean;
/** read a file asynchronously */
readFile: (filepath: string) => Promise<string>;
/** read a file synchronously */
readFileSync: (filepath: string) => string;
/** resolve a file against directory, for given `ext` option */
resolve: (dir: string, file: string, ext: string) => string;
/** check if file is contained in `root`, always return `true` by default. Warning: not setting this could expose path traversal vulnerabilities. */
contains?: (root: string, file: string) => boolean;
/** defaults to "/" */
sep?: string;
/** required for relative path resolving */
dirname?: (file: string) => string;
/** fallback file for lookup failure */
fallback?: (file: string) => string | undefined;
}

2
node_modules/liquidjs/dist/fs/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
export * from './loader';
export * from './fs';

24
node_modules/liquidjs/dist/fs/loader.d.ts generated vendored Normal file
View File

@@ -0,0 +1,24 @@
import { FS } from './fs';
export interface LoaderOptions {
fs: FS;
extname: string;
root: string[];
partials: string[];
layouts: string[];
relativeReference: boolean;
}
export declare enum LookupType {
Partials = "partials",
Layouts = "layouts",
Root = "root"
}
export declare class Loader {
shouldLoadRelative: (referencedFile: string) => boolean;
private options;
private contains;
constructor(options: LoaderOptions);
lookup(file: string, type: LookupType, sync?: boolean, currentFile?: string): Generator<unknown, string, string>;
candidates(file: string, dirs: string[], currentFile?: string, enforceRoot?: boolean): Generator<string, void, unknown>;
private dirname;
private lookupError;
}

1
node_modules/liquidjs/dist/fs/loader.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

13
node_modules/liquidjs/dist/fs/map-fs.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
export declare class MapFS {
private mapping;
constructor(mapping: {
[key: string]: string;
});
sep: string;
exists(filepath: string): Promise<boolean>;
existsSync(filepath: string): boolean;
readFile(filepath: string): Promise<string>;
readFileSync(filepath: string): string;
dirname(filepath: string): string;
resolve(dir: string, file: string, ext: string): string;
}

1
node_modules/liquidjs/dist/fs/map-fs.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

1
node_modules/liquidjs/dist/fs/node-require.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare const requireResolve: (partial: string) => string;

15
node_modules/liquidjs/dist/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,15 @@
export declare const version = "[VI]{version}[/VI]";
export * as TypeGuards from './util/type-guards';
export { toValue, createTrie, Trie, toPromise, toValueSync, assert, LiquidError, ParseError, RenderError, UndefinedVariableError, TokenizationError, AssertionError } from './util';
export { Drop } from './drop';
export { Emitter } from './emitters';
export { defaultOperators, Operators, evalToken, evalQuotedToken, Expression, isFalsy, isTruthy } from './render';
export { Context, Scope } from './context';
export { Value, Hash, Template, FilterImplOptions, Tag, Filter, Output } from './template';
export { Token, TopLevelToken, TagToken, ValueToken } from './tokens';
export { TokenKind, Tokenizer, ParseStream } from './parser';
export { filters } from './filters';
export * from './tags';
export { defaultOptions, LiquidOptions } from './liquid-options';
export { FS } from './fs';
export { Liquid } from './liquid';

157
node_modules/liquidjs/dist/liquid-options.d.ts generated vendored Normal file
View File

@@ -0,0 +1,157 @@
import { LiquidCache } from './cache';
import { FS, LookupType } from './fs';
import { Operators } from './render';
type OutputEscape = (value: any) => string;
type OutputEscapeOption = 'escape' | 'json' | OutputEscape;
export interface LiquidOptions {
/** A directory or an array of directories from where to resolve layout and include templates, and the filename passed to `.renderFile()`. If it's an array, the files are looked up in the order they occur in the array. Defaults to `["."]` */
root?: string | string[];
/** A directory or an array of directories from where to resolve included templates. If it's an array, the files are looked up in the order they occur in the array. Defaults to `root` */
partials?: string | string[];
/** A directory or an array of directories from where to resolve layout templates. If it's an array, the files are looked up in the order they occur in the array. Defaults to `root` */
layouts?: string | string[];
/** Allow refer to layouts/partials by relative pathname. To avoid arbitrary filesystem read, paths been referenced also need to be within corresponding root, partials, layouts. Defaults to `true`. */
relativeReference?: boolean;
/** Use jekyll style include, pass parameters to `include` variable of current scope. Defaults to `false`. */
jekyllInclude?: boolean;
/** Add a extname (if filepath doesn't include one) before template file lookup. Eg: setting to `".html"` will allow including file by basename. Defaults to `""`. */
extname?: string;
/** Whether or not to cache resolved templates. Defaults to `false`. */
cache?: boolean | number | LiquidCache;
/** Use JavaScript Truthiness. Defaults to `false`. */
jsTruthy?: boolean;
/** If set, treat the `filepath` parameter in `{%include filepath %}` and `{%layout filepath%}` as a variable, otherwise as a literal value. Defaults to `true`. */
dynamicPartials?: boolean;
/** Whether or not to assert filter existence. If set to `false`, undefined filters will be skipped. Otherwise, undefined filters will cause an exception. Defaults to `false`. */
strictFilters?: boolean;
/** Whether or not to assert variable existence. If set to `false`, undefined variables will be rendered as empty string. Otherwise, undefined variables will cause an exception. Defaults to `false`. */
strictVariables?: boolean;
/** Catch all errors instead of exit upon one. Please note that render errors won't be reached when parse fails. */
catchAllErrors?: boolean;
/** Hide scope variables from prototypes, useful when you're passing a not sanitized object into LiquidJS or need to hide prototypes from templates. */
ownPropertyOnly?: boolean;
/** Modifies the behavior of `strictVariables`. If set, a single undefined variable will *not* cause an exception in the context of the `if`/`elsif`/`unless` tag and the `default` filter. Instead, it will evaluate to `false` and `null`, respectively. Irrelevant if `strictVariables` is not set. Defaults to `false`. **/
lenientIf?: boolean;
/** JavaScript timezone name or timezoneOffset for `date` filter, default to local time. That means if you're in Australia (UTC+10), it'll default to `-600` or `Australia/Lindeman` */
timezoneOffset?: number | string;
/** Default date format to use if the date filter doesn't include a format. Defaults to `%A, %B %-e, %Y at %-l:%M %P %z`. */
dateFormat?: string;
/** Default locale, will be used by date filter. Defaults to system locale. */
locale?: string;
/** Strip blank characters (including ` `, `\t`, and `\r`) from the right of tags (`{% %}`) until `\n` (inclusive). Defaults to `false`. */
trimTagRight?: boolean;
/** Similar to `trimTagRight`, whereas the `\n` is exclusive. Defaults to `false`. See Whitespace Control for details. */
trimTagLeft?: boolean;
/** Strip blank characters (including ` `, `\t`, and `\r`) from the right of values (`{{ }}`) until `\n` (inclusive). Defaults to `false`. */
trimOutputRight?: boolean;
/** Similar to `trimOutputRight`, whereas the `\n` is exclusive. Defaults to `false`. See Whitespace Control for details. */
trimOutputLeft?: boolean;
/** The left delimiter for liquid tags. **/
tagDelimiterLeft?: string;
/** The right delimiter for liquid tags. **/
tagDelimiterRight?: string;
/** The left delimiter for liquid outputs. **/
outputDelimiterLeft?: string;
/** The right delimiter for liquid outputs. **/
outputDelimiterRight?: string;
/** Whether input strings to date filter preserve the given timezone **/
preserveTimezones?: boolean;
/** Whether `trim*Left`/`trim*Right` is greedy. When set to `true`, all consecutive blank characters including `\n` will be trimmed regardless of line breaks. Defaults to `true`. */
greedy?: boolean;
/** `fs` is used to override the default file-system module with a custom implementation. */
fs?: FS;
/** keyValue separator */
keyValueSeparator?: string;
/** Render from in-memory `templates` mapping instead of file system. File system related options like `fs`, 'root', and `relativeReference` will be ignored when `templates` is specified. */
templates?: {
[key: string]: string;
};
/** the global scope passed down to all partial and layout templates, i.e. templates included by `include`, `layout` and `render` tags. */
globals?: object;
/** Whether or not to keep value type when writing the Output, not working for streamed rendering. Defaults to `false`. */
keepOutputType?: boolean;
/** Default escape filter applied to output values, when set, you'll have to add `| raw` for values don't need to be escaped. Defaults to `undefined`. */
outputEscape?: OutputEscapeOption;
/** An object of operators for conditional statements. Defaults to the regular Liquid operators. */
operators?: Operators;
/** Respect parameter order when using filters like "for ... reversed limit", Defaults to `false`. */
orderedFilterParameters?: boolean;
/** For DoS handling, limit total length of templates parsed in one `parse()` call. A typical PC can handle 1e8 (100M) characters without issues. */
parseLimit?: number;
/** For DoS handling, limit total time (in ms) for each `render()` call. */
renderLimit?: number;
/** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue. */
memoryLimit?: number;
}
export interface RenderOptions {
/**
* This call is sync or async? It's used by Liquid internal methods, you'll not need this.
*/
sync?: boolean;
/**
* Same as `globals` on LiquidOptions, but only for current render() call
*/
globals?: object;
/**
* Same as `strictVariables` on LiquidOptions, but only for current render() call
*/
strictVariables?: boolean;
/**
* Same as `ownPropertyOnly` on LiquidOptions, but only for current render() call
*/
ownPropertyOnly?: boolean;
/** For DoS handling, limit total renders of tag/HTML/output in one `render()` call. A typical PC can handle 1e5 renders of typical templates per second. */
templateLimit?: number;
/** For DoS handling, limit total time (in ms) for each `render()` call. */
renderLimit?: number;
/** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue.. */
memoryLimit?: number;
}
export interface RenderFileOptions extends RenderOptions {
lookupType?: LookupType;
}
interface NormalizedOptions extends LiquidOptions {
root?: string[];
partials?: string[];
layouts?: string[];
cache?: LiquidCache;
outputEscape?: OutputEscape;
}
export interface NormalizedFullOptions extends NormalizedOptions {
root: string[];
partials: string[];
layouts: string[];
relativeReference: boolean;
jekyllInclude: boolean;
extname: string;
cache?: LiquidCache;
jsTruthy: boolean;
dynamicPartials: boolean;
fs: FS;
strictFilters: boolean;
strictVariables: boolean;
ownPropertyOnly: boolean;
lenientIf: boolean;
dateFormat: string;
locale: string;
trimTagRight: boolean;
trimTagLeft: boolean;
trimOutputRight: boolean;
trimOutputLeft: boolean;
tagDelimiterLeft: string;
tagDelimiterRight: string;
outputDelimiterLeft: string;
outputDelimiterRight: string;
preserveTimezones: boolean;
greedy: boolean;
globals: object;
keepOutputType: boolean;
operators: Operators;
parseLimit: number;
renderLimit: number;
memoryLimit: number;
}
export declare const defaultOptions: NormalizedFullOptions;
export declare function normalize(options: LiquidOptions): NormalizedFullOptions;
export declare function normalizeDirectoryList(value: any): string[];
export {};

1
node_modules/liquidjs/dist/liquid-options.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

2
node_modules/liquidjs/dist/liquid.browser.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
node_modules/liquidjs/dist/liquid.browser.min.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

4213
node_modules/liquidjs/dist/liquid.browser.mjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

5812
node_modules/liquidjs/dist/liquid.browser.umd.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

1
node_modules/liquidjs/dist/liquid.browser.umd.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

42
node_modules/liquidjs/dist/liquid.d.ts generated vendored Normal file
View File

@@ -0,0 +1,42 @@
/// <reference types="node" />
import { Context } from './context';
import { TagClass, TagImplOptions, FilterImplOptions, Template } from './template';
import { LookupType } from './fs/loader';
import { Render } from './render';
import { Parser } from './parser';
import { LiquidOptions, NormalizedFullOptions, RenderOptions, RenderFileOptions } from './liquid-options';
export declare class Liquid {
readonly options: NormalizedFullOptions;
readonly renderer: Render;
/**
* @deprecated will be removed. In tags use `this.parser` instead
*/
readonly parser: Parser;
readonly filters: Record<string, FilterImplOptions>;
readonly tags: Record<string, TagClass>;
constructor(opts?: LiquidOptions);
parse(html: string, filepath?: string): Template[];
_render(tpl: Template[], scope: Context | object | undefined, renderOptions: RenderOptions): IterableIterator<any>;
render(tpl: Template[], scope?: object, renderOptions?: RenderOptions): Promise<any>;
renderSync(tpl: Template[], scope?: object, renderOptions?: RenderOptions): any;
renderToNodeStream(tpl: Template[], scope?: object, renderOptions?: RenderOptions): NodeJS.ReadableStream;
_parseAndRender(html: string, scope: Context | object | undefined, renderOptions: RenderOptions): IterableIterator<any>;
parseAndRender(html: string, scope?: Context | object, renderOptions?: RenderOptions): Promise<any>;
parseAndRenderSync(html: string, scope?: Context | object, renderOptions?: RenderOptions): any;
_parsePartialFile(file: string, sync?: boolean, currentFile?: string): Generator<unknown, Template[], string | Template[]>;
_parseLayoutFile(file: string, sync?: boolean, currentFile?: string): Generator<unknown, Template[], string | Template[]>;
_parseFile(file: string, sync?: boolean, lookupType?: LookupType, currentFile?: string): Generator<unknown, Template[]>;
parseFile(file: string, lookupType?: LookupType): Promise<Template[]>;
parseFileSync(file: string, lookupType?: LookupType): Template[];
_renderFile(file: string, ctx: Context | object | undefined, renderFileOptions: RenderFileOptions): Generator<any>;
renderFile(file: string, ctx?: Context | object, renderFileOptions?: RenderFileOptions): Promise<any>;
renderFileSync(file: string, ctx?: Context | object, renderFileOptions?: RenderFileOptions): any;
renderFileToNodeStream(file: string, scope?: object, renderOptions?: RenderOptions): Promise<NodeJS.ReadableStream>;
_evalValue(str: string, scope?: object | Context): IterableIterator<any>;
evalValue(str: string, scope?: object | Context): Promise<any>;
evalValueSync(str: string, scope?: object | Context): any;
registerFilter(name: string, filter: FilterImplOptions): void;
registerTag(name: string, tag: TagClass | TagImplOptions): void;
plugin(plugin: (this: Liquid, L: typeof Liquid) => void): void;
express(): (this: any, filePath: string, ctx: object, callback: (err: Error | null, rendered: string) => void) => void;
}

4249
node_modules/liquidjs/dist/liquid.node.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

4226
node_modules/liquidjs/dist/liquid.node.mjs generated vendored Normal file

File diff suppressed because it is too large Load Diff

5
node_modules/liquidjs/dist/parser/filter-arg.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { ValueToken } from '../tokens/value-token';
type KeyValuePair = [string?, ValueToken?];
export type FilterArg = ValueToken | KeyValuePair;
export declare function isKeyValuePair(arr: FilterArg): arr is KeyValuePair;
export {};

4
node_modules/liquidjs/dist/parser/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export * from './tokenizer';
export * from './parser';
export * from './parse-stream';
export * from './token-kind';

15
node_modules/liquidjs/dist/parser/parse-stream.d.ts generated vendored Normal file
View File

@@ -0,0 +1,15 @@
import { Token, TopLevelToken } from '../tokens';
import { Template } from '../template';
type ParseToken<T extends Token> = ((token: T, remainTokens: T[]) => Template);
export declare class ParseStream<T extends Token = TopLevelToken> {
private tokens;
private handlers;
private stopRequested;
private parseToken;
constructor(tokens: T[], parseToken: ParseToken<T>);
on<T2 extends Template | T | undefined>(name: string, cb: (this: ParseStream, arg: T2) => void): ParseStream<T>;
private trigger;
start(): this;
stop(): this;
}
export {};

View File

@@ -0,0 +1 @@
export {};

20
node_modules/liquidjs/dist/parser/parser.d.ts generated vendored Normal file
View File

@@ -0,0 +1,20 @@
import { ParseStream } from './parse-stream';
import { TopLevelToken } from '../tokens';
import { Template, Output, HTML } from '../template';
import { LookupType } from '../fs';
import type { Liquid } from '../liquid';
export declare class Parser {
parseFile: (file: string, sync?: boolean, type?: LookupType, currentFile?: string) => Generator<unknown, Template[], Template[] | string>;
private liquid;
private fs;
private cache?;
private loader;
private parseLimit;
constructor(liquid: Liquid);
parse(html: string, filepath?: string): Template[];
parseTokens(tokens: TopLevelToken[]): Template[];
parseToken(token: TopLevelToken, remainTokens: TopLevelToken[]): import("../template").Tag | Output | HTML;
parseStream(tokens: TopLevelToken[]): ParseStream<TopLevelToken>;
private _parseFileCached;
private _parseFile;
}

1
node_modules/liquidjs/dist/parser/parser.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

16
node_modules/liquidjs/dist/parser/token-kind.d.ts generated vendored Normal file
View File

@@ -0,0 +1,16 @@
export declare enum TokenKind {
Number = 1,
Literal = 2,
Tag = 4,
Output = 8,
HTML = 16,
Filter = 32,
Hash = 64,
PropertyAccess = 128,
Word = 256,
Range = 512,
Quoted = 1024,
Operator = 2048,
FilteredValue = 4096,
Delimited = 12
}

62
node_modules/liquidjs/dist/parser/tokenizer.d.ts generated vendored Normal file
View File

@@ -0,0 +1,62 @@
import { FilteredValueToken, TagToken, HTMLToken, HashToken, QuotedToken, LiquidTagToken, OutputToken, ValueToken, Token, RangeToken, FilterToken, TopLevelToken, OperatorToken, LiteralToken, IdentifierToken, NumberToken } from '../tokens';
import { Trie, TokenizationError } from '../util';
import { Operators, Expression } from '../render';
import { NormalizedFullOptions } from '../liquid-options';
import { FilterArg } from './filter-arg';
export declare class Tokenizer {
input: string;
file?: string | undefined;
p: number;
N: number;
private rawBeginAt;
private opTrie;
private literalTrie;
constructor(input: string, operators?: Operators, file?: string | undefined, range?: [number, number]);
readExpression(): Expression;
readExpressionTokens(): IterableIterator<Token>;
readOperator(): OperatorToken | undefined;
matchTrie<T>(trie: Trie<T>): number;
readFilteredValue(): FilteredValueToken;
readFilters(): FilterToken[];
readFilter(): FilterToken | null;
readFilterArg(): FilterArg | undefined;
readTopLevelTokens(options?: NormalizedFullOptions): TopLevelToken[];
readTopLevelToken(options: NormalizedFullOptions): TopLevelToken;
readHTMLToken(stopStrings: string[]): HTMLToken;
readTagToken(options: NormalizedFullOptions): TagToken;
readToDelimiter(delimiter: string, respectQuoted?: boolean): number;
readOutputToken(options?: NormalizedFullOptions): OutputToken;
readEndrawOrRawContent(options: NormalizedFullOptions): HTMLToken | TagToken;
readLiquidTagTokens(options?: NormalizedFullOptions): LiquidTagToken[];
readLiquidTagToken(options: NormalizedFullOptions): LiquidTagToken | undefined;
error(msg: string, pos?: number): TokenizationError;
assert(pred: unknown, msg: string | (() => string), pos?: number): void;
snapshot(begin?: number): string;
/**
* @deprecated use #readIdentifier instead
*/
readWord(): IdentifierToken;
readIdentifier(): IdentifierToken;
readNonEmptyIdentifier(): IdentifierToken | undefined;
readTagName(): string;
readHashes(jekyllStyle?: boolean | string): HashToken[];
readHash(jekyllStyle?: boolean | string): HashToken | undefined;
remaining(): string;
advance(step?: number): void;
end(): boolean;
readTo(end: string): number;
readValue(): ValueToken | undefined;
readScopeValue(): ValueToken | undefined;
private readProperties;
readNumber(): NumberToken | undefined;
readLiteral(): LiteralToken | undefined;
readRange(): RangeToken | undefined;
readValueOrThrow(): ValueToken;
readQuoted(): QuotedToken | undefined;
readFileNameTemplate(options: NormalizedFullOptions): IterableIterator<TopLevelToken>;
match(word: string): boolean;
rmatch(pattern: string): boolean;
peekType(n?: number): number;
peek(n?: number): string;
skipBlank(): void;
}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
import { Token } from '../tokens';
import { NormalizedFullOptions } from '../liquid-options';
export declare function whiteSpaceCtrl(tokens: Token[], options: NormalizedFullOptions): void;

3
node_modules/liquidjs/dist/render/boolean.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import { Context } from '../context/context';
export declare function isTruthy(val: any, ctx: Context): boolean;
export declare function isFalsy(val: any, ctx: Context): boolean;

1
node_modules/liquidjs/dist/render/boolean.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

10
node_modules/liquidjs/dist/render/expression.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { QuotedToken, Token } from '../tokens';
import type { Context } from '../context';
export declare class Expression {
private postfix;
constructor(tokens: IterableIterator<Token>);
evaluate(ctx: Context, lenient?: boolean): Generator<unknown, unknown, unknown>;
valid(): boolean;
}
export declare function evalToken(token: Token | undefined, ctx: Context, lenient?: boolean): IterableIterator<unknown>;
export declare function evalQuotedToken(token: QuotedToken): string;

View File

@@ -0,0 +1 @@
export {};

4
node_modules/liquidjs/dist/render/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export * from './render';
export * from './expression';
export * from './operator';
export * from './boolean';

7
node_modules/liquidjs/dist/render/operator.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Context } from '../context';
export type UnaryOperatorHandler = (operand: any, ctx: Context) => boolean;
export type BinaryOperatorHandler = (lhs: any, rhs: any, ctx: Context) => boolean;
export type OperatorHandler = UnaryOperatorHandler | BinaryOperatorHandler;
export type Operators = Record<string, OperatorHandler>;
export declare const defaultOperators: Operators;
export declare function equals(lhs: any, rhs: any): boolean;

8
node_modules/liquidjs/dist/render/render.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
/// <reference types="node" />
import { Context } from '../context';
import { Template } from '../template';
import { Emitter } from '../emitters';
export declare class Render {
renderTemplatesToNodeStream(templates: Template[], ctx: Context): NodeJS.ReadableStream;
renderTemplates(templates: Template[], ctx: Context, emitter?: Emitter): IterableIterator<any>;
}

1
node_modules/liquidjs/dist/render/render.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

1
node_modules/liquidjs/dist/render/string.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare function parseStringLiteral(str: string): string;

1
node_modules/liquidjs/dist/render/string.spec.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

7
node_modules/liquidjs/dist/tags/assign.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Liquid, TopLevelToken, TagToken, Context, Tag } from '..';
export default class extends Tag {
private key;
private value;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(ctx: Context): Generator<unknown, void, unknown>;
}

9
node_modules/liquidjs/dist/tags/block.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import { Liquid, TagToken, TopLevelToken, Template, Context, Emitter, Tag } from '..';
import { Parser } from '../parser';
export default class extends Tag {
block: string;
templates: Template[];
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<any, void, unknown>;
private getBlockRender;
}

4
node_modules/liquidjs/dist/tags/break.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import { Context, Emitter, Tag } from '..';
export default class extends Tag {
render(ctx: Context, emitter: Emitter): void;
}

9
node_modules/liquidjs/dist/tags/capture.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import { Liquid, Tag, Template, Context, TagToken, TopLevelToken } from '..';
import { Parser } from '../parser';
export default class extends Tag {
variable: string;
templates: Template[];
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context): Generator<unknown, void, string>;
private readVariableName;
}

12
node_modules/liquidjs/dist/tags/case.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import { ValueToken, Liquid, Value, Emitter, TagToken, TopLevelToken, Context, Template, Tag } from '..';
import { Parser } from '../parser';
export default class extends Tag {
value: Value;
branches: {
values: ValueToken[];
templates: Template[];
}[];
elseTemplates: Template[];
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}

5
node_modules/liquidjs/dist/tags/comment.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { Liquid, TopLevelToken, TagToken, Tag } from '..';
export default class extends Tag {
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(): void;
}

4
node_modules/liquidjs/dist/tags/continue.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import { Tag, Emitter, Context } from '..';
export default class extends Tag {
render(ctx: Context, emitter: Emitter): void;
}

7
node_modules/liquidjs/dist/tags/cycle.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { TopLevelToken, Liquid, Emitter, TagToken, Context, Tag } from '..';
export default class extends Tag {
private candidates;
private group?;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
}

6
node_modules/liquidjs/dist/tags/decrement.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..';
export default class extends Tag {
private variable;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(context: Context, emitter: Emitter): void;
}

6
node_modules/liquidjs/dist/tags/echo.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Liquid, TopLevelToken, Emitter, TagToken, Context, Tag } from '..';
export default class extends Tag {
private value?;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}

11
node_modules/liquidjs/dist/tags/for.d.ts generated vendored Normal file
View File

@@ -0,0 +1,11 @@
import { Hash, ValueToken, Liquid, Tag, Emitter, TagToken, TopLevelToken, Context, Template } from '..';
import { Parser } from '../parser';
export default class extends Tag {
variable: string;
collection: ValueToken;
hash: Hash;
templates: Template[];
elseTemplates: Template[];
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void | string, Template[]>;
}

11
node_modules/liquidjs/dist/tags/if.d.ts generated vendored Normal file
View File

@@ -0,0 +1,11 @@
import { Liquid, Tag, Value, Emitter, TagToken, TopLevelToken, Context, Template } from '..';
import { Parser } from '../parser';
export default class extends Tag {
branches: {
value: Value;
templates: Template[];
}[];
elseTemplates: Template[] | undefined;
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, string>;
}

8
node_modules/liquidjs/dist/tags/include.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import { TopLevelToken, Liquid, Tag, Emitter, TagToken, Context } from '..';
import { Parser } from '../parser';
export default class extends Tag {
private withVar?;
private hash;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}

6
node_modules/liquidjs/dist/tags/increment.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..';
export default class extends Tag {
private variable;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(context: Context, emitter: Emitter): void;
}

24
node_modules/liquidjs/dist/tags/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,24 @@
import AssignTag from './assign';
import ForTag from './for';
import CaptureTag from './capture';
import CaseTag from './case';
import CommentTag from './comment';
import IncludeTag from './include';
import RenderTag from './render';
import DecrementTag from './decrement';
import CycleTag from './cycle';
import IfTag from './if';
import IncrementTag from './increment';
import LayoutTag from './layout';
import BlockTag from './block';
import RawTag from './raw';
import TablerowTag from './tablerow';
import UnlessTag from './unless';
import BreakTag from './break';
import ContinueTag from './continue';
import EchoTag from './echo';
import LiquidTag from './liquid';
import InlineCommentTag from './inline-comment';
import type { TagClass } from '../template/tag';
export declare const tags: Record<string, TagClass>;
export { AssignTag, ForTag, CaptureTag, CaseTag, CommentTag, IncludeTag, RenderTag, DecrementTag, IncrementTag, CycleTag, IfTag, LayoutTag, BlockTag, RawTag, TablerowTag, UnlessTag, BreakTag, ContinueTag, EchoTag, LiquidTag, InlineCommentTag };

5
node_modules/liquidjs/dist/tags/inline-comment.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { TagToken, Liquid, TopLevelToken, Tag } from '..';
export default class extends Tag {
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(): void;
}

10
node_modules/liquidjs/dist/tags/layout.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { Template, Liquid, Tag, Emitter, Hash, TagToken, TopLevelToken, Context } from '..';
import { ParsedFileName } from './render';
import { Parser } from '../parser';
export default class extends Tag {
args: Hash;
templates: Template[];
file?: ParsedFileName;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
}

7
node_modules/liquidjs/dist/tags/liquid.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Template, Emitter, Liquid, TopLevelToken, TagToken, Context, Tag } from '..';
import { Parser } from '../parser';
export default class extends Tag {
templates: Template[];
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}

6
node_modules/liquidjs/dist/tags/raw.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { Liquid, TagToken, TopLevelToken, Tag } from '..';
export default class extends Tag {
private tokens;
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
render(): string;
}

18
node_modules/liquidjs/dist/tags/render.d.ts generated vendored Normal file
View File

@@ -0,0 +1,18 @@
import { TopLevelToken, Liquid, Token, Template, Tokenizer, Emitter, TagToken, Context, Tag } from '..';
import { Parser } from '../parser';
export type ParsedFileName = Template[] | Token | string | undefined;
export default class extends Tag {
private file;
private currentFile?;
private hash;
constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}
/**
* @return null for "none",
* @return Template[] for quoted with tags and/or filters
* @return Token for expression (not quoted)
* @throws TypeError if cannot read next token
*/
export declare function parseFilePath(tokenizer: Tokenizer, liquid: Liquid, parser: Parser): ParsedFileName;
export declare function renderFilePath(file: ParsedFileName, ctx: Context, liquid: Liquid): IterableIterator<unknown>;

10
node_modules/liquidjs/dist/tags/tablerow.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
import { ValueToken, Liquid, Tag, Emitter, Hash, TagToken, TopLevelToken, Context, Template } from '..';
import { Parser } from '../parser';
export default class extends Tag {
variable: string;
args: Hash;
templates: Template[];
collection: ValueToken;
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
}

12
node_modules/liquidjs/dist/tags/unless.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import { Liquid, Tag, Value, TopLevelToken, Template, Emitter, Context, TagToken } from '..';
import { Parser } from '../parser';
export default class extends Tag {
branches: {
value: Value;
test: (val: any, ctx: Context) => boolean;
templates: Template[];
}[];
elseTemplates: Template[];
constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
}

Some files were not shown because too many files have changed in this diff Show More