@skeptools/skep-organization-project 0.0.14 → 0.0.16

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 (202) hide show
  1. package/.jsii +2157 -5
  2. package/API.md +2111 -1754
  3. package/lib/index.js +7 -3
  4. package/lib/skep-organization-project.js +6 -6
  5. package/node_modules/commander/LICENSE +22 -0
  6. package/node_modules/commander/Readme.md +1134 -0
  7. package/node_modules/commander/esm.mjs +16 -0
  8. package/node_modules/commander/index.js +27 -0
  9. package/node_modules/commander/lib/argument.js +147 -0
  10. package/node_modules/commander/lib/command.js +2179 -0
  11. package/node_modules/commander/lib/error.js +45 -0
  12. package/node_modules/commander/lib/help.js +464 -0
  13. package/node_modules/commander/lib/option.js +331 -0
  14. package/node_modules/commander/lib/suggestSimilar.js +100 -0
  15. package/node_modules/commander/package-support.json +16 -0
  16. package/node_modules/commander/package.json +80 -0
  17. package/node_modules/commander/typings/index.d.ts +889 -0
  18. package/node_modules/liquidjs/README.md +135 -75
  19. package/node_modules/liquidjs/bin/liquid.js +128 -13
  20. package/node_modules/liquidjs/dist/build/fs-impl-browser.spec.d.ts +1 -0
  21. package/node_modules/liquidjs/dist/{emitters → build}/streamed-emitter-browser.d.ts +1 -1
  22. package/node_modules/liquidjs/dist/build/streamed-emitter-browser.spec.d.ts +1 -0
  23. package/node_modules/liquidjs/dist/cache/cache.d.ts +1 -1
  24. package/node_modules/liquidjs/dist/cache/index.d.ts +2 -0
  25. package/node_modules/liquidjs/dist/cache/lru.spec.d.ts +1 -0
  26. package/node_modules/liquidjs/dist/context/block-mode.d.ts +1 -2
  27. package/node_modules/liquidjs/dist/context/context.d.ts +12 -4
  28. package/node_modules/liquidjs/dist/context/context.spec.d.ts +1 -0
  29. package/node_modules/liquidjs/dist/context/index.d.ts +3 -0
  30. package/node_modules/liquidjs/dist/context/scope.d.ts +3 -3
  31. package/node_modules/liquidjs/dist/drop/blank-drop.d.ts +1 -1
  32. package/node_modules/liquidjs/dist/drop/drop.d.ts +1 -1
  33. package/node_modules/liquidjs/dist/drop/index.d.ts +7 -0
  34. package/node_modules/liquidjs/dist/emitters/index.d.ts +4 -0
  35. package/node_modules/liquidjs/dist/emitters/keeping-type-emitter.d.ts +1 -1
  36. package/node_modules/liquidjs/dist/filters/array.d.ts +26 -0
  37. package/node_modules/liquidjs/dist/filters/date.d.ts +6 -0
  38. package/node_modules/liquidjs/dist/filters/html.d.ts +6 -0
  39. package/node_modules/liquidjs/dist/filters/index.d.ts +2 -0
  40. package/node_modules/liquidjs/dist/filters/math.d.ts +11 -0
  41. package/node_modules/liquidjs/dist/filters/misc.d.ts +18 -0
  42. package/node_modules/liquidjs/dist/filters/string.d.ts +27 -0
  43. package/node_modules/liquidjs/dist/filters/url.d.ts +14 -0
  44. package/node_modules/liquidjs/dist/fs/fs-impl.spec.d.ts +1 -0
  45. package/node_modules/liquidjs/dist/fs/index.d.ts +2 -0
  46. package/node_modules/liquidjs/dist/fs/loader.spec.d.ts +1 -0
  47. package/node_modules/liquidjs/dist/fs/map-fs.d.ts +13 -0
  48. package/node_modules/liquidjs/dist/fs/map-fs.spec.d.ts +1 -0
  49. package/node_modules/liquidjs/dist/fs/node-require.d.ts +1 -2
  50. package/node_modules/liquidjs/dist/index.d.ts +15 -0
  51. package/node_modules/liquidjs/dist/liquid-options.d.ts +41 -12
  52. package/node_modules/liquidjs/dist/liquid-options.spec.d.ts +1 -0
  53. package/node_modules/liquidjs/dist/liquid.browser.min.js +1 -1
  54. package/node_modules/liquidjs/dist/liquid.browser.min.js.map +1 -1
  55. package/node_modules/liquidjs/dist/{liquid.browser.esm.js → liquid.browser.mjs} +3099 -2406
  56. package/node_modules/liquidjs/dist/liquid.browser.umd.js +4172 -3171
  57. package/node_modules/liquidjs/dist/liquid.browser.umd.js.map +1 -1
  58. package/node_modules/liquidjs/dist/liquid.d.ts +25 -26
  59. package/node_modules/liquidjs/dist/liquid.node.js +4252 -0
  60. package/node_modules/liquidjs/dist/{liquid.node.esm.js → liquid.node.mjs} +3054 -2365
  61. package/node_modules/liquidjs/dist/parser/filter-arg.d.ts +2 -2
  62. package/node_modules/liquidjs/dist/parser/index.d.ts +4 -0
  63. package/node_modules/liquidjs/dist/parser/parse-stream.d.ts +3 -4
  64. package/node_modules/liquidjs/dist/parser/parse-stream.spec.d.ts +1 -0
  65. package/node_modules/liquidjs/dist/parser/parser.d.ts +7 -9
  66. package/node_modules/liquidjs/dist/parser/parser.spec.d.ts +1 -0
  67. package/node_modules/liquidjs/dist/parser/token-kind.d.ts +1 -0
  68. package/node_modules/liquidjs/dist/parser/tokenizer.d.ts +25 -28
  69. package/node_modules/liquidjs/dist/parser/tokenizer.spec.d.ts +1 -0
  70. package/node_modules/liquidjs/dist/parser/whitespace-ctrl.d.ts +1 -1
  71. package/node_modules/liquidjs/dist/render/boolean.spec.d.ts +1 -0
  72. package/node_modules/liquidjs/dist/render/expression.d.ts +4 -8
  73. package/node_modules/liquidjs/dist/render/expression.spec.d.ts +1 -0
  74. package/node_modules/liquidjs/dist/render/index.d.ts +4 -0
  75. package/node_modules/liquidjs/dist/render/operator.d.ts +6 -4
  76. package/node_modules/liquidjs/dist/render/render.d.ts +3 -3
  77. package/node_modules/liquidjs/dist/render/render.spec.d.ts +1 -0
  78. package/node_modules/liquidjs/dist/render/string.spec.d.ts +1 -0
  79. package/node_modules/liquidjs/dist/tags/assign.d.ts +7 -0
  80. package/node_modules/liquidjs/dist/tags/block.d.ts +9 -0
  81. package/node_modules/liquidjs/dist/tags/break.d.ts +4 -0
  82. package/node_modules/liquidjs/dist/tags/capture.d.ts +9 -0
  83. package/node_modules/liquidjs/dist/tags/case.d.ts +12 -0
  84. package/node_modules/liquidjs/dist/tags/comment.d.ts +5 -0
  85. package/node_modules/liquidjs/dist/tags/continue.d.ts +4 -0
  86. package/node_modules/liquidjs/dist/tags/cycle.d.ts +7 -0
  87. package/node_modules/liquidjs/dist/tags/decrement.d.ts +6 -0
  88. package/node_modules/liquidjs/dist/tags/echo.d.ts +6 -0
  89. package/node_modules/liquidjs/dist/tags/for.d.ts +11 -0
  90. package/node_modules/liquidjs/dist/tags/if.d.ts +11 -0
  91. package/node_modules/liquidjs/dist/tags/include.d.ts +8 -0
  92. package/node_modules/liquidjs/dist/tags/increment.d.ts +6 -0
  93. package/node_modules/liquidjs/dist/tags/index.d.ts +24 -0
  94. package/node_modules/liquidjs/dist/tags/inline-comment.d.ts +5 -0
  95. package/node_modules/liquidjs/dist/tags/layout.d.ts +10 -0
  96. package/node_modules/liquidjs/dist/tags/liquid.d.ts +7 -0
  97. package/node_modules/liquidjs/dist/tags/raw.d.ts +6 -0
  98. package/node_modules/liquidjs/dist/tags/render.d.ts +18 -0
  99. package/node_modules/liquidjs/dist/tags/tablerow.d.ts +10 -0
  100. package/node_modules/liquidjs/dist/tags/unless.d.ts +12 -0
  101. package/node_modules/liquidjs/dist/template/filter-impl-options.d.ts +14 -0
  102. package/node_modules/liquidjs/dist/template/filter.d.ts +15 -0
  103. package/node_modules/liquidjs/dist/template/filter.spec.d.ts +1 -0
  104. package/node_modules/liquidjs/dist/template/hash.d.ts +17 -0
  105. package/node_modules/liquidjs/dist/template/hash.spec.d.ts +1 -0
  106. package/node_modules/liquidjs/dist/template/html.d.ts +4 -5
  107. package/node_modules/liquidjs/dist/template/index.d.ts +10 -0
  108. package/node_modules/liquidjs/dist/template/output.d.ts +3 -3
  109. package/node_modules/liquidjs/dist/template/output.spec.d.ts +1 -0
  110. package/node_modules/liquidjs/dist/template/tag-options-adapter.d.ts +10 -0
  111. package/node_modules/liquidjs/dist/template/tag.d.ts +18 -0
  112. package/node_modules/liquidjs/dist/template/value.d.ts +8 -6
  113. package/node_modules/liquidjs/dist/template/value.spec.d.ts +1 -0
  114. package/node_modules/liquidjs/dist/tokens/delimited-token.d.ts +4 -3
  115. package/node_modules/liquidjs/dist/tokens/filtered-value-token.d.ts +17 -0
  116. package/node_modules/liquidjs/dist/tokens/identifier-token.d.ts +0 -1
  117. package/node_modules/liquidjs/dist/tokens/index.d.ts +18 -0
  118. package/node_modules/liquidjs/dist/tokens/liquid-tag-token.d.ts +5 -0
  119. package/node_modules/liquidjs/dist/tokens/literal-token.d.ts +2 -0
  120. package/node_modules/liquidjs/dist/tokens/number-token.d.ts +6 -4
  121. package/node_modules/liquidjs/dist/tokens/operator-token.d.ts +18 -1
  122. package/node_modules/liquidjs/dist/tokens/property-access-token.d.ts +7 -4
  123. package/node_modules/liquidjs/dist/tokens/quoted-token.d.ts +1 -0
  124. package/node_modules/liquidjs/dist/tokens/tag-token.d.ts +4 -2
  125. package/node_modules/liquidjs/dist/tokens/token.d.ts +1 -1
  126. package/node_modules/liquidjs/dist/tokens/top-level-token.d.ts +4 -0
  127. package/node_modules/liquidjs/dist/tokens/value-token.d.ts +2 -1
  128. package/node_modules/liquidjs/dist/util/assert.d.ts +1 -0
  129. package/node_modules/liquidjs/dist/util/assert.spec.d.ts +1 -0
  130. package/node_modules/liquidjs/dist/util/async.d.ts +0 -1
  131. package/node_modules/liquidjs/dist/util/async.spec.d.ts +1 -0
  132. package/node_modules/liquidjs/dist/util/character.d.ts +3 -1
  133. package/node_modules/liquidjs/dist/util/error.d.ts +9 -3
  134. package/node_modules/liquidjs/dist/util/error.spec.d.ts +1 -0
  135. package/node_modules/liquidjs/dist/util/index.d.ts +12 -0
  136. package/node_modules/liquidjs/dist/util/intl.d.ts +6 -0
  137. package/node_modules/liquidjs/dist/util/limiter.d.ts +8 -0
  138. package/node_modules/liquidjs/dist/util/liquid-date.d.ts +39 -6
  139. package/node_modules/liquidjs/dist/util/liquid-date.spec.d.ts +1 -0
  140. package/node_modules/liquidjs/dist/util/literal.d.ts +3 -3
  141. package/node_modules/liquidjs/dist/util/operator-trie.d.ts +13 -4
  142. package/node_modules/liquidjs/dist/util/performance.d.ts +5 -0
  143. package/node_modules/liquidjs/dist/util/performance.spec.d.ts +1 -0
  144. package/node_modules/liquidjs/dist/util/strftime.d.ts +1 -1
  145. package/node_modules/liquidjs/dist/util/strftime.spec.d.ts +1 -0
  146. package/node_modules/liquidjs/dist/util/type-guards.d.ts +1 -11
  147. package/node_modules/liquidjs/dist/util/type-guards.spec.d.ts +1 -0
  148. package/node_modules/liquidjs/dist/util/underscore.d.ts +8 -9
  149. package/node_modules/liquidjs/dist/util/underscore.spec.d.ts +1 -0
  150. package/node_modules/liquidjs/package.json +41 -42
  151. package/package.json +37 -32
  152. package/.gitattributes +0 -23
  153. package/.projenrc.ts +0 -31
  154. package/node_modules/liquidjs/CHANGELOG.md +0 -1015
  155. package/node_modules/liquidjs/dist/builtin/filters/array.d.ts +0 -15
  156. package/node_modules/liquidjs/dist/builtin/filters/date.d.ts +0 -2
  157. package/node_modules/liquidjs/dist/builtin/filters/html.d.ts +0 -4
  158. package/node_modules/liquidjs/dist/builtin/filters/index.d.ts +0 -7
  159. package/node_modules/liquidjs/dist/builtin/filters/math.d.ts +0 -11
  160. package/node_modules/liquidjs/dist/builtin/filters/misc.d.ts +0 -5
  161. package/node_modules/liquidjs/dist/builtin/filters/string.d.ts +0 -16
  162. package/node_modules/liquidjs/dist/builtin/filters/url.d.ts +0 -2
  163. package/node_modules/liquidjs/dist/builtin/tags/assign.d.ts +0 -3
  164. package/node_modules/liquidjs/dist/builtin/tags/block.d.ts +0 -8
  165. package/node_modules/liquidjs/dist/builtin/tags/break.d.ts +0 -5
  166. package/node_modules/liquidjs/dist/builtin/tags/capture.d.ts +0 -3
  167. package/node_modules/liquidjs/dist/builtin/tags/case.d.ts +0 -3
  168. package/node_modules/liquidjs/dist/builtin/tags/comment.d.ts +0 -3
  169. package/node_modules/liquidjs/dist/builtin/tags/continue.d.ts +0 -5
  170. package/node_modules/liquidjs/dist/builtin/tags/cycle.d.ts +0 -3
  171. package/node_modules/liquidjs/dist/builtin/tags/decrement.d.ts +0 -3
  172. package/node_modules/liquidjs/dist/builtin/tags/echo.d.ts +0 -3
  173. package/node_modules/liquidjs/dist/builtin/tags/for.d.ts +0 -3
  174. package/node_modules/liquidjs/dist/builtin/tags/if.d.ts +0 -3
  175. package/node_modules/liquidjs/dist/builtin/tags/include.d.ts +0 -3
  176. package/node_modules/liquidjs/dist/builtin/tags/increment.d.ts +0 -3
  177. package/node_modules/liquidjs/dist/builtin/tags/index.d.ts +0 -5
  178. package/node_modules/liquidjs/dist/builtin/tags/inline-comment.d.ts +0 -3
  179. package/node_modules/liquidjs/dist/builtin/tags/layout.d.ts +0 -3
  180. package/node_modules/liquidjs/dist/builtin/tags/liquid.d.ts +0 -3
  181. package/node_modules/liquidjs/dist/builtin/tags/raw.d.ts +0 -3
  182. package/node_modules/liquidjs/dist/builtin/tags/render.d.ts +0 -13
  183. package/node_modules/liquidjs/dist/builtin/tags/tablerow.d.ts +0 -3
  184. package/node_modules/liquidjs/dist/builtin/tags/unless.d.ts +0 -3
  185. package/node_modules/liquidjs/dist/liquid.node.cjs.js +0 -4820
  186. package/node_modules/liquidjs/dist/parser/match-operator.d.ts +0 -2
  187. package/node_modules/liquidjs/dist/template/filter/filter-impl-options.d.ts +0 -4
  188. package/node_modules/liquidjs/dist/template/filter/filter-impl.d.ts +0 -6
  189. package/node_modules/liquidjs/dist/template/filter/filter-map.d.ts +0 -13
  190. package/node_modules/liquidjs/dist/template/filter/filter.d.ts +0 -12
  191. package/node_modules/liquidjs/dist/template/tag/hash.d.ts +0 -17
  192. package/node_modules/liquidjs/dist/template/tag/tag-impl-options.d.ts +0 -10
  193. package/node_modules/liquidjs/dist/template/tag/tag-impl.d.ts +0 -6
  194. package/node_modules/liquidjs/dist/template/tag/tag-map.d.ts +0 -6
  195. package/node_modules/liquidjs/dist/template/tag/tag.d.ts +0 -10
  196. package/node_modules/liquidjs/dist/tokens/toplevel-token.d.ts +0 -4
  197. package/node_modules/liquidjs/dist/types.d.ts +0 -30
  198. package/node_modules/liquidjs/dist/util/collection.d.ts +0 -2
  199. package/node_modules/liquidjs/dist/util/timezone-date.d.ts +0 -39
  200. /package/node_modules/liquidjs/dist/{fs/browser.d.ts → build/fs-impl-browser.d.ts} +0 -0
  201. /package/node_modules/liquidjs/dist/fs/{node.d.ts → fs-impl.d.ts} +0 -0
  202. /package/node_modules/liquidjs/dist/{parser/parse-string-literal.d.ts → render/string.d.ts} +0 -0
