@skeptools/skep-organization-project 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.jsii +22 -2139
  2. package/API.md +533 -418
  3. package/lib/skep-organization-project.js +36 -5
  4. package/node_modules/liquidjs/README.md +110 -67
  5. package/node_modules/liquidjs/dist/build/base64-impl-browser.d.ts +2 -0
  6. package/node_modules/liquidjs/dist/build/base64-impl-browser.spec.d.ts +1 -0
  7. package/node_modules/liquidjs/dist/build/crypto-impl-browser.d.ts +2 -0
  8. package/node_modules/liquidjs/dist/build/crypto-impl-browser.spec.d.ts +1 -0
  9. package/node_modules/liquidjs/dist/context/context.d.ts +10 -4
  10. package/node_modules/liquidjs/dist/context/scope.d.ts +2 -2
  11. package/node_modules/liquidjs/dist/drop/blank-drop.d.ts +1 -1
  12. package/node_modules/liquidjs/dist/drop/block-drop.d.ts +3 -2
  13. package/node_modules/liquidjs/dist/drop/comparable.d.ts +11 -5
  14. package/node_modules/liquidjs/dist/drop/drop.d.ts +3 -1
  15. package/node_modules/liquidjs/dist/drop/empty-drop.d.ts +1 -1
  16. package/node_modules/liquidjs/dist/drop/null-drop.d.ts +1 -1
  17. package/node_modules/liquidjs/dist/filters/array.d.ts +9 -3
  18. package/node_modules/liquidjs/dist/filters/base64-impl.d.ts +2 -0
  19. package/node_modules/liquidjs/dist/filters/base64.d.ts +9 -0
  20. package/node_modules/liquidjs/dist/filters/crypto-impl.d.ts +2 -0
  21. package/node_modules/liquidjs/dist/filters/crypto.d.ts +8 -0
  22. package/node_modules/liquidjs/dist/filters/math.d.ts +1 -1
  23. package/node_modules/liquidjs/dist/filters/misc.d.ts +2 -2
  24. package/node_modules/liquidjs/dist/filters/string.d.ts +2 -1
  25. package/node_modules/liquidjs/dist/fs/fs-impl.d.ts +2 -1
  26. package/node_modules/liquidjs/dist/fs/fs.d.ts +4 -2
  27. package/node_modules/liquidjs/dist/fs/loader.d.ts +2 -1
  28. package/node_modules/liquidjs/dist/index.d.ts +8 -3
  29. package/node_modules/liquidjs/dist/liquid-options.d.ts +8 -2
  30. package/node_modules/liquidjs/dist/liquid.browser.min.js +1 -1
  31. package/node_modules/liquidjs/dist/liquid.browser.min.js.map +1 -1
  32. package/node_modules/liquidjs/dist/liquid.browser.mjs +836 -406
  33. package/node_modules/liquidjs/dist/liquid.browser.umd.js +1683 -788
  34. package/node_modules/liquidjs/dist/liquid.browser.umd.js.map +1 -1
  35. package/node_modules/liquidjs/dist/liquid.d.ts +1 -0
  36. package/node_modules/liquidjs/dist/liquid.node.js +848 -426
  37. package/node_modules/liquidjs/dist/liquid.node.mjs +849 -422
  38. package/node_modules/liquidjs/dist/parser/parser.d.ts +1 -0
  39. package/node_modules/liquidjs/dist/parser/token-kind.d.ts +1 -0
  40. package/node_modules/liquidjs/dist/parser/tokenizer.d.ts +4 -3
  41. package/node_modules/liquidjs/dist/render/expression.d.ts +11 -1
  42. package/node_modules/liquidjs/dist/render/operator.d.ts +11 -4
  43. package/node_modules/liquidjs/dist/tags/case.d.ts +2 -2
  44. package/node_modules/liquidjs/dist/tags/for.d.ts +2 -2
  45. package/node_modules/liquidjs/dist/tags/include.d.ts +2 -0
  46. package/node_modules/liquidjs/dist/tags/layout.d.ts +1 -0
  47. package/node_modules/liquidjs/dist/tags/render.d.ts +2 -0
  48. package/node_modules/liquidjs/dist/tags/tablerow.d.ts +2 -2
  49. package/node_modules/liquidjs/dist/tokens/literal-token.d.ts +2 -2
  50. package/node_modules/liquidjs/dist/tokens/operator-token.d.ts +3 -2
  51. package/node_modules/liquidjs/dist/tokens/property-access-token.d.ts +3 -2
  52. package/node_modules/liquidjs/dist/tokens/tag-token.d.ts +1 -1
  53. package/node_modules/liquidjs/dist/tokens/value-token.d.ts +2 -1
  54. package/node_modules/liquidjs/dist/util/async.d.ts +2 -0
  55. package/node_modules/liquidjs/dist/util/liquid-date.d.ts +7 -0
  56. package/node_modules/liquidjs/dist/util/operator-trie.d.ts +4 -8
  57. package/node_modules/liquidjs/dist/util/strftime.d.ts +2 -1
  58. package/node_modules/liquidjs/dist/util/type-guards.d.ts +2 -1
  59. package/node_modules/liquidjs/dist/util/underscore.d.ts +5 -1
  60. package/node_modules/liquidjs/package.json +20 -14
  61. package/package.json +47 -41
@@ -1,9 +1,41 @@
1
1
  "use strict";
2
- var _a;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
3
35
  Object.defineProperty(exports, "__esModule", { value: true });
4
36
  exports.SkepOrganizationProject = void 0;
5
37
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const path = require("path");
38
+ const path = __importStar(require("path"));
7
39
  const cdktf_project_1 = require("@rlmartin-projen/cdktf-project");
