@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
@@ -4,4 +4,4 @@ export interface Cache<T> {
4
4
  read(key: string): T | undefined | Promise<T | undefined>;
5
5
  remove(key: string): void | Promise<void>;
6
6
  }
7
- export declare type LiquidCache = Cache<Template[] | Promise<Template[]>>;
7
+ export type LiquidCache = Cache<Template[] | Promise<Template[]>>;
@@ -0,0 +1,2 @@
1
+ export * from './cache';
2
+ export * from './lru';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,4 @@
1
- declare enum BlockMode {
1
+ export declare enum BlockMode {
2
2
  OUTPUT = 0,
3
3
  STORE = 1
4
4
  }
5
- export default BlockMode;
@@ -1,6 +1,7 @@
1
1
  import { NormalizedFullOptions, RenderOptions } from '../liquid-options';
2
2
  import { Scope } from './scope';
3
- declare type PropertyKey = string | number;
3
+ import { Limiter } from '../util';
4
+ type PropertyKey = string | number;
4
5
  export declare class Context {
5
6
  /**
6
7
  * insert a Context-level empty scope,
@@ -27,25 +28,32 @@ export declare class Context {
27
28
  * Throw when accessing undefined variable?
28
29
  */
29
30
  strictVariables: boolean;
30
- constructor(env?: object, opts?: NormalizedFullOptions, renderOptions?: RenderOptions);
31
+ ownPropertyOnly: boolean;
32
+ memoryLimit: Limiter;
33
+ renderLimit: Limiter;
34
+ constructor(env?: object, opts?: NormalizedFullOptions, renderOptions?: RenderOptions, { memoryLimit, renderLimit }?: {
35
+ [key: string]: Limiter;
36
+ });
31
37
  getRegister(key: string): any;
32
38
  setRegister(key: string, value: any): any;
33
39
  saveRegister(...keys: string[]): [string, any][];
34
40
  restoreRegister(keyValues: [string, any][]): void;
35
41
  getAll(): Scope;
36
42
  /**
37
- * @deprecated use `_get()` instead
43
+ * @deprecated use `_get()` or `getSync()` instead
38
44
  */
39
45
  get(paths: PropertyKey[]): unknown;
46
+ getSync(paths: PropertyKey[]): unknown;
40
47
  _get(paths: PropertyKey[]): IterableIterator<unknown>;
41
48
  /**
42
49
  * @deprecated use `_get()` instead
43
50
  */
44
51
  getFromScope(scope: unknown, paths: PropertyKey[] | string): IterableIterator<unknown>;
45
- _getFromScope(scope: unknown, paths: PropertyKey[] | string): IterableIterator<unknown>;
52
+ _getFromScope(scope: unknown, paths: PropertyKey[] | string, strictVariables?: boolean): IterableIterator<unknown>;
46
53
  push(ctx: object): number;
47
54
  pop(): Scope | undefined;
48
55
  bottom(): Scope;
56
+ spawn(scope?: {}): Context;
49
57
  private findScope;
50
58
  }
51
59
  export declare function readProperty(obj: Scope, key: PropertyKey, ownPropertyOnly: boolean): any;
@@ -0,0 +1,3 @@
1
+ export * from './context';
2
+ export * from './scope';
3
+ export * from './block-mode';
@@ -1,6 +1,6 @@
1
1
  import { Drop } from '../drop/drop';
2
- export interface PlainObject {
3
- [key: string]: any;
2
+ interface ScopeObject extends Record<string, any> {
4
3
  toLiquid?: () => any;
5
4
  }
6
- export declare type Scope = PlainObject | Drop;
5
+ export type Scope = ScopeObject | Drop;
6
+ export {};
@@ -1,4 +1,4 @@
1
- import { EmptyDrop } from '../drop/empty-drop';
1
+ import { EmptyDrop } from '../drop';
2
2
  export declare class BlankDrop extends EmptyDrop {
3
3
  equals(value: any): boolean;
4
4
  }
@@ -1,3 +1,3 @@
1
1
  export declare abstract class Drop {
2
- liquidMethodMissing(key: string | number): Promise<string | undefined> | string | undefined;
2
+ liquidMethodMissing(key: string | number): Promise<any> | any;
3
3
  }
@@ -0,0 +1,7 @@
1
+ export * from './drop';
2
+ export * from './null-drop';
3
+ export * from './empty-drop';
4
+ export * from './blank-drop';
5
+ export * from './forloop-drop';
6
+ export * from './block-drop';
7
+ export * from './comparable';
@@ -0,0 +1,4 @@
1
+ export * from './emitter';
2
+ export * from './simple-emitter';
3
+ export * from '../build/streamed-emitter-browser';
4
+ export * from './keeping-type-emitter';
@@ -1,4 +1,4 @@
1
- import { Emitter } from '../types';
1
+ import { Emitter } from './emitter';
2
2
  export declare class KeepingTypeEmitter implements Emitter {
3
3
  buffer: any;
4
4
  write(html: any): void;
@@ -0,0 +1,26 @@
1
+ import { FilterImpl } from '../template';
2
+ import type { Scope } from '../context';
3
+ export declare const join: (this: unknown, v: any[], arg: string) => any;
4
+ export declare const last: (this: unknown, v: any) => any;
5
+ export declare const first: (this: unknown, v: any) => any;
6
+ export declare const reverse: (this: unknown, v: any[]) => any;
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[];
9
+ export declare const size: (v: string | any[]) => number;
10
+ export declare function map(this: FilterImpl, arr: Scope[], property: string): IterableIterator<unknown>;
11
+ export declare function sum(this: FilterImpl, arr: Scope[], property?: string): IterableIterator<unknown>;
12
+ export declare function compact<T>(this: FilterImpl, arr: T[]): any[];
13
+ export declare function concat<T1, T2>(this: FilterImpl, v: T1[], arg?: T2[]): (T1 | T2)[];
14
+ export declare function push<T>(this: FilterImpl, v: T[], arg: T): T[];
15
+ export declare function unshift<T>(this: FilterImpl, v: T[], arg: T): T[];
16
+ export declare function pop<T>(v: T[]): T[];
17
+ export declare function shift<T>(this: FilterImpl, v: T[]): T[];
18
+ export declare function slice<T>(this: FilterImpl, v: T[] | string, begin: number, length?: number): T[] | string;
19
+ export declare function where<T extends object>(this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown>;
20
+ export declare function where_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
21
+ export declare function group_by<T extends object>(this: FilterImpl, arr: T[], property: string): IterableIterator<unknown>;
22
+ 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>;
24
+ export declare function find_exp<T extends object>(this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown>;
25
+ export declare function uniq<T>(this: FilterImpl, arr: T[]): T[];
26
+ export declare function sample<T>(this: FilterImpl, v: T[] | string, count?: number): T | string | (T | string)[];
@@ -0,0 +1,6 @@
1
+ import { FilterImpl } from '../template';
2
+ export declare function date(this: FilterImpl, v: string | Date, format?: string, timezoneOffset?: number | string): string | Date;
3
+ export declare function date_to_xmlschema(this: FilterImpl, v: string | Date): string | Date;
4
+ export declare function date_to_rfc822(this: FilterImpl, v: string | Date): string | Date;
5
+ export declare function date_to_string(this: FilterImpl, v: string | Date, type?: string, style?: string): string | Date;
6
+ export declare function date_to_long_string(this: FilterImpl, v: string | Date, type?: string, style?: string): string | Date;
@@ -0,0 +1,6 @@
1
+ import { FilterImpl } from '../template';
2
+ export declare function escape(this: FilterImpl, str: string): string;
3
+ export declare function xml_escape(this: FilterImpl, str: string): string;
4
+ export declare function escape_once(this: FilterImpl, str: string): string;
5
+ export declare function newline_to_br(this: FilterImpl, v: string): string;
6
+ export declare function strip_html(this: FilterImpl, v: string): string;
@@ -0,0 +1,2 @@
1
+ import { FilterImplOptions } from '../template';
2
+ export declare const filters: Record<string, FilterImplOptions>;
@@ -0,0 +1,11 @@
1
+ export declare const abs: (this: unknown, x: number) => any;
2
+ export declare const at_least: (this: unknown, ...args: number[]) => any;
3
+ export declare const at_most: (this: unknown, ...args: number[]) => any;
4
+ export declare const ceil: (this: unknown, x: number) => any;
5
+ export declare const divided_by: (this: unknown, dividend: number, divisor: number, integerArithmetic?: any) => any;
6
+ export declare const floor: (this: unknown, x: number) => any;
7
+ export declare const minus: (this: unknown, v: number, arg: number) => any;
8
+ export declare const modulo: (this: unknown, v: number, arg: number) => any;
9
+ export declare const times: (this: unknown, v: number, arg: number) => any;
10
+ export declare function round(v: number, arg?: number): number;
11
+ export declare function plus(v: number, arg: number): number;
@@ -0,0 +1,18 @@
1
+ import { identify } from '../util/underscore';
2
+ import { FilterImpl } from '../template';
3
+ declare function defaultFilter<T1 extends boolean, T2>(this: FilterImpl, value: T1, defaultValue: T2, ...args: Array<[string, any]>): T1 | T2;
4
+ declare function json(value: any, space?: number): string;
5
+ declare function inspect(value: any, space?: number): string;
6
+ declare function to_integer(value: any): number;
7
+ declare const _default: {
8
+ default: typeof defaultFilter;
9
+ raw: {
10
+ raw: boolean;
11
+ handler: typeof identify;
12
+ };
13
+ jsonify: typeof json;
14
+ to_integer: typeof to_integer;
15
+ json: typeof json;
16
+ inspect: typeof inspect;
17
+ };
18
+ export default _default;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * String related filters
3
+ *
4
+ * * prefer stringify() to String() since `undefined`, `null` should eval ''
5
+ */
6
+ import { FilterImpl } from '../template';
7
+ export declare function append(this: FilterImpl, v: string, arg: string): string;
8
+ export declare function prepend(this: FilterImpl, v: string, arg: string): string;
9
+ export declare function lstrip(this: FilterImpl, v: string, chars?: string): string;
10
+ export declare function downcase(this: FilterImpl, v: string): string;
11
+ export declare function upcase(this: FilterImpl, v: string): string;
12
+ export declare function remove(this: FilterImpl, v: string, arg: string): string;
13
+ export declare function remove_first(this: FilterImpl, v: string, l: string): string;
14
+ export declare function remove_last(this: FilterImpl, v: string, l: string): string;
15
+ export declare function rstrip(this: FilterImpl, str: string, chars?: string): string;
16
+ export declare function split(this: FilterImpl, v: string, arg: string): string[];
17
+ export declare function strip(this: FilterImpl, v: string, chars?: string): string;
18
+ export declare function strip_newlines(this: FilterImpl, v: string): string;
19
+ export declare function capitalize(this: FilterImpl, str: string): string;
20
+ export declare function replace(this: FilterImpl, v: string, pattern: string, replacement: string): string;
21
+ export declare function replace_first(this: FilterImpl, v: string, arg1: string, arg2: string): string;
22
+ export declare function replace_last(this: FilterImpl, v: string, arg1: string, arg2: string): string;
23
+ export declare function truncate(this: FilterImpl, v: string, l?: number, o?: string): string;
24
+ export declare function truncatewords(this: FilterImpl, v: string, words?: number, o?: string): string;
25
+ export declare function normalize_whitespace(this: FilterImpl, v: string): string;
26
+ export declare function number_of_words(this: FilterImpl, input: string, mode?: 'cjk' | 'auto'): number;
27
+ export declare function array_to_sentence_string(this: FilterImpl, array: unknown[], connector?: string): unknown;
@@ -0,0 +1,14 @@
1
+ export declare const url_decode: (x: string) => string;
2
+ export declare const url_encode: (x: string) => string;
3
+ export declare const cgi_escape: (x: string) => string;
4
+ export declare const uri_escape: (x: string) => string;
5
+ declare const rSlugifyReplacers: {
6
+ raw: RegExp;
7
+ default: RegExp;
8
+ pretty: RegExp;
9
+ ascii: RegExp;
10
+ latin: RegExp;
11
+ none: null;
12
+ };
13
+ export declare function slugify(str: string, mode?: keyof typeof rSlugifyReplacers, cased?: boolean): string;
14
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './loader';
2
+ export * from './fs';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ export declare class MapFS {
2
+ private mapping;
3
+ constructor(mapping: {
4
+ [key: string]: string;
5
+ });
6
+ sep: string;
7
+ exists(filepath: string): Promise<boolean>;
8
+ existsSync(filepath: string): boolean;
9
+ readFile(filepath: string): Promise<string>;
10
+ readFileSync(filepath: string): string;
11
+ dirname(filepath: string): string;
12
+ resolve(dir: string, file: string, ext: string): string;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1 @@
1
- /// <reference types="node" />
2
- export declare const requireResolve: RequireResolve;
1
+ export declare const requireResolve: (partial: string) => string;
@@ -0,0 +1,15 @@
1
+ export declare const version = "[VI]{version}[/VI]";
2
+ export * as TypeGuards from './util/type-guards';
3
+ export { toValue, createTrie, Trie, toPromise, toValueSync, assert, LiquidError, ParseError, RenderError, UndefinedVariableError, TokenizationError, AssertionError } from './util';
4
+ export { Drop } from './drop';
5
+ export { Emitter } from './emitters';
6
+ export { defaultOperators, Operators, evalToken, evalQuotedToken, Expression, isFalsy, isTruthy } from './render';
7
+ export { Context, Scope } from './context';
8
+ export { Value, Hash, Template, FilterImplOptions, Tag, Filter, Output } from './template';
9
+ export { Token, TopLevelToken, TagToken, ValueToken } from './tokens';
10
+ export { TokenKind, Tokenizer, ParseStream } from './parser';
11
+ export { filters } from './filters';
12
+ export * from './tags';
13
+ export { defaultOptions, LiquidOptions } from './liquid-options';
14
+ export { FS } from './fs';
15
+ export { Liquid } from './liquid';
@@ -1,9 +1,8 @@
1
- import { LiquidCache } from './cache/cache';
2
- import { FS } from './fs/fs';
3
- import { Operators } from './render/operator';
4
- import { Trie } from './util/operator-trie';
5
- declare type OutputEscape = (value: any) => string;
6
- declare type OutputEscapeOption = 'escape' | 'json' | OutputEscape;
1
+ import { LiquidCache } from './cache';
2
+ import { FS, LookupType } from './fs';
3
+ import { Operators } from './render';
4
+ type OutputEscape = (value: any) => string;
5
+ type OutputEscapeOption = 'escape' | 'json' | OutputEscape;
7
6
  export interface LiquidOptions {
8
7
  /** A directory or an array of directories from where to resolve layout and include templates, and the filename passed to `.renderFile()`. If it's an array, the files are looked up in the order they occur in the array. Defaults to `["."]` */
9
8
  root?: string | string[];
@@ -19,7 +18,7 @@ export interface LiquidOptions {
19
18
  extname?: string;
20
19
  /** Whether or not to cache resolved templates. Defaults to `false`. */
21
20
  cache?: boolean | number | LiquidCache;
22
- /** Use Javascript Truthiness. Defaults to `false`. */
21
+ /** Use JavaScript Truthiness. Defaults to `false`. */
23
22
  jsTruthy?: boolean;
24
23
  /** If set, treat the `filepath` parameter in `{%include filepath %}` and `{%layout filepath%}` as a variable, otherwise as a literal value. Defaults to `true`. */
25
24
  dynamicPartials?: boolean;
@@ -27,12 +26,18 @@ export interface LiquidOptions {
27
26
  strictFilters?: boolean;
28
27
  /** Whether or not to assert variable existence. If set to `false`, undefined variables will be rendered as empty string. Otherwise, undefined variables will cause an exception. Defaults to `false`. */
29
28
  strictVariables?: boolean;
29
+ /** Catch all errors instead of exit upon one. Please note that render errors won't be reached when parse fails. */
30
+ catchAllErrors?: boolean;
30
31
  /** Hide scope variables from prototypes, useful when you're passing a not sanitized object into LiquidJS or need to hide prototypes from templates. */
31
32
  ownPropertyOnly?: boolean;
32
33
  /** Modifies the behavior of `strictVariables`. If set, a single undefined variable will *not* cause an exception in the context of the `if`/`elsif`/`unless` tag and the `default` filter. Instead, it will evaluate to `false` and `null`, respectively. Irrelevant if `strictVariables` is not set. Defaults to `false`. **/
33
34
  lenientIf?: boolean;
34
- /** JavaScript timezoneOffset for `date` filter, default to local time. That means if you're in Australia (UTC+10), it'll default to -600 */
35
- timezoneOffset?: number;
35
+ /** JavaScript timezone name or timezoneOffset for `date` filter, default to local time. That means if you're in Australia (UTC+10), it'll default to `-600` or `Australia/Lindeman` */
36
+ timezoneOffset?: number | string;
37
+ /** Default date format to use if the date filter doesn't include a format. Defaults to `%A, %B %-e, %Y at %-l:%M %P %z`. */
38
+ dateFormat?: string;
39
+ /** Default locale, will be used by date filter. Defaults to system locale. */
40
+ locale?: string;
36
41
  /** Strip blank characters (including ` `, `\t`, and `\r`) from the right of tags (`{% %}`) until `\n` (inclusive). Defaults to `false`. */
37
42
  trimTagRight?: boolean;
38
43
  /** Similar to `trimTagRight`, whereas the `\n` is exclusive. Defaults to `false`. See Whitespace Control for details. */
@@ -51,10 +56,16 @@ export interface LiquidOptions {
51
56
  outputDelimiterRight?: string;
52
57
  /** Whether input strings to date filter preserve the given timezone **/
53
58
  preserveTimezones?: boolean;
54
- /** Whether `trim*Left`/`trim*Right` is greedy. When set to `true`, all consecutive blank characters including `\n` will be trimed regardless of line breaks. Defaults to `true`. */
59
+ /** Whether `trim*Left`/`trim*Right` is greedy. When set to `true`, all consecutive blank characters including `\n` will be trimmed regardless of line breaks. Defaults to `true`. */
55
60
  greedy?: boolean;
56
61
  /** `fs` is used to override the default file-system module with a custom implementation. */
57
62
  fs?: FS;
63
+ /** keyValue separator */
64
+ keyValueSeparator?: string;
65
+ /** Render from in-memory `templates` mapping instead of file system. File system related options like `fs`, 'root', and `relativeReference` will be ignored when `templates` is specified. */
66
+ templates?: {
67
+ [key: string]: string;
68
+ };
58
69
  /** the global scope passed down to all partial and layout templates, i.e. templates included by `include`, `layout` and `render` tags. */
59
70
  globals?: object;
60
71
  /** Whether or not to keep value type when writing the Output, not working for streamed rendering. Defaults to `false`. */
@@ -65,6 +76,12 @@ export interface LiquidOptions {
65
76
  operators?: Operators;
66
77
  /** Respect parameter order when using filters like "for ... reversed limit", Defaults to `false`. */
67
78
  orderedFilterParameters?: boolean;
79
+ /** For DoS handling, limit total length of templates parsed in one `parse()` call. A typical PC can handle 1e8 (100M) characters without issues. */
80
+ parseLimit?: number;
81
+ /** For DoS handling, limit total time (in ms) for each `render()` call. */
82
+ renderLimit?: number;
83
+ /** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue. */
84
+ memoryLimit?: number;
68
85
  }
69
86
  export interface RenderOptions {
70
87
  /**
@@ -83,6 +100,15 @@ export interface RenderOptions {
83
100
  * Same as `ownPropertyOnly` on LiquidOptions, but only for current render() call
84
101
  */
85
102
  ownPropertyOnly?: boolean;
103
+ /** For DoS handling, limit total renders of tag/HTML/output in one `render()` call. A typical PC can handle 1e5 renders of typical templates per second. */
104
+ templateLimit?: number;
105
+ /** For DoS handling, limit total time (in ms) for each `render()` call. */
106
+ renderLimit?: number;
107
+ /** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue.. */
108
+ memoryLimit?: number;
109
+ }
110
+ export interface RenderFileOptions extends RenderOptions {
111
+ lookupType?: LookupType;
86
112
  }
87
113
  interface NormalizedOptions extends LiquidOptions {
88
114
  root?: string[];
@@ -90,7 +116,6 @@ interface NormalizedOptions extends LiquidOptions {
90
116
  layouts?: string[];
91
117
  cache?: LiquidCache;
92
118
  outputEscape?: OutputEscape;
93
- operatorsTrie?: Trie;
94
119
  }
95
120
  export interface NormalizedFullOptions extends NormalizedOptions {
96
121
  root: string[];
@@ -107,6 +132,8 @@ export interface NormalizedFullOptions extends NormalizedOptions {
107
132
  strictVariables: boolean;
108
133
  ownPropertyOnly: boolean;
109
134
  lenientIf: boolean;
135
+ dateFormat: string;
136
+ locale: string;
110
137
  trimTagRight: boolean;
111
138
  trimTagLeft: boolean;
112
139
  trimOutputRight: boolean;
@@ -120,7 +147,9 @@ export interface NormalizedFullOptions extends NormalizedOptions {
120
147
  globals: object;
121
148
  keepOutputType: boolean;
122
149
  operators: Operators;
123
- operatorsTrie: Trie;
150
+ parseLimit: number;
151
+ renderLimit: number;
152
+ memoryLimit: number;
124
153
  }
125
154
  export declare const defaultOptions: NormalizedFullOptions;
126
155
  export declare function normalize(options: LiquidOptions): NormalizedFullOptions;