@@ -1,13 +1,15 @@
1
- import { Expression } from '../render/expression';
2
- import { Filter } from './filter/filter';
3
- import { Context } from '../context/context';
4
- import { Liquid } from '../liquid';
1
+ import { Filter } from './filter';
2
+ import { Expression } from '../render';
3
+ import type { FilteredValueToken } from '../tokens';
4
+ import type { Liquid } from '../liquid';
5
+ import type { Context } from '../context';
5
6
  export declare class Value {
6
7
  readonly filters: Filter[];
7
8
  readonly initial: Expression;
8
9
  /**
9
10
  * @param str the value to be valuated, eg.: "foobar" | truncate: 3
10
11
  */
11
- constructor(str: string, liquid: Liquid);
12
- value(ctx: Context, lenient: boolean): Generator<unknown, unknown, unknown>;
12
+ constructor(input: string | FilteredValueToken, liquid: Liquid);
13
+ value(ctx: Context, lenient?: boolean): Generator<unknown, unknown, unknown>;
14
+ private getFilter;
13
15
  }
@@ -1,8 +1,9 @@
1
1
  import { Token } from './token';
2
- import { TokenKind } from '../parser/token-kind';
2
+ import { TokenKind } from '../parser';
3
3
  export declare abstract class DelimitedToken extends Token {
4
4
  trimLeft: boolean;
5
5
  trimRight: boolean;
6
- content: string;
7
- constructor(kind: TokenKind, content: string, input: string, begin: number, end: number, trimLeft: boolean, trimRight: boolean, file?: string);
6
+ contentRange: [number, number];
7
+ constructor(kind: TokenKind, [contentBegin, contentEnd]: [number, number], input: string, begin: number, end: number, trimLeft: boolean, trimRight: boolean, file?: string);
8
+ get content(): string;
8
9
  }