8
40
  const projen_project_1 = require("@rlmartin-projen/projen-project");
9
41
  const dependencies = [
@@ -11,6 +43,7 @@ const dependencies = [
11
43
  'timezone-enum@~1',
12
44
  ];
13
45
  class SkepOrganizationProject extends cdktf_project_1.CdktfProject {
46
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@skeptools/skep-organization-project.SkepOrganizationProject", version: "0.0.19" };
14
47
  constructor(options) {
15
48
  const tempOptions = {
16
49
  ...options,
@@ -24,6 +57,4 @@ class SkepOrganizationProject extends cdktf_project_1.CdktfProject {
24
57
  }
25
58
  }
26
59
  exports.SkepOrganizationProject = SkepOrganizationProject;
27
- _a = JSII_RTTI_SYMBOL_1;
28
- SkepOrganizationProject[_a] = { fqn: "@skeptools/skep-organization-project.SkepOrganizationProject", version: "0.0.17" };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlcC1vcmdhbml6YXRpb24tcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9za2VwLW9yZ2FuaXphdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLGtFQUFtRjtBQUNuRixvRUFBbUc7QUFNbkcsTUFBTSxZQUFZLEdBQUc7SUFDbkIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtDQUNuQixDQUFDO0FBRUYsTUFBYSx1QkFBd0IsU0FBUSw0QkFBWTtJQUN2RCxZQUFZLE9BQXVDO1FBQ2pELE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxJQUFBLCtCQUFjLEVBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLGlCQUFpQixFQUFFLElBQUEseUJBQVEsRUFBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDdEQsQ0FBQztRQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsNkJBQVksRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUEseUJBQVEsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEIsbUNBQW1DO0lBQ3JDLENBQUM7O0FBWEgsMERBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2RrdGZQcm9qZWN0LCBDZGt0ZlByb2plY3RPcHRpb25zIH0gZnJvbSAnQHJsbWFydGluLXByb2plbi9jZGt0Zi1wcm9qZWN0JztcbmltcG9ydCB7IGFkZEZpbGVzLCBhbGxDYXNlcywgbG9hZFNldHRpbmdzLCBzcXVhc2hQYWNrYWdlcyB9IGZyb20gJ0BybG1hcnRpbi1wcm9qZW4vcHJvamVuLXByb2plY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNrZXBPcmdhbml6YXRpb25Qcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka3RmUHJvamVjdE9wdGlvbnMge1xuICByZWFkb25seSBvcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IGRlcGVuZGVuY2llcyA9IFtcbiAgJ0Bza2VwdG9vbHMvc2tlcEB+MCcsXG4gICd0aW1lem9uZS1lbnVtQH4xJyxcbl07XG5cbmV4cG9ydCBjbGFzcyBTa2VwT3JnYW5pemF0aW9uUHJvamVjdCBleHRlbmRzIENka3RmUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNrZXBPcmdhbml6YXRpb25Qcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IHRlbXBPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGRlcHM6IHNxdWFzaFBhY2thZ2VzKFsuLi5kZXBlbmRlbmNpZXMsIC4uLihvcHRpb25zLmRlcHMgfHwgW10pXSksXG4gICAgICBfb3JnYW5pemF0aW9uTmFtZTogYWxsQ2FzZXMob3B0aW9ucy5vcmdhbml6YXRpb25OYW1lKSxcbiAgICB9O1xuICAgIGNvbnN0IHsgb3B0aW9uczogcHJvamVjdE9wdHMsIGZpbGVzIH0gPSBsb2FkU2V0dGluZ3ModGVtcE9wdGlvbnMsIHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9maWxlcycpLCB0cnVlKTtcbiAgICBzdXBlcihwcm9qZWN0T3B0cyk7XG4gICAgYWRkRmlsZXModGhpcywgZmlsZXMpO1xuICAgIC8vIEFkZCBub24tdGVtcGxhdGVkIHJlc291cmNlcyBoZXJlXG4gIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlcC1vcmdhbml6YXRpb24tcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9za2VwLW9yZ2FuaXphdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0Isa0VBQW1GO0FBQ25GLG9FQUFtRztBQU1uRyxNQUFNLFlBQVksR0FBRztJQUNuQixvQkFBb0I7SUFDcEIsa0JBQWtCO0NBQ25CLENBQUM7QUFFRixNQUFhLHVCQUF3QixTQUFRLDRCQUFZOztJQUN2RCxZQUFZLE9BQXVDO1FBQ2pELE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxJQUFBLCtCQUFjLEVBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLGlCQUFpQixFQUFFLElBQUEseUJBQVEsRUFBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDdEQsQ0FBQztRQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsNkJBQVksRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUEseUJBQVEsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEIsbUNBQW1DO0lBQ3JDLENBQUM7O0FBWEgsMERBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2RrdGZQcm9qZWN0LCBDZGt0ZlByb2plY3RPcHRpb25zIH0gZnJvbSAnQHJsbWFydGluLXByb2plbi9jZGt0Zi1wcm9qZWN0JztcbmltcG9ydCB7IGFkZEZpbGVzLCBhbGxDYXNlcywgbG9hZFNldHRpbmdzLCBzcXVhc2hQYWNrYWdlcyB9IGZyb20gJ0BybG1hcnRpbi1wcm9qZW4vcHJvamVuLXByb2plY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNrZXBPcmdhbml6YXRpb25Qcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka3RmUHJvamVjdE9wdGlvbnMge1xuICByZWFkb25seSBvcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IGRlcGVuZGVuY2llcyA9IFtcbiAgJ0Bza2VwdG9vbHMvc2tlcEB+MCcsXG4gICd0aW1lem9uZS1lbnVtQH4xJyxcbl07XG5cbmV4cG9ydCBjbGFzcyBTa2VwT3JnYW5pemF0aW9uUHJvamVjdCBleHRlbmRzIENka3RmUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNrZXBPcmdhbml6YXRpb25Qcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IHRlbXBPcHRpb25zID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGRlcHM6IHNxdWFzaFBhY2thZ2VzKFsuLi5kZXBlbmRlbmNpZXMsIC4uLihvcHRpb25zLmRlcHMgfHwgW10pXSksXG4gICAgICBfb3JnYW5pemF0aW9uTmFtZTogYWxsQ2FzZXMob3B0aW9ucy5vcmdhbml6YXRpb25OYW1lKSxcbiAgICB9O1xuICAgIGNvbnN0IHsgb3B0aW9uczogcHJvamVjdE9wdHMsIGZpbGVzIH0gPSBsb2FkU2V0dGluZ3ModGVtcE9wdGlvbnMsIHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9maWxlcycpLCB0cnVlKTtcbiAgICBzdXBlcihwcm9qZWN0T3B0cyk7XG4gICAgYWRkRmlsZXModGhpcywgZmlsZXMpO1xuICAgIC8vIEFkZCBub24tdGVtcGxhdGVkIHJlc291cmNlcyBoZXJlXG4gIH1cbn1cbiJdfQ==
@@ -1,103 +1,117 @@
1
- # liquidjs
1
+ # LiquidJS
2
+
3
+ A simple, expressive, extensible Liquid template engine for JavaScript — Shopify, Jekyll and GitHub Pages compatible, for Node.js, browsers, and the CLI, with TypeScript support.
4
+
2
5
  [![npm version](https://img.shields.io/npm/v/liquidjs.svg?logo=npm&style=flat-square)](https://www.npmjs.org/package/liquidjs)
3
6
  [![npm downloads](https://img.shields.io/npm/dm/liquidjs.svg?style=flat-square)](https://www.npmjs.org/package/liquidjs)
4
- [![Coverage](https://img.shields.io/coveralls/harttle/liquidjs.svg?style=flat-square)](https://coveralls.io/github/harttle/liquidjs?branch=master)
5
7
  [![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)
6
- [![DUB license](https://img.shields.io/dub/l/vibe-d.svg?style=flat-square)](https://github.com/harttle/liquidjs/blob/master/LICENSE)
7
- [![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)
8
+ [![Coverage](https://img.shields.io/coveralls/harttle/liquidjs.svg?style=flat-square)](https://coveralls.io/github/harttle/liquidjs?branch=master)
9
+ [![License: MIT](https://img.shields.io/github/license/harttle/liquidjs?style=flat-square)](https://github.com/harttle/liquidjs/blob/master/LICENSE)
8
10
 
9
- A simple, expressive and safe [Shopify][shopify/liquid] / GitHub Pages compatible template engine in pure JavaScript.
10
- **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.
11
+ [Documentation][doc] · [Playground](https://liquidjs.com/playground.html) · [Setup guide][setup] · [Contributing][contribution]
11
12
 
12
- * [Documentation][doc]
13
- * Please star [LiquidJS on GitHub][github]!
14
- * Financial support via [GitHub Sponsors](https://github.com/sponsors/harttle).
13
+ <a href="https://liquidjs.com/playground.html">
14
+ <img src="docs/source/playground-demo.gif" alt="LiquidJS playground: edit a template and context, see live HTML output" width="980" style="display: block; margin: 0 auto;" />
15
+ </a>
15
16
 
16
- <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>
17
+ <p align="center"><sub>Try the <a href="https://liquidjs.com/playground.html">online playground</a>.</sub></p>
17
18
 
18
- ## What's it like?
19
+ ## Quick start
19
20
 
20
- Basically there're two types of Liquid syntax: tags enclosed by `{% %}` and outputs enclosed by `{{ }}`. A Liquid template looks like:
21
+ ```js
22
+ import { Liquid } from 'liquidjs'
21
23
 
22
- ```liquid
23
- {% if username %}
24
- {{ username | append: ", welcome to LiquidJS!" | capitalize }}
25
- {% endif %}
24
+ const engine = new Liquid()
25
+ const html = await engine.parseAndRender(
26
+ 'Hello, {{ name | capitalize }}!',
27
+ { name: 'liquid' }
28
+ )
29
+ //=> 'Hello, Liquid!'
26
30
  ```
27
31
 
28
- [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.
29
-
30
-
31
32
  ## Installation
32
33
 
33
- Install from npm in Node.js:
34
+ **Node.js**
34
35
 
35
36
  ```bash
36
37
  npm install liquidjs
37
38
  ```
38
39
 
39
- Or use the UMD bundle from jsDelivr:
40
+ **Browser** (jsDelivr UMD bundle)
40
41
 
41
42
  ```html
42
43
  <script src="https://cdn.jsdelivr.net/npm/liquidjs/dist/liquid.browser.min.js"></script>
43
44
  ```
44
45
 
45
- Or render directly from CLI using npx:
46
+ **CLI**
46
47
 
47
48
  ```bash
48
- npx liquidjs --template 'Hello, {{ name }}!' --context '{"name": "Snake"}'
49
+ npx liquidjs --template 'Hello, {{ name }}!' --context '{"name": "Liquid"}'
49
50
  ```
50
51
 
51
- For more details, refer to the [Setup Guide][setup].
52
+ See the [setup guide][setup] for partials, layouts, caching, and other options.
52
53
 
53
- ## Who's Using LiquidJS?
54
+ ## Used by
54
55
 
55
- - [Eleventy](https://www.11ty.dev/): Eleventy, a simpler static site generator.
56
- - [Opensense](https://www.opensense.com/): The smarter way to send email.
57
- - [Directus](https://docs.directus.io/): an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.
58
- - [Semgrep](https://github.com/returntocorp/semgrep): Lightweight static analysis for many languages.
59
- - [Rock](https://www.rockrms.com/): An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
60
- - [Mitosis](https://github.com/BuilderIO/mitosis): Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.
61
- - [Pattern Lab](https://patternlab.io/): a frontend workshop environment that helps you build, view, test, and showcase your design system's UI components.
62
- - [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.
63
- - [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.
64
- - [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.
65
- - [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.
56
+ <!-- USED-BY-BEGIN -->
57
+ <p align="center" style="line-height: 2.5;">
58
+ <a href="https://www.11ty.dev/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/35147177?v=4&s=100" height="80" style="vertical-align: middle;" alt="Eleventy" title="Eleventy"/></a>
59
+ <a href="https://www.opensense.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/opensense-inc/bf840ae/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Opensense" title="Opensense"/></a>
60
+ <a href="https://www.microsoft.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/6154722?v=4&s=100" height="80" style="vertical-align: middle;" alt="Power Pages, Azure API Management developer portal" title="Power Pages, Azure API Management developer portal"/></a>
61
+ <a href="https://docs.github.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/9919?v=4&amp;s=100" height="80" style="vertical-align: middle;" alt="GitHub Docs" title="GitHub Docs"/></a>
62
+ <a href="https://github.com/elastic/kibana" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/6764390?v=4&s=100" height="80" style="vertical-align: middle;" alt="Kibana" title="Kibana"/></a>
63
+ <a href="https://www.shopify.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/8085?v=4&amp;s=100" height="80" style="vertical-align: middle;" alt="Shopify CLI, Checkout Blocks" title="Shopify CLI, Checkout Blocks"/></a>
64
+ <a href="https://customer.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/1152079?v=4&s=100" height="80" style="vertical-align: middle;" alt="Customer IO" title="Customer IO"/></a>
65
+ <br/>
66
+ <a href="https://syntax.fm/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/130389858?v=4&s=100" height="80" style="vertical-align: middle;" alt="Syntax Podcast" title="Syntax Podcast"/></a>
67
+ <a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=liquidjs" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/27130435?s=200&v=4" width="80" style="vertical-align: middle;" alt="TestMu AI" title="TestMu AI"/></a>
68
+ <a href="https://chudovo.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/Chudovo/avatar/256.png?height=100" width="160" style="vertical-align: middle;background: white;padding: 8px 16px;" alt="Chudovo" title="Chudovo"/></a>
69
+ <a href="https://www.pakstyle.pk/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/pakstyle/2b81605/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="PakStyle.pk" title="PakStyle.pk"/></a>
70
+ <a href="https://www.escorta.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/escortacom/avatar/256.png?height=100" height="45" style="vertical-align: middle;" alt="EscortA.com" title="EscortA.com"/></a>
71
+ <a href="https://opencollective.com/touchless" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/touchless/273bc74/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Touchless" title="Touchless"/></a>
72
+ <br/>
73
+ <a href="https://www.dropkiq.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/1bertlol/43a8ea8/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Dropkiq" title="Dropkiq"/></a>
74
+ <a href="https://directus.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/15967950?v=4&amp;s=100" height="80" style="vertical-align: middle;" alt="Directus" title="Directus"/></a>
75
+ <a href="https://www.builder.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F51a002f4a17f4fc4a829b8891a1c25ee" height="80" style="vertical-align: middle;" alt="Builder.io, Mitosis" title="Builder.io, Mitosis"/></a>
76
+ <a href="https://patternlab.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/4733935?v=4&amp;s=100" height="80" style="vertical-align: middle;" alt="Pattern Lab" title="Pattern Lab"/></a>
77
+ <a href="https://www.rockrms.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://www.rockrms.com/GetImage.ashx?id=72533" height="80" style="vertical-align: middle;" alt="Rock RMS" title="Rock RMS"/></a>
78
+ <a href="https://wismolabs.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://cdn-ldlap.nitrocdn.com/DsLJMZpUUekfsitqBnNmsRAnzbwPoIzE/assets/images/optimized/rev-5df8687/wismolabs.com/wp-content/uploads/2023/03/favicon-300x300.png" height="80" style="vertical-align: middle;" alt="WISMOlabs" title="WISMOlabs"/></a>
79
+ <a href="https://chromewebstore.google.com/detail/freshet/mpclplhdencffbilobpcapccnihpelcg" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://raw.githubusercontent.com/MattAltermatt/freshet/main/public/icon-128.png" height="80" style="vertical-align: middle;" alt="Freshet" title="Freshet"/></a>
80
+ </p>
81
+ <!-- USED-BY-END -->
66
82
 
67
- Feel free to create a PR or contact me to add your use case into this list!
83
+ Products and projects running on LiquidJS. [Open a PR](https://github.com/harttle/liquidjs/edit/master/README.md) to add yours.
68
84
 
69
85
  ## Financial Support
70
86
 
71
87
  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!
72
88
 
73
89
  <!-- FINANCIAL-CONTRIBUTORS-BEGIN -->
74
- <table>
75
- <tbody>
76
- <tr>
77
- <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>
78
- <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>
79
- <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>
80
- <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>
81
- <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>
82
- <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>
83
- <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>
84
- </tr>
85
- <tr>
86
- <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>
87
- <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>
88
- <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>
89
- <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>
90
- <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>
91
- <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>
92
- <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>
93
- </tr>
94
- <tr>
95
- <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>
96
- <td align="center" valign="top" width="14.28%"><a href="https://syntax.fm/"><img src="https://avatars.githubusercontent.com/u/130389858?v=4&s=100" width="100px;" alt="Syntax Podcast"/><br /><sub><b>Syntax Podcast</b></sub></a></td>
97
- <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/cartelli-emmanuel"><img src="https://images.opencollective.com/cartelli-emmanuel/avatar/256.png?height=100" width="100px;" alt="Cartelli Emmanuel"/><br /><sub><b>Cartelli Emmanuel</b></sub></a></td>
98
- </tr>
99
- </tbody>
100
- </table>
90
+ <p align="center" style="line-height: 2.5;">
91
+ <a href="https://www.11ty.dev/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/35147177?v=4&s=100" height="80" style="vertical-align: middle;" alt="Eleventy" title="Eleventy"/></a>
92
+ <a href="https://www.opensense.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/opensense-inc/bf840ae/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Opensense Inc." title="Opensense"/></a>
93
+ <a href="https://github.com/microsoft" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/6154722?v=4&s=100" height="80" style="vertical-align: middle;" alt="Microsoft" title="Microsoft"/></a>
94
+ <a href="https://sentry.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/1396951?v=4&s=100" height="80" style="vertical-align: middle;" alt="Sentry" title="Sentry"/></a>
95
+ <a href="https://github.com/Checkout-Blocks" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/114603307?v=4&s=100" height="80" style="vertical-align: middle;" alt="Checkout Blocks" title="Checkout Blocks"/></a>
96
+ <a href="https://customer.io/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/1152079?v=4&s=100" height="80" style="vertical-align: middle;" alt="Customer IO" title="Customer IO"/></a>
97
+ <a href="https://syntax.fm/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/130389858?v=4&s=100" height="80" style="vertical-align: middle;" alt="Syntax Podcast" title="Syntax Podcast"/></a>
98
+ <br/>
99
+ <a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=liquidjs" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/27130435?s=200&v=4" width="80" style="vertical-align: middle;" alt="TestMu AI" title="TestMu AI"/></a>
100
+ <a href="https://github.com/talboren" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/68807791?v=4&s=100" height="80" style="vertical-align: middle;" alt="Tal" title="Tal (@talboren)"/></a>
101
+ <a href="https://chudovo.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/Chudovo/avatar/256.png?height=100" width="160" style="vertical-align: middle;background: white;padding: 8px 16px;" alt="Chudovo" title="Chudovo"/></a>
102
+ <a href="https://dailycontributors.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/dailycontributors/3c2e057/logo/256.png?height=50&width=100" width="120" style="vertical-align: middle;" alt="Dailycontributors" title="Dailycontributors"/></a>
103
+ <a href="https://www.pakstyle.pk/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/pakstyle/2b81605/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="PakStyle.pk" title="PakStyle.pk"/></a>
104
+ <a href="https://www.escorta.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/escortacom/avatar/256.png?height=100" height="45" style="vertical-align: middle;" alt="EscortA.com" title="EscortA.com"/></a>
105
+ <br/>
106
+ <a href="https://opencollective.com/touchless" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/touchless/273bc74/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Touchless" title="Touchless"/></a>
107
+ <a href="https://www.dropkiq.com/" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/1bertlol/43a8ea8/logo/256.png?height=100" height="80" style="vertical-align: middle;" alt="Dropkiq" title="Dropkiq"/></a>
108
+ <a href="https://about.me/peterdehaan" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars2.githubusercontent.com/u/557895?v=4&s=100" height="80" style="vertical-align: middle;" alt="Peter deHaan" title="Peter deHaan"/></a>
109
+ <a href="https://github.com/coni2k" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars0.githubusercontent.com/u/1284601?v=4&s=100" height="80" style="vertical-align: middle;" alt="Serkan Holat" title="Serkan Holat"/></a>
110
+ <a href="https://github.com/amit777" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars0.githubusercontent.com/u/2703309?v=4&s=100" height="80" style="vertical-align: middle;" alt="amit777" title="amit777"/></a>
111
+ <a href="https://opencollective.com/khaled-salem" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/khaled-salem/avatar/256.png?height=256" height="80" style="vertical-align: middle;" alt="Khaled Salem" title="Khaled Salem"/></a>
112
+ <a href="https://github.com/15fathoms" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://avatars.githubusercontent.com/u/79156039?v=4&s=100" height="80" style="vertical-align: middle;" alt="Emmanuel Cartelli" title="Emmanuel Cartelli"/></a>
113
+ <a href="https://opencollective.com/cartelli-emmanuel" style="display: inline-block; vertical-align: middle; margin: 8px;"><img src="https://images.opencollective.com/cartelli-emmanuel/avatar/256.png?height=100" height="80" style="vertical-align: middle;" alt="Cartelli Emmanuel" title="Cartelli Emmanuel"/></a>
114
+ </p>
101
115
  <!-- FINANCIAL-CONTRIBUTORS-END -->
102
116
 
103
117
  ## Contributors ✨
@@ -110,7 +124,7 @@ Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to
110
124
  <table>
111
125
  <tbody>
112
126
  <tr>
113
- <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>
127
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/harttle"><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>
114
128
  <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>
115
129
  <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>
116
130
  <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>
@@ -210,6 +224,33 @@ Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to
210
224
  </tr>
211
225
  <tr>
212
226
  <td align="center" valign="top" width="14.28%"><a href="https://tovd.dev"><img src="https://avatars.githubusercontent.com/u/35376389?v=4?s=100" width="100px;" alt="Tim van Dam"/><br /><sub><b>Tim van Dam</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=timvandam" title="Code">💻</a></td>
227
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/edh649"><img src="https://avatars.githubusercontent.com/u/527604?v=4?s=100" width="100px;" alt="Ed Hanton"/><br /><sub><b>Ed Hanton</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=edh649" title="Documentation">📖</a></td>
228
+ <td align="center" valign="top" width="14.28%"><a href="https://gurdiga.com"><img src="https://avatars.githubusercontent.com/u/53922?v=4?s=100" width="100px;" alt="Vlad GURDIGA"/><br /><sub><b>Vlad GURDIGA</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=gurdiga" title="Documentation">📖</a></td>
229
+ <td align="center" valign="top" width="14.28%"><a href="https://www.streakingman.com"><img src="https://avatars.githubusercontent.com/u/30397306?v=4?s=100" width="100px;" alt="裸奔狂甩丁丁"/><br /><sub><b>裸奔狂甩丁丁</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=StreakingMan" title="Documentation">📖</a></td>
230
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/skynetigor"><img src="https://avatars.githubusercontent.com/u/20903171?v=4?s=100" width="100px;" alt="Ihor Panasiuk"/><br /><sub><b>Ihor Panasiuk</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=skynetigor" title="Code">💻</a></td>
231
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rosomri"><img src="https://avatars.githubusercontent.com/u/68001413?v=4?s=100" width="100px;" alt="Omri Rosner"/><br /><sub><b>Omri Rosner</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=rosomri" title="Code">💻</a></td>
232
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/immerrr"><img src="https://avatars.githubusercontent.com/u/579798?v=4?s=100" width="100px;" alt="immerrr again"/><br /><sub><b>immerrr again</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=immerrr" title="Documentation">📖</a></td>
233
+ </tr>
234
+ <tr>
235
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rongjiecomputer"><img src="https://avatars.githubusercontent.com/u/13115060?v=4?s=100" width="100px;" alt="Loo Rong Jie"/><br /><sub><b>Loo Rong Jie</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=rongjiecomputer" title="Code">💻</a></td>
236
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/MorielHarush"><img src="https://avatars.githubusercontent.com/u/93482738?v=4?s=100" width="100px;" alt="MorielHarush"/><br /><sub><b>MorielHarush</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=MorielHarush" title="Code">💻</a></td>
237
+ <td align="center" valign="top" width="14.28%"><a href="https://doruk.ch"><img src="https://avatars.githubusercontent.com/u/77903714?v=4?s=100" width="100px;" alt="Peak Twilight"/><br /><sub><b>Peak Twilight</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=peaktwilight" title="Code">💻</a></td>
238
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/joecottam"><img src="https://avatars.githubusercontent.com/u/44173086?v=4?s=100" width="100px;" alt="Joe Cottam"/><br /><sub><b>Joe Cottam</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=joecottam" title="Code">💻</a></td>
239
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/timbze"><img src="https://avatars.githubusercontent.com/u/35117769?v=4?s=100" width="100px;" alt="Timmy Braun"/><br /><sub><b>Timmy Braun</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=timbze" title="Code">💻</a></td>
240
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/talboren"><img src="https://avatars.githubusercontent.com/u/68807791?v=4?s=100" width="100px;" alt="Tal"/><br /><sub><b>Tal</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=talboren" title="Code">💻</a></td>
241
+ <td align="center" valign="top" width="14.28%"><a href="https://filonov.dev"><img src="https://avatars.githubusercontent.com/u/813224?v=4?s=100" width="100px;" alt="Vladimir Filonov"/><br /><sub><b>Vladimir Filonov</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=VladimirFilonov" title="Code">💻</a></td>
242
+ </tr>
243
+ <tr>
244
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/spokodev"><img src="https://avatars.githubusercontent.com/u/239690017?v=4?s=100" width="100px;" alt="spokodev"/><br /><sub><b>spokodev</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=spokodev" title="Code">💻</a></td>
245
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/YacovGold"><img src="https://avatars.githubusercontent.com/u/8984042?v=4?s=100" width="100px;" alt="YacovGold"/><br /><sub><b>YacovGold</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=YacovGold" title="Code">💻</a></td>
246
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sarathfrancis90"><img src="https://avatars.githubusercontent.com/u/9289498?v=4?s=100" width="100px;" alt="Sarath Francis"/><br /><sub><b>Sarath Francis</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=sarathfrancis90" title="Code">💻</a></td>
247
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/youdie006"><img src="https://avatars.githubusercontent.com/u/169331997?v=4?s=100" width="100px;" alt="KBS"/><br /><sub><b>KBS</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=youdie006" title="Code">💻</a></td>
248
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jakezwang"><img src="https://avatars.githubusercontent.com/u/2645794?v=4?s=100" width="100px;" alt="Jake Wang"/><br /><sub><b>Jake Wang</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=jakezwang" title="Code">💻</a></td>
249
+ <td align="center" valign="top" width="14.28%"><a href="https://digitalmonstr.com"><img src="https://avatars.githubusercontent.com/u/115070295?v=4?s=100" width="100px;" alt="web-orbit12"/><br /><sub><b>web-orbit12</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=web-orbit12" title="Code">💻</a></td>
250
+ <td align="center" valign="top" width="14.28%"><a href="https://www.aciragroup.com"><img src="https://avatars.githubusercontent.com/u/1220566?v=4?s=100" width="100px;" alt="Josef Guenther"/><br /><sub><b>Josef Guenther</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=josefguenther" title="Code">💻</a></td>
251
+ </tr>
252
+ <tr>
253
+ <td align="center" valign="top" width="14.28%"><a href="https://osama-ansar.netlify.app/"><img src="https://avatars.githubusercontent.com/u/56025301?v=4?s=100" width="100px;" alt="Osama Ansar"/><br /><sub><b>Osama Ansar</b></sub></a><br /><a href="https://github.com/harttle/liquidjs/commits?author=OsamaAnsar" title="Code">💻</a></td>
213
254
  </tr>
214
255
  </tbody>
215
256
  </table>
@@ -219,8 +260,10 @@ Want to contribute? see [Contribution Guidelines][contribution]. Thanks goes to
219
260
 
220
261
  <!-- ALL-CONTRIBUTORS-LIST:END -->
221
262
 
222
- [shopify/liquid]: https://shopify.github.io/liquid/
223
- [plugins]: https://liquidjs.com/tutorials/plugins.html#Plugin-List
263
+ ## License
264
+
265
+ [MIT](LICENSE) © [Jun Yang](https://github.com/harttle)
266
+
224
267
  [setup]: https://liquidjs.com/tutorials/setup.html
225
268
  [doc]: https://liquidjs.com
226
269
  [github]: https://github.com/harttle/liquidjs
@@ -0,0 +1,2 @@
1
+ export declare function base64Encode(str: string): string;
2
+ export declare function base64Decode(str: string): string;
@@ -0,0 +1,2 @@
1
+ export declare function sha256(str: string): Promise<string>;
2
+ export declare function hmacSha256(str: string, key: string): Promise<string>;
@@ -27,6 +27,10 @@ export declare class Context {
27
27
  * The normalized liquid options object
28
28
  */
29
29
  opts: NormalizedFullOptions;
30
+ /**
31
+ * Reference to the Liquid instance for filter resolution
32
+ */
33
+ liquid?: any;
30
34
  /**
31
35
  * Throw when accessing undefined variable?
32
36
  */
@@ -34,10 +38,12 @@ export declare class Context {
34
38
  ownPropertyOnly: boolean;
35
39
  memoryLimit: Limiter;
36
40
  renderLimit: Limiter;
37
- constructor(env?: object, opts?: NormalizedFullOptions, renderOptions?: RenderOptions, { memoryLimit, renderLimit }?: {
38
- [key: string]: Limiter;
41
+ constructor(env?: object, opts?: NormalizedFullOptions, renderOptions?: RenderOptions, { memoryLimit, renderLimit, liquid }?: {
42
+ memoryLimit?: Limiter;
43
+ renderLimit?: Limiter;
44
+ liquid?: any;
39
45
  });
40
- getRegister(key: string): any;
46
+ getRegister<T>(key: string, defaultValue?: T): T;
41
47
  setRegister(key: string, value: any): any;
42
48
  saveRegister(...keys: string[]): [string, any][];
43
49
  restoreRegister(keyValues: [string, any][]): void;
@@ -58,7 +64,7 @@ export declare class Context {
58
64
  bottom(): Scope;
59
65
  spawn(scope?: {}): Context;
60
66
  private findScope;
67
+ readProperty(obj: Scope, key: (PropertyKey | Drop)): any;
61
68
  }
62
- export declare function readProperty(obj: Scope, key: (PropertyKey | Drop), ownPropertyOnly: boolean): any;
63
69
  export declare function readJSProperty(obj: Scope, key: PropertyKey, ownPropertyOnly: boolean): any;
64
70
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Drop } from '../drop/drop';
2
- interface ScopeObject extends Record<string, any> {
2
+ export interface ScopeObject extends Record<string | number | symbol, any> {
3
3
  toLiquid?: () => any;
4
4
  }
5
5
  export type Scope = ScopeObject | Drop;
6
- export {};
6
+ export declare function createScope(from?: ScopeObject): ScopeObject;
@@ -1,5 +1,5 @@
1
1
  import { EmptyDrop } from '../drop';
2
2
  export declare class BlankDrop extends EmptyDrop {
3
- equals(value: any): boolean;
3
+ equals(value: any): Generator<unknown, boolean, any>;
4
4
  static is(value: unknown): boolean;
5
5
  }
@@ -1,10 +1,11 @@
1
+ import { Emitter } from '../emitters';
1
2
  import { Drop } from './drop';
2
3
  export declare class BlockDrop extends Drop {
3
4
  private superBlockRender;
4
- constructor(superBlockRender?: () => Iterable<any>);
5
+ constructor(superBlockRender?: (emitter: Emitter) => IterableIterator<unknown> | string);
5
6
  /**
6
7
  * Provide parent access in child block by
7
8
  * {{ block.super }}
8
9
  */
9
- super(): Iterable<any>;
10
+ super(): IterableIterator<unknown>;
10
11
  }
@@ -1,8 +1,14 @@
1
+ /**
2
+ * Comparison methods may return a boolean, a promise, or a generator.
3
+ * Operators yield the result, so sync implementations stay valid and async
4
+ * `valueOf()` can be awaited with `yield`.
5
+ */
6
+ export type ComparableResult = boolean | Promise<boolean> | Generator<unknown, boolean, any>;
1
7
  export interface Comparable {
2
- equals: (rhs: any) => boolean;
3
- gt: (rhs: any) => boolean;
4
- geq: (rhs: any) => boolean;
5
- lt: (rhs: any) => boolean;
6
- leq: (rhs: any) => boolean;
8
+ equals: (rhs: any) => ComparableResult;
9
+ gt: (rhs: any) => ComparableResult;
10
+ geq: (rhs: any) => ComparableResult;
11
+ lt: (rhs: any) => ComparableResult;
12
+ leq: (rhs: any) => ComparableResult;
7
13
  }
8
14
  export declare function isComparable(arg: any): arg is Comparable;
@@ -1,3 +1,5 @@
1
+ import { Context } from '../context';
1
2
  export declare abstract class Drop {
2
- liquidMethodMissing(key: string | number): Promise<any> | any;
3
+ [key: string]: any;
4
+ liquidMethodMissing(key: string | number, context: Context): Promise<any> | any;
3
5
  }
@@ -1,7 +1,7 @@
1
1
  import { Drop } from './drop';
2
2
  import { Comparable } from './comparable';
3
3
  export declare class EmptyDrop extends Drop implements Comparable {
4
- equals(value: any): boolean;
4
+ equals(value: any): Generator<unknown, boolean, any>;
5
5
  gt(): boolean;
6
6
  geq(): boolean;
7
7
  lt(): boolean;
@@ -1,7 +1,7 @@
1
1
  import { Drop } from './drop';
2
2
  import { Comparable } from './comparable';
3
3
  export declare class NullDrop extends Drop implements Comparable {
4
- equals(value: any): boolean;
4
+ equals(value: any): Generator<unknown, boolean, any>;
5
5
  gt(): boolean;
6
6
  geq(): boolean;
7
7
  lt(): boolean;
@@ -5,7 +5,7 @@ export declare const last: (this: unknown, v: any) => any;
5
5
  export declare const first: (this: unknown, v: any) => any;
6
6
  export declare const reverse: (this: unknown, v: any[]) => any;
7
7
  export declare function sort<T>(this: FilterImpl, arr: T[], property?: string): IterableIterator<unknown>;
8
- export declare function sort_natural<T>(this: FilterImpl, input: T[], property?: string): any[];
8
+ export declare function sort_natural<T>(this: FilterImpl, arr: T[], property?: string): IterableIterator<unknown>;
9
9
  export declare const size: (v: string | any[]) => number;
10
10
  export declare function map(this: FilterImpl, arr: Scope[], property: string): IterableIterator<unknown>;
11
11
  export declare function sum(this: FilterImpl, arr: Scope[], property?: string): IterableIterator<unknown>;
@@ -13,14 +13,20 @@ export declare function compact<T>(this: FilterImpl, arr: T[]): any[];
13
13
  export declare function concat<T1, T2>(this: FilterImpl, v: T1[], arg?: T2[]): (T1 | T2)[];
14
14
  export declare function push<T>(this: FilterImpl, v: T[], arg: T): T[];
15
15
  export declare function unshift<T>(this: FilterImpl, v: T[], arg: T): T[];
16
- export declare function pop<T>(v: T[]): T[];
16
+ export declare function pop<T>(this: FilterImpl, v: T[]): T[];
17
17
  export declare function shift<T>(this: FilterImpl, v: T[]): T[];
18
18
  export declare function slice<T>(this: FilterImpl, v: T[] | string, begin: number, length?: number): T[] | string;
19
19
  export declare function where<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
20
+ export declare function reject<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
20
21
  export declare function where_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
22
+ export declare function reject_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
21
23
  export declare function group_by<T extends object>(this: FilterImpl, arr: T[], property: string): IterableIterator<unknown>;
22
24
  export declare function group_by_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
23
- export declare function find<T extends object>(this: FilterImpl, arr: T[], property: string, expected: string): IterableIterator<unknown>;
25
+ export declare function has<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
26
+ export declare function has_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
27
+ export declare function find_index<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
28
+ export declare function find_index_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
29
+ export declare function find<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
24
30
  export declare function find_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
25
31
  export declare function uniq<T>(this: FilterImpl, arr: T[]): T[];
26
32
  export declare function sample<T>(this: FilterImpl, v: T[] | string, count?: number): T | string | (T | string)[];
@@ -0,0 +1,2 @@
1
+ export declare function base64Encode(str: string): string;
2
+ export declare function base64Decode(str: string): string;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Base64 related filters
3
+ *
4
+ * Implements base64_encode and base64_decode filters for Shopify compatibility
5
+ */
6
+ /// <reference types="node" />
7
+ import { FilterImpl } from '../template';
8
+ export declare function base64_encode(this: FilterImpl, value: string | Buffer): string;
9
+ export declare function base64_decode(this: FilterImpl, value: string): string;
@@ -0,0 +1,2 @@
1
+ export declare function sha256(str: string): string;
2
+ export declare function hmacSha256(str: string, key: string): string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Crypto related filters
3
+ *
4
+ * Implements sha256 and hmac_sha256 filters for Shopify compatibility
5
+ */
6
+ import { FilterImpl } from '../template';
7
+ export declare function sha256(this: FilterImpl, value: unknown): string | Promise<string>;
8
+ export declare function hmac_sha256(this: FilterImpl, value: unknown, key: unknown): string | Promise<string>;
@@ -5,7 +5,7 @@ export declare const ceil: (this: unknown, x: number) => any;
5
5
  export declare const divided_by: (this: unknown, dividend: number, divisor: number, integerArithmetic?: any) => any;
6
6
  export declare const floor: (this: unknown, x: number) => any;
7
7
  export declare const minus: (this: unknown, v: number, arg: number) => any;
8
+ export declare const plus: (this: unknown, lhs: number, rhs: number) => any;
8
9
  export declare const modulo: (this: unknown, v: number, arg: number) => any;
9
10
  export declare const times: (this: unknown, v: number, arg: number) => any;
10
11
  export declare function round(v: number, arg?: number): number;
11
- export declare function plus(v: number, arg: number): number;