Comparing version 10.8.4 to 10.9.0
export * from './tokenizer'; | ||
export * from './parser'; | ||
export * from './parse-stream'; | ||
export * from './parse-string-literal'; | ||
export * from './token-kind'; |
@@ -1,3 +0,3 @@ | ||
import { FilteredValueToken, TagToken, HTMLToken, HashToken, QuotedToken, LiquidTagToken, OutputToken, ValueToken, Token, RangeToken, FilterToken, TopLevelToken, OperatorToken, IdentifierToken } from '../tokens'; | ||
import { TokenizationError } from '../util'; | ||
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'; | ||
@@ -14,2 +14,3 @@ import { NormalizedFullOptions } from '../liquid-options'; | ||
private opTrie; | ||
private literalTrie; | ||
constructor(input: string, operators?: Operators, file?: string | undefined, range?: [number, number] | undefined); | ||
@@ -19,2 +20,3 @@ readExpression(): Expression; | ||
readOperator(): OperatorToken | undefined; | ||
matchTrie<T>(trie: Trie<T>): number; | ||
readFilteredValue(): FilteredValueToken; | ||
@@ -45,6 +47,8 @@ readFilters(): FilterToken[]; | ||
remaining(): string; | ||
advance(i?: number): void; | ||
advance(step?: number): void; | ||
end(): boolean; | ||
readTo(end: string): number; | ||
readValue(): ValueToken | undefined; | ||
readNumber(): NumberToken | undefined; | ||
readLiteral(): LiteralToken | undefined; | ||
readRange(): RangeToken | undefined; | ||
@@ -51,0 +55,0 @@ readValueOrThrow(): ValueToken; |
@@ -1,2 +0,2 @@ | ||
import { Token, QuotedToken } from '../tokens'; | ||
import { QuotedToken, Token } from '../tokens'; | ||
import type { Context } from '../context'; | ||
@@ -3,0 +3,0 @@ export declare class Expression { |
import { Token } from './token'; | ||
import { LiteralValue } from '../util'; | ||
export declare class LiteralToken extends Token { | ||
@@ -7,4 +8,5 @@ input: string; | ||
file?: string | undefined; | ||
content: LiteralValue; | ||
literal: string; | ||
constructor(input: string, begin: number, end: number, file?: string | undefined); | ||
} |
import { Token } from './token'; | ||
import { IdentifierToken } from './identifier-token'; | ||
export declare class NumberToken extends Token { | ||
whole: IdentifierToken; | ||
decimal?: IdentifierToken | undefined; | ||
constructor(whole: IdentifierToken, decimal?: IdentifierToken | undefined); | ||
input: string; | ||
begin: number; | ||
end: number; | ||
file?: string | undefined; | ||
content: number; | ||
constructor(input: string, begin: number, end: number, file?: string | undefined); | ||
} |
import { Token } from './token'; | ||
import { LiteralToken } from './literal-token'; | ||
import { ValueToken } from './value-token'; | ||
import { IdentifierToken } from './identifier-token'; | ||
import { NumberToken } from './number-token'; | ||
import { RangeToken } from './range-token'; | ||
import { QuotedToken } from './quoted-token'; | ||
export declare class PropertyAccessToken extends Token { | ||
variable: IdentifierToken | QuotedToken; | ||
props: (IdentifierToken | QuotedToken | PropertyAccessToken)[]; | ||
propertyName: string; | ||
constructor(variable: IdentifierToken | QuotedToken, props: (IdentifierToken | QuotedToken | PropertyAccessToken)[], end: number); | ||
variable: QuotedToken | RangeToken | LiteralToken | NumberToken | undefined; | ||
props: (ValueToken | IdentifierToken)[]; | ||
constructor(variable: QuotedToken | RangeToken | LiteralToken | NumberToken | undefined, props: (ValueToken | IdentifierToken)[], input: string, begin: number, end: number, file?: string); | ||
} |
@@ -7,3 +7,4 @@ import { Token } from './token'; | ||
file?: string | undefined; | ||
readonly content: string; | ||
constructor(input: string, begin: number, end: number, file?: string | undefined); | ||
} |
import { RangeToken } from './range-token'; | ||
import { LiteralToken } from './literal-token'; | ||
import { NumberToken } from './number-token'; | ||
import { QuotedToken } from './quoted-token'; | ||
import { PropertyAccessToken } from './property-access-token'; | ||
export type ValueToken = RangeToken | LiteralToken | QuotedToken | PropertyAccessToken; | ||
export type ValueToken = RangeToken | LiteralToken | QuotedToken | PropertyAccessToken | NumberToken; |
@@ -9,2 +9,3 @@ import { Token } from '../tokens/token'; | ||
protected update(): void; | ||
static is(obj: unknown): obj is LiquidError; | ||
} | ||
@@ -11,0 +12,0 @@ export declare class TokenizationError extends LiquidError { |
@@ -10,1 +10,3 @@ import { BlankDrop, EmptyDrop, NullDrop } from '../drop'; | ||
}; | ||
export type LiteralKey = keyof typeof literalValues; | ||
export type LiteralValue = typeof literalValues[LiteralKey]; |
@@ -1,12 +0,14 @@ | ||
import { Operators, OperatorHandler } from '../render/operator'; | ||
interface TrieLeafNode { | ||
handler: OperatorHandler; | ||
interface TrieInput<T> { | ||
[key: string]: T; | ||
} | ||
interface TrieLeafNode<T> { | ||
data: T; | ||
end: true; | ||
needBoundary?: true; | ||
} | ||
export interface Trie { | ||
[key: string]: Trie | TrieLeafNode; | ||
export interface Trie<T> { | ||
[key: string]: Trie<T> | TrieLeafNode<T>; | ||
} | ||
export type TrieNode = Trie | TrieLeafNode; | ||
export declare function createTrie(operators: Operators): Trie; | ||
export type TrieNode<T> = Trie<T> | TrieLeafNode<T>; | ||
export declare function createTrie<T = any>(input: TrieInput<T>): Trie<T>; | ||
export {}; |
@@ -15,2 +15,3 @@ export declare const toString: () => string; | ||
export declare function isNil(value: any): boolean; | ||
export declare function isUndefined(value: any): boolean; | ||
export declare function isArray(value: any): value is any[]; | ||
@@ -17,0 +18,0 @@ export declare function isIterable(value: any): value is Iterable<any>; |
{ | ||
"name": "liquidjs", | ||
"version": "10.8.4", | ||
"version": "10.9.0", | ||
"description": "A simple, expressive and safe Shopify / Github Pages compatible template engine in pure JavaScript.", | ||
@@ -5,0 +5,0 @@ "main": "dist/liquid.node.cjs.js", |
@@ -14,3 +14,3 @@ # liquidjs | ||
* Please star [LiquidJS on GitHub][github]! | ||
* Support [LiquidJS on Open Collective][oc] or [Patreon][patreon] | ||
* Financial support via [LiquidJS on Open Collective][oc], or [Github Sponsors](https://github.com/sponsors/harttle) | ||
@@ -54,15 +54,23 @@ <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> | ||
## Related Projects | ||
## Who's Using LiquidJS? | ||
* [@11ty/eleventy](https://www.npmjs.com/package/@11ty/eleventy): A simpler static site generator. An alternative to Jekyll. Written in JavaScript. Transforms a directory of templates (of varying types) into HTML. | ||
* [gulp-liquidjs](https://www.npmjs.com/package/@tuanpham-dev/gulp-liquidjs): A shopify compatible Liquid template engine for Gulp using liquidjs. | ||
* [grunt-liquify](https://www.npmjs.com/package/grunt-liquify): A Grunt task to process Liquid using liquidjs. Use it to add Liquid magic to your scripts and css assets. | ||
* [react-liquid](https://github.com/aquibm/react-liquid#readme): Liquid templating language component for React | ||
- [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. | ||
Feel free to create a PR or contact me to add your use case into this list! | ||
## Financial Support | ||
If you love LiquidJS or your company is using LiquidJS? Please consider [support us on Open Collective or Patreon][financial-support]. | ||
If you love LiquidJS or your company is using LiquidJS, please consider [financial support][financial-support]. | ||
### Backers | ||
If you personally like LiquidJS and find it useful to you, you can buy me a coffee! | ||
If you personally like LiquidJS and find it useful to you, buy me a coffee!๐ | ||
@@ -166,2 +174,10 @@ <img src="https://opencollective.com/liquidjs/backers.svg?avatarHeight=72"> | ||
</tr> | ||
<tr> | ||
<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><br /><a href="#financial-Checkout-Blocks" title="Financial">๐ต</a></td> | ||
<td align="center" valign="top" width="14.28%"><a href="https://www.dropkiq.com/"><img src="https://avatars.githubusercontent.com/u/69064?v=4?s=100" width="100px;" alt="Adam Darrah"/><br /><sub><b>Adam Darrah</b></sub></a><br /><a href="#financial-akdarrah" title="Financial">๐ต</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><br /><a href="#financial-11ty" title="Financial">๐ต</a></td> | ||
<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> | ||
</tr> | ||
</tbody> | ||
@@ -180,5 +196,4 @@ </table> | ||
[github]: https://github.com/harttle/liquidjs | ||
[patreon]: https://www.patreon.com/harttle | ||
[oc]: https://opencollective.com/liquidjs/ | ||
[contribution]: https://liquidjs.com/tutorials/contribution-guidelines.html | ||
[financial-support]: https://liquidjs.com/tutorials/contribution-guidelines.html#Financial-Support |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1281101
17714
196
150