@@ -0,0 +1,17 @@
1
+ import { Token } from './token';
2
+ import { FilterToken } from './filter-token';
3
+ import { Expression } from '../render';
4
+ /**
5
+ * value expression with optional filters
6
+ * e.g.
7
+ * {% assign foo="bar" | append: "coo" %}
8
+ */
9
+ export declare class FilteredValueToken extends Token {
10
+ initial: Expression;
11
+ filters: FilterToken[];
12
+ input: string;
13
+ begin: number;
14
+ end: number;
15
+ file?: string | undefined;
16
+ constructor(initial: Expression, filters: FilterToken[], input: string, begin: number, end: number, file?: string | undefined);
17
+ }
@@ -6,5 +6,4 @@ export declare class IdentifierToken extends Token {
6
6
  file?: string | undefined;
7
7
  content: string;
8
8
  constructor(input: string, begin: number, end: number, file?: string | undefined);
9
- isNumber(allowSign?: boolean): boolean;
10
9
  }
@@ -0,0 +1,18 @@
1
+ export * from './top-level-token';
2
+ export * from './tag-token';
3
+ export * from './output-token';
4
+ export * from './html-token';
5
+ export * from './number-token';
6
+ export * from './identifier-token';
7
+ export * from './literal-token';
8
+ export * from './operator-token';
9
+ export * from './property-access-token';
10
+ export * from './filter-token';
11
+ export * from './hash-token';
12
+ export * from './quoted-token';
13
+ export * from './token';
14
+ export * from './range-token';
15
+ export * from './value-token';
16
+ export * from './liquid-tag-token';
17
+ export * from './delimited-token';
18
+ export * from './filtered-value-token';
@@ -1,7 +1,12 @@
1
1
  import { DelimitedToken } from './delimited-token';
2
2
  import { NormalizedFullOptions } from '../liquid-options';
3
+ import { Tokenizer } from '../parser';
4
+ /**
5
+ * LiquidTagToken is different from TagToken by not having delimiters `{%` or `%}`
6
+ */
3
7
  export declare class LiquidTagToken extends DelimitedToken {
4
8
  name: string;
5
9
  args: string;
10
+ tokenizer: Tokenizer;
6
11
  constructor(input: string, begin: number, end: number, options: NormalizedFullOptions, file?: string);
7
12
  }
@@ -1,9 +1,11 @@
1
1
  import { Token } from './token';
2
+ import { LiteralValue } from '../util';
2
3
  export declare class LiteralToken extends Token {
3
4
  input: string;
4
5
  begin: number;
5
6
  end: number;
6
7
  file?: string | undefined;
8
+ content: LiteralValue;
7
9
  literal: string;
8
10
  constructor(input: string, begin: number, end: number, file?: string | undefined);
9
11
  }
@@ -1,7 +1,9 @@
1
1
  import { Token } from './token';
2
- import { IdentifierToken } from './identifier-token';
3
2
  export declare class NumberToken extends Token {
4
- whole: IdentifierToken;
5
- decimal?: IdentifierToken | undefined;
6
- constructor(whole: IdentifierToken, decimal?: IdentifierToken | undefined);
3
+ input: string;
4
+ begin: number;
5
+ end: number;
6
+ file?: string | undefined;
7
+ content: number;
8
+ constructor(input: string, begin: number, end: number, file?: string | undefined);
7
9
  }
@@ -1,5 +1,9 @@
1
1
  import { Token } from './token';
2
- export declare const precedence: {
2
+ export declare const enum OperatorType {
3
+ Binary = 0,
4
+ Unary = 1
5
+ }
6
+ export declare const operatorPrecedences: {
3
7
  '==': number;
4
8
  '!=': number;
5
9
  '>': number;
@@ -7,9 +11,22 @@ export declare const precedence: {
7
11
  '>=': number;
8
12
  '<=': number;
9
13
  contains: number;
14
+ not: number;
10
15
  and: number;
11
16
  or: number;
12
17
  };
18
+ export declare const operatorTypes: {
19
+ '==': OperatorType;
20
+ '!=': OperatorType;
21
+ '>': OperatorType;
22
+ '<': OperatorType;
23
+ '>=': OperatorType;
24
+ '<=': OperatorType;
25
+ contains: OperatorType;
26
+ not: OperatorType;
27
+ and: OperatorType;
28
+ or: OperatorType;
29
+ };
13
30
  export declare class OperatorToken extends Token {
14
31
  input: string;
15
32
  begin: number;
@@ -1,9 +1,12 @@
1
1
  import { Token } from './token';
2
+ import { LiteralToken } from './literal-token';
3
+ import { ValueToken } from './value-token';
2
4
  import { IdentifierToken } from './identifier-token';
5
+ import { NumberToken } from './number-token';
6
+ import { RangeToken } from './range-token';
3
7
  import { QuotedToken } from './quoted-token';
4
8
  export declare class PropertyAccessToken extends Token {
5
- variable: IdentifierToken | QuotedToken;
6
- props: (IdentifierToken | QuotedToken | PropertyAccessToken)[];
7
- propertyName: string;
8
- constructor(variable: IdentifierToken | QuotedToken, props: (IdentifierToken | QuotedToken | PropertyAccessToken)[], end: number);
9
+ variable: QuotedToken | RangeToken | LiteralToken | NumberToken | undefined;
10
+ props: (ValueToken | IdentifierToken)[];
11
+ constructor(variable: QuotedToken | RangeToken | LiteralToken | NumberToken | undefined, props: (ValueToken | IdentifierToken)[], input: string, begin: number, end: number, file?: string);
9
12
  }
@@ -4,5 +4,6 @@ export declare class QuotedToken extends Token {
4
4
  begin: number;
5
5
  end: number;
6
6
  file?: string | undefined;
7
+ readonly content: string;
7
8
  constructor(input: string, begin: number, end: number, file?: string | undefined);
8
9
  }
@@ -1,7 +1,9 @@
1
1
  import { DelimitedToken } from './delimited-token';
2
- import { NormalizedFullOptions } from '../liquid-options';
2
+ import { Tokenizer } from '../parser';
3
+ import type { NormalizedFullOptions } from '../liquid-options';
3
4
  export declare class TagToken extends DelimitedToken {
4
5
  name: string;
5
- args: string;
6
+ tokenizer: Tokenizer;
6
7
  constructor(input: string, begin: number, end: number, options: NormalizedFullOptions, file?: string);
8
+ get args(): string;
7
9
  }
@@ -1,4 +1,4 @@
1
- import { TokenKind } from '../parser/token-kind';
1
+ import { TokenKind } from '../parser';
2
2
  export declare abstract class Token {
3
3
  kind: TokenKind;
4
4
  input: string;
@@ -0,0 +1,4 @@
1
+ import type { TagToken } from './tag-token';
2
+ import type { HTMLToken } from './html-token';
3
+ import type { OutputToken } from './output-token';
4
+ export type TopLevelToken = TagToken | OutputToken | HTMLToken;
@@ -1,5 +1,6 @@
1
1
  import { RangeToken } from './range-token';
2
2
  import { LiteralToken } from './literal-token';
3
+ import { NumberToken } from './number-token';
3
4
  import { QuotedToken } from './quoted-token';
4
5
  import { PropertyAccessToken } from './property-access-token';
5
- export declare type ValueToken = RangeToken | LiteralToken | QuotedToken | PropertyAccessToken;
6
+ export type ValueToken = RangeToken | LiteralToken | QuotedToken | PropertyAccessToken | NumberToken;
@@ -1 +1,2 @@
1
1
  export declare function assert<T>(predicate: T | null | undefined, message?: string | (() => string)): void;
2
+ export declare function assertEmpty<T>(predicate: T | null | undefined, message?: string): void;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,2 @@
1
1
  export declare function toPromise<T>(val: Generator<unknown, T, unknown> | Promise<T> | T): Promise<T>;
2
2
  export declare function toValueSync<T>(val: Generator<unknown, T, unknown> | T): T;
3
- export declare const toThenable: typeof toPromise;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,10 @@
1
1
  export declare const TYPES: number[];
2
- export declare const IDENTIFIER = 1;
2
+ export declare const WORD = 1;
3
3
  export declare const OPERATOR = 2;
4
4
  export declare const BLANK = 4;
5
5
  export declare const QUOTE = 8;
6
6
  export declare const INLINE_BLANK = 16;
7
7
  export declare const NUMBER = 32;
8
8
  export declare const SIGN = 64;
9
+ export declare const PUNCTUATION = 128;
10
+ export declare function isWord(char: string): boolean;
@@ -1,11 +1,12 @@
1
1
  import { Token } from '../tokens/token';
2
2
  import { Template } from '../template/template';
3
3
  export declare abstract class LiquidError extends Error {
4
- private token;
4
+ token: Token;
5
5
  context: string;
6
- private originalError;
7
- constructor(err: Error, token: Token);
6
+ originalError?: Error;
7
+ constructor(err: Error | string, token: Token);
8
8
  protected update(): void;
9
+ static is(obj: unknown): obj is LiquidError;
9
10
  }
10
11
  export declare class TokenizationError extends LiquidError {
11
12
  constructor(message: string, token: Token);
@@ -17,6 +18,11 @@ export declare class RenderError extends LiquidError {
17
18
  constructor(err: Error, tpl: Template);
18
19
  static is(obj: any): obj is RenderError;
19
20
  }
21
+ export declare class LiquidErrors extends LiquidError {
22
+ errors: RenderError[];
23
+ constructor(errors: RenderError[]);
24
+ static is(obj: any): obj is LiquidErrors;
25
+ }
20
26
  export declare class UndefinedVariableError extends LiquidError {
21
27
  constructor(err: Error, token: Token);
22
28
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ export * from './error';
2
+ export * from './character';
3
+ export * from './assert';
4
+ export * from './literal';
5
+ export * from './underscore';
6
+ export * from './operator-trie';
7
+ export * from './type-guards';
8
+ export * from './async';
9
+ export * from './strftime';
10
+ export * from './liquid-date';
11
+ export * from './limiter';
12
+ export * from './intl';
@@ -0,0 +1,6 @@
1
+ export declare function getDateTimeFormat(): {
2
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): Intl.DateTimeFormat;
3
+ new (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): Intl.DateTimeFormat;
4
+ supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions | undefined): string[];
5
+ readonly prototype: Intl.DateTimeFormat;
6
+ } | undefined;
@@ -0,0 +1,8 @@
1
+ export declare class Limiter {
2
+ private message;
3
+ private base;
4
+ private limit;
5
+ constructor(resource: string, limit: number);
6
+ use(count: number): void;
7
+ check(count: number): void;
8
+ }
@@ -1,9 +1,19 @@
1
1
  /**
2
- * The date interface LiquidJS uses.
3
- * Basically a subset of JavaScript Date,
4
- * it's defined abstractly here to allow different implementation
2
+ * A date implementation with timezone info, just like Ruby date
3
+ *
4
+ * Implementation:
5
+ * - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods
6
+ * - rewrite getTimezoneOffset() to trick strftime
5
7
  */
6
- export interface LiquidDate {
8
+ export declare class LiquidDate {
9
+ private locale;
10
+ private timezoneOffset;
11
+ private timezoneName;
12
+ private date;
13
+ private displayDate;
14
+ private DateTimeFormat;
15
+ timezoneFixed: boolean;
16
+ constructor(init: string | number | Date, locale: string, timezone?: number | string);
7
17
  getTime(): number;
8
18
  getMilliseconds(): number;
9
19
  getSeconds(): number;
@@ -13,7 +23,30 @@ export interface LiquidDate {
13
23
  getDate(): number;
14
24
  getMonth(): number;
15
25
  getFullYear(): number;
26
+ toLocaleString(locale?: string, init?: any): string;
27
+ toLocaleTimeString(locale?: string): string;
28
+ toLocaleDateString(locale?: string): string;
16
29
  getTimezoneOffset(): number;
17
- toLocaleTimeString(): string;
18
- toLocaleDateString(): string;
30
+ getTimeZoneName(): string | undefined;
31
+ getLongMonthName(): string;
32
+ getShortMonthName(): string;
33
+ getLongWeekdayName(): string;
34
+ getShortWeekdayName(): string;
35
+ valid(): boolean;
36
+ private format;
37
+ /**
38
+ * Create a Date object fixed to it's declared Timezone. Both
39
+ * - 2021-08-06T02:29:00.000Z and
40
+ * - 2021-08-06T02:29:00.000+08:00
41
+ * will always be displayed as
42
+ * - 2021-08-06 02:29:00
43
+ * regardless timezoneOffset in JavaScript realm
44
+ *
45
+ * The implementation hack:
46
+ * Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,
47
+ * we create a different Date to trick strftime, it's both simpler and more performant.
48
+ * Given that a template is expected to be parsed fewer times than rendered.
49
+ */
50
+ static createDateFixedToTimezone(dateString: string, locale: string): LiquidDate;
51
+ private static getTimezoneOffset;
19
52
  }
@@ -1,6 +1,4 @@
1
- import { NullDrop } from '../drop/null-drop';
2
- import { EmptyDrop } from '../drop/empty-drop';
3
- import { BlankDrop } from '../drop/blank-drop';
1
+ import { BlankDrop, EmptyDrop, NullDrop } from '../drop';
4
2
  export declare const literalValues: {
5
3
  true: boolean;
6
4
  false: boolean;
@@ -9,3 +7,5 @@ export declare const literalValues: {
9
7
  empty: EmptyDrop;
10
8
  blank: BlankDrop;
11
9
  };
10
+ export type LiteralKey = keyof typeof literalValues;
11
+ export type LiteralValue = typeof literalValues[LiteralKey];
@@ -1,5 +1,14 @@
1
- import { Operators } from '../render/operator';
2
- export interface Trie {
3
- [key: string]: any;
1
+ interface TrieInput<T> {
2
+ [key: string]: T;
4
3
  }
5
- export declare function createTrie(operators: Operators): Trie;
4
+ interface TrieLeafNode<T> {
5
+ data: T;
6
+ end: true;
7
+ needBoundary?: true;
8
+ }
9
+ export interface Trie<T> {
10
+ [key: string]: Trie<T> | TrieLeafNode<T>;
11
+ }
12
+ export type TrieNode<T> = Trie<T> | TrieLeafNode<T>;
13
+ export declare function createTrie<T = any>(input: TrieInput<T>): Trie<T>;
14
+ export {};
@@ -0,0 +1,5 @@
1
+ interface LiquidPerformance {
2
+ now: () => number;
3
+ }
4
+ export declare function getPerformance(): LiquidPerformance;
5
+ export {};
@@ -1,2 +1,2 @@
1
1
  import { LiquidDate } from './liquid-date';
2
- export default function (d: LiquidDate, formatStr: string): string;
2
+ export declare function strftime(d: LiquidDate, formatStr: string): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,14 +1,4 @@
1
- import { OperatorToken } from '../tokens/operator-token';
2
- import { DelimitedToken } from '../tokens/delimited-token';
3
- import { IdentifierToken } from '../tokens/identifier-token';
4
- import { TagToken } from '../tokens/tag-token';
5
- import { HTMLToken } from '../tokens/html-token';
6
- import { OutputToken } from '../tokens/output-token';
7
- import { PropertyAccessToken } from '../tokens/property-access-token';
8
- import { LiteralToken } from '../tokens/literal-token';
9
- import { QuotedToken } from '../tokens/quoted-token';
10
- import { NumberToken } from '../tokens/number-token';
11
- import { RangeToken } from '../tokens/range-token';
1
+ import { RangeToken, NumberToken, QuotedToken, LiteralToken, PropertyAccessToken, OutputToken, HTMLToken, TagToken, IdentifierToken, DelimitedToken, OperatorToken } from '../tokens';
12
2
  export declare function isDelimitedToken(val: any): val is DelimitedToken;
13
3
  export declare function isOperatorToken(val: any): val is OperatorToken;
14
4
  export declare function isHTMLToken(val: any): val is HTMLToken;
@@ -8,19 +8,19 @@ export declare function escapeRegex(str: string): string;
8
8
  export declare function promisify<T1, T2>(fn: (arg1: T1, cb: (err: Error | null, result: T2) => void) => void): (arg1: T1) => Promise<T2>;
9
9
  export declare function promisify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, cb: (err: Error | null, result: T3) => void) => void): (arg1: T1, arg2: T2) => Promise<T3>;
10
10
  export declare function stringify(value: any): string;
11
+ export declare function toEnumerable<T = unknown>(val: any): T[];
12
+ export declare function toArray(val: any): any[];
11
13
  export declare function toValue(value: any): any;
14
+ export declare function toNumber(value: any): number;
12
15
  export declare function isNumber(value: any): value is number;
13
16
  export declare function toLiquid(value: any): any;
14
17
  export declare function isNil(value: any): boolean;
18
+ export declare function isUndefined(value: any): boolean;
15
19
  export declare function isArray(value: any): value is any[];
16
20
  export declare function isIterable(value: any): value is Iterable<any>;
17
- export declare function forOwn<T>(obj: {
21
+ export declare function forOwn<T>(obj: Record<string, T> | undefined, iteratee: ((val: T, key: string, obj: {
18
22
  [key: string]: T;
19
- } | undefined, iteratee: ((val: T, key: string, obj: {
20
- [key: string]: T;
21
- }) => boolean | void)): {
22
- [key: string]: T;
23
- };
23
+ }) => boolean | void)): Record<string, T>;
24
24
  export declare function last<T>(arr: T[]): T;
25
25
  export declare function last(arr: string): string;
26
26
  export declare function isObject(value: any): value is object;
@@ -29,9 +29,8 @@ export declare function padStart(str: any, length: number, ch?: string): any;
29
29
  export declare function padEnd(str: any, length: number, ch?: string): any;
30
30
  export declare function pad(str: any, length: number, ch: string, add: (str: string, ch: string) => string): any;
31
31
  export declare function identify<T>(val: T): T;
32
- export declare function snakeCase(str: string): string;
33
32
  export declare function changeCase(str: string): string;
34
33
  export declare function ellipsis(str: string, N: number): string;
35
- export declare function caseInsensitiveCompare(a: any, b: any): 1 | 0 | -1;
36
- export declare function argumentsToValue<F extends (...args: any) => any>(fn: F): (...args: Parameters<F>) => any;
34
+ export declare function caseInsensitiveCompare(a: any, b: any): 0 | 1 | -1;
35
+ export declare function argumentsToValue<F extends (...args: any) => any, T>(fn: F): (this: T, ...args: Parameters<F>) => any;
37
36
  export declare function escapeRegExp(text: string): string;
@@ -1,26 +1,33 @@
1
1
  {
2
2
  "name": "liquidjs",
3
- "version": "9.43.0",
3
+ "version": "10.18.0",
4
4
  "description": "A simple, expressive and safe Shopify / Github Pages compatible template engine in pure JavaScript.",
5
- "main": "dist/liquid.node.cjs.js",
6
- "module": "dist/liquid.node.esm.js",
7
- "es2015": "dist/liquid.browser.esm.js",
5
+ "main": "dist/liquid.node.js",
6
+ "module": "dist/liquid.node.mjs",
7
+ "es2015": "dist/liquid.browser.mjs",
8
8
  "browser": {
9
- "./dist/liquid.node.cjs.js": "./dist/liquid.browser.umd.js",
10
- "./dist/liquid.node.esm.js": "./dist/liquid.browser.esm.js"
9
+ "./dist/liquid.node.js": "./dist/liquid.browser.umd.js",
10
+ "./dist/liquid.node.mjs": "./dist/liquid.browser.mjs"
11
+ },
12
+ "types": "dist/index.d.ts",
13
+ "engines": {
14
+ "node": ">=14"
11
15
  },
12
- "types": "dist/liquid.d.ts",
13
16
  "scripts": {
14
17
  "lint": "eslint \"**/*.mjs\" \"**/*.ts\" .",
15
- "check": "npm run build && npm test && npm run lint && npm run perf:diff",
16
- "test": "nyc mocha \"test/**/*.ts\"",
17
- "test:e2e": "mocha \"test/e2e/**/*.ts\"",
18
- "perf": "cd benchmark && npm ci && npm start",
18
+ "check": "npm run build && npm run build:docs && npm test && npm run lint && npm run perf:diff",
19
+ "test": "jest",
20
+ "test:coverage": "jest --coverage src test/integration",
21
+ "test:e2e": "jest test/e2e",
22
+ "test:demo": "./test/demo/test.sh",
19
23
  "perf:diff": "bin/perf-diff.sh",
20
24
  "perf:engines": "cd benchmark && npm run engines",
21
- "postversion": "npm run build:dist",
22
- "build": "npm run build:dist && npm run build:docs",
23
- "build:dist": "rollup -c rollup.config.mjs",
25
+ "version": "npm run build && npm test",
26
+ "build": "rollup -c rollup.config.mjs",
27
+ "build:cjs": "BUNDLES=cjs rollup -c rollup.config.mjs",
28
+ "build:min": "BUNDLES=min rollup -c rollup.config.mjs",
29
+ "build:umd": "BUNDLES=umd rollup -c rollup.config.mjs",
30
+ "build:charmap": "./bin/character-gen.js > src/util/character.ts",
24
31
  "build:docs": "bin/build-docs.sh"
25
32
  },
26
33
  "bin": {
@@ -41,9 +48,6 @@
41
48
  "LICENSE",
42
49
  "README.md"
43
50
  ],
44
- "engines": {
45
- "node": ">=4.8.7"
46
- },
47
51
  "keywords": [
48
52
  "liquid",
49
53
  "template engine",
@@ -60,57 +64,53 @@
60
64
  "devDependencies": {
61
65
  "@commitlint/cli": "^12.1.4",
62
66
  "@commitlint/config-conventional": "^8.2.0",
63
- "@semantic-release/changelog": "^3.0.2",
64
- "@semantic-release/commit-analyzer": "^6.1.0",
65
- "@semantic-release/git": "^7.0.8",
66
- "@semantic-release/npm": "^5.1.8",
67
- "@semantic-release/release-notes-generator": "^7.1.4",
67
+ "@semantic-release/changelog": "^6.0.2",
68
+ "@semantic-release/commit-analyzer": "^9.0.2",
69
+ "@semantic-release/git": "^10.0.1",
70
+ "@semantic-release/npm": "^9.0.2",
71
+ "@semantic-release/release-notes-generator": "^10.0.3",
68
72
  "@types/benchmark": "^1.0.31",
69
- "@types/chai": "^4.1.7",
70
- "@types/chai-as-promised": "^7.1.0",
71
73
  "@types/express": "^4.17.2",
74
+ "@types/jest": "^29.4.0",
72
75
  "@types/jsdom": "^12.2.2",
73
- "@types/mocha": "^5.2.6",
74
- "@types/sinon": "^7.0.6",
75
- "@types/sinon-chai": "^3.2.2",
76
+ "@types/node": "^22.3.0",
77
+ "@types/sinon": "^10.0.13",
76
78
  "@types/supertest": "^2.0.7",
77
79
  "@typescript-eslint/eslint-plugin": "^5.6.0",
78
80
  "@typescript-eslint/parser": "^5.6.0",
79
- "all-contributors-cli": "^6.20.0",
81
+ "all-contributors-cli": "^6.24.0",
80
82
  "benchmark": "^2.1.4",
81
- "chai": "^4.2.0",
82
- "chai-as-promised": "^7.1.1",
83
83
  "coveralls": "^3.0.2",
84
84
  "cross-env": "^5.2.0",
85
85
  "eslint": "^7.32.0",
86
86
  "eslint-config-standard": "^12.0.0",
87
87
  "eslint-plugin-deprecation": "^1.3.2",
88
- "eslint-plugin-import": "^2.15.0",
88
+ "eslint-plugin-import": "^2.27.5",
89
89
  "eslint-plugin-mocha": "^5.3.0",
90
90
  "eslint-plugin-node": "^8.0.1",
91
91
  "eslint-plugin-promise": "^4.0.1",
92
92
  "eslint-plugin-standard": "^4.0.0",
93
93
  "express": "^4.16.4",
94
94
  "husky": "^4.2.5",
95
+ "jest": "^29.5.0",
95
96
  "jsdom": "^16.5.0",
96
- "mocha": "^9.0.1",
97
- "nyc": "^15.1.0",
98
- "regenerator-runtime": "^0.12.1",
99
- "rollup": "^2.61.0",
97
+ "rollup": "^1.26.3",
100
98
  "rollup-plugin-replace": "^2.1.0",
101
99
  "rollup-plugin-typescript2": "^0.31.1",
102
100
  "rollup-plugin-uglify": "^6.0.4",
103
101
  "rollup-plugin-version-injector": "^1.3.3",
104
102
  "semantic-release": "^19.0.3",
105
- "sinon": "^7.5.0",
106
- "sinon-chai": "^3.3.0",
103
+ "sinon": "^15.0.2",
107
104
  "supertest": "^3.4.2",
108
- "ts-node": "^8.0.2",
105
+ "ts-jest": "^29.0.5",
109
106
  "tslib": "^2.3.1",
110
- "typedoc": "^0.19.2",
111
- "typedoc-plugin-markdown": "^2.2.17",
107
+ "typedoc": "^0.26.5",
108
+ "typedoc-plugin-missing-exports": "^3.0.0",
112
109
  "typescript": "^4.5.3"
113
110
  },
111
+ "dependencies": {
112
+ "commander": "^10.0.0"
113
+ },
114
114
  "release": {
115
115
  "branch": "master",
116
116
  "plugins": [
@@ -160,6 +160,5 @@
160
160
  "pre-commit": "npm run check",
161
161
  "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
162
162
  }
163
- },
164
- "dependencies": {}
163
+ }
165
164
  }