@skeptools/skep-organization-project 0.0.16 → 0.0.17

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 (48) hide show
  1. package/.jsii +28 -3
  2. package/API.md +63 -1
  3. package/lib/skep-organization-project.js +1 -1
  4. package/node_modules/liquidjs/README.md +15 -10
  5. package/node_modules/liquidjs/dist/context/context.d.ts +6 -3
  6. package/node_modules/liquidjs/dist/drop/blank-drop.d.ts +1 -0
  7. package/node_modules/liquidjs/dist/drop/empty-drop.d.ts +1 -0
  8. package/node_modules/liquidjs/dist/index.d.ts +2 -2
  9. package/node_modules/liquidjs/dist/liquid-options.d.ts +2 -0
  10. package/node_modules/liquidjs/dist/liquid.browser.min.js +1 -1
  11. package/node_modules/liquidjs/dist/liquid.browser.min.js.map +1 -1
  12. package/node_modules/liquidjs/dist/liquid.browser.mjs +712 -45
  13. package/node_modules/liquidjs/dist/liquid.browser.umd.js +1573 -215
  14. package/node_modules/liquidjs/dist/liquid.browser.umd.js.map +1 -1
  15. package/node_modules/liquidjs/dist/liquid.d.ts +29 -1
  16. package/node_modules/liquidjs/dist/liquid.node.js +699 -45
  17. package/node_modules/liquidjs/dist/liquid.node.mjs +712 -45
  18. package/node_modules/liquidjs/dist/render/expression.d.ts +1 -1
  19. package/node_modules/liquidjs/dist/render/operator.d.ts +1 -0
  20. package/node_modules/liquidjs/dist/tags/assign.d.ts +5 -0
  21. package/node_modules/liquidjs/dist/tags/block.d.ts +2 -0
  22. package/node_modules/liquidjs/dist/tags/break.d.ts +1 -1
  23. package/node_modules/liquidjs/dist/tags/capture.d.ts +5 -1
  24. package/node_modules/liquidjs/dist/tags/case.d.ts +3 -0
  25. package/node_modules/liquidjs/dist/tags/continue.d.ts +1 -1
  26. package/node_modules/liquidjs/dist/tags/cycle.d.ts +2 -0
  27. package/node_modules/liquidjs/dist/tags/decrement.d.ts +3 -0
  28. package/node_modules/liquidjs/dist/tags/echo.d.ts +2 -0
  29. package/node_modules/liquidjs/dist/tags/for.d.ts +4 -0
  30. package/node_modules/liquidjs/dist/tags/if.d.ts +3 -0
  31. package/node_modules/liquidjs/dist/tags/include.d.ts +5 -1
  32. package/node_modules/liquidjs/dist/tags/increment.d.ts +3 -0
  33. package/node_modules/liquidjs/dist/tags/layout.d.ts +4 -0
  34. package/node_modules/liquidjs/dist/tags/liquid.d.ts +1 -0
  35. package/node_modules/liquidjs/dist/tags/render.d.ts +4 -0
  36. package/node_modules/liquidjs/dist/tags/tablerow.d.ts +4 -0
  37. package/node_modules/liquidjs/dist/tags/unless.d.ts +3 -0
  38. package/node_modules/liquidjs/dist/template/analysis.d.ts +85 -0
  39. package/node_modules/liquidjs/dist/template/analysis.spec.d.ts +1 -0
  40. package/node_modules/liquidjs/dist/template/hash.d.ts +2 -1
  41. package/node_modules/liquidjs/dist/template/index.d.ts +1 -0
  42. package/node_modules/liquidjs/dist/template/output.d.ts +2 -1
  43. package/node_modules/liquidjs/dist/template/template.d.ts +29 -0
  44. package/node_modules/liquidjs/dist/tokens/liquid-tag-token.d.ts +1 -1
  45. package/node_modules/liquidjs/dist/util/type-guards.d.ts +2 -1
  46. package/node_modules/liquidjs/dist/util/underscore.d.ts +3 -0
  47. package/node_modules/liquidjs/package.json +2 -1
  48. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  import { QuotedToken, Token } from '../tokens';
2
2
  import type { Context } from '../context';
3
3
  export declare class Expression {
4
- private postfix;
4
+ readonly postfix: Token[];
5
5
  constructor(tokens: IterableIterator<Token>);
6
6
  evaluate(ctx: Context, lenient?: boolean): Generator<unknown, unknown, unknown>;
7
7
  valid(): boolean;
@@ -5,3 +5,4 @@ export type OperatorHandler = UnaryOperatorHandler | BinaryOperatorHandler;
5
5
  export type Operators = Record<string, OperatorHandler>;
6
6
  export declare const defaultOperators: Operators;
7
7
  export declare function equals(lhs: any, rhs: any): boolean;
8
+ export declare function arrayIncludes(arr: any[], item: any): boolean;
@@ -1,7 +1,12 @@
1
1
  import { Liquid, TopLevelToken, TagToken, Context, Tag } from '..';
2
+ import { Arguments } from '../template';
3
+ import { IdentifierToken } from '../tokens';
2
4
  export default class extends Tag {
3
5
  private key;
4
6
  private value;
7
+ private identifier;
5
8
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
6
9
  render(ctx: Context): Generator<unknown, void, unknown>;
10
+ arguments(): Arguments;
11
+ localScope(): Iterable<IdentifierToken>;
7
12
  }
@@ -6,4 +6,6 @@ export default class extends Tag {
6
6
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
7
7
  render(ctx: Context, emitter: Emitter): Generator<any, void, unknown>;
8
8
  private getBlockRender;
9
+ children(): Generator<unknown, Template[]>;
10
+ blockScope(): Iterable<string>;
9
11
  }
@@ -1,4 +1,4 @@
1
1
  import { Context, Emitter, Tag } from '..';
2
2
  export default class extends Tag {
3
- render(ctx: Context, emitter: Emitter): void;
3
+ render(ctx: Context, _emitter: Emitter): void;
4
4
  }
@@ -1,9 +1,13 @@
1
1
  import { Liquid, Tag, Template, Context, TagToken, TopLevelToken } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { IdentifierToken, QuotedToken } from '../tokens';
3
4
  export default class extends Tag {
5
+ identifier: IdentifierToken | QuotedToken;
4
6
  variable: string;
5
7
  templates: Template[];
6
8
  constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
9
+ private readVariable;
7
10
  render(ctx: Context): Generator<unknown, void, string>;
8
- private readVariableName;
11
+ children(): Generator<unknown, Template[]>;
12
+ localScope(): Iterable<string | IdentifierToken | QuotedToken>;
9
13
  }
@@ -1,5 +1,6 @@
1
1
  import { ValueToken, Liquid, Value, Emitter, TagToken, TopLevelToken, Context, Template, Tag } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments } from '../template';
3
4
  export default class extends Tag {
4
5
  value: Value;
5
6
  branches: {
@@ -9,4 +10,6 @@ export default class extends Tag {
9
10
  elseTemplates: Template[];
10
11
  constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
11
12
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
13
+ arguments(): Arguments;
14
+ children(): Generator<unknown, Template[]>;
12
15
  }
@@ -1,4 +1,4 @@
1
1
  import { Tag, Emitter, Context } from '..';
2
2
  export default class extends Tag {
3
- render(ctx: Context, emitter: Emitter): void;
3
+ render(ctx: Context, _emitter: Emitter): void;
4
4
  }
@@ -1,7 +1,9 @@
1
1
  import { TopLevelToken, Liquid, Emitter, TagToken, Context, Tag } from '..';
2
+ import { Arguments } from '../template';
2
3
  export default class extends Tag {
3
4
  private candidates;
4
5
  private group?;
5
6
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
6
7
  render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
8
+ arguments(): Arguments;
7
9
  }
@@ -1,6 +1,9 @@
1
1
  import { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..';
2
+ import { IdentifierToken } from '../tokens';
2
3
  export default class extends Tag {
4
+ private identifier;
3
5
  private variable;
4
6
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
5
7
  render(context: Context, emitter: Emitter): void;
8
+ localScope(): Iterable<string | IdentifierToken>;
6
9
  }
@@ -1,6 +1,8 @@
1
1
  import { Liquid, TopLevelToken, Emitter, TagToken, Context, Tag } from '..';
2
+ import { Arguments } from '../template';
2
3
  export default class extends Tag {
3
4
  private value?;
4
5
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
5
6
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
7
+ arguments(): Arguments;
6
8
  }
@@ -1,5 +1,6 @@
1
1
  import { Hash, ValueToken, Liquid, Tag, Emitter, TagToken, TopLevelToken, Context, Template } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments } from '../template';
3
4
  export default class extends Tag {
4
5
  variable: string;
5
6
  collection: ValueToken;
@@ -8,4 +9,7 @@ export default class extends Tag {
8
9
  elseTemplates: Template[];
9
10
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
10
11
  render(ctx: Context, emitter: Emitter): Generator<unknown, void | string, Template[]>;
12
+ children(): Generator<unknown, Template[]>;
13
+ arguments(): Arguments;
14
+ blockScope(): Iterable<string>;
11
15
  }
@@ -1,5 +1,6 @@
1
1
  import { Liquid, Tag, Value, Emitter, TagToken, TopLevelToken, Context, Template } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments } from '../template';
3
4
  export default class extends Tag {
4
5
  branches: {
5
6
  value: Value;
@@ -8,4 +9,6 @@ export default class extends Tag {
8
9
  elseTemplates: Template[] | undefined;
9
10
  constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
10
11
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, string>;
12
+ children(): Generator<unknown, Template[]>;
13
+ arguments(): Arguments;
11
14
  }
@@ -1,8 +1,12 @@
1
- import { TopLevelToken, Liquid, Tag, Emitter, TagToken, Context } from '..';
1
+ import { Template, TopLevelToken, Liquid, Tag, Emitter, TagToken, Context } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments, PartialScope } from '../template';
3
4
  export default class extends Tag {
4
5
  private withVar?;
5
6
  private hash;
6
7
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
7
8
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
9
+ children(partials: boolean, sync: boolean): Generator<unknown, Template[]>;
10
+ partialScope(): PartialScope | undefined;
11
+ arguments(): Arguments;
8
12
  }
@@ -1,6 +1,9 @@
1
1
  import { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..';
2
+ import { IdentifierToken } from '../tokens';
2
3
  export default class extends Tag {
4
+ private identifier;
3
5
  private variable;
4
6
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid);
5
7
  render(context: Context, emitter: Emitter): void;
8
+ localScope(): Iterable<string | IdentifierToken>;
6
9
  }
@@ -1,10 +1,14 @@
1
1
  import { Template, Liquid, Tag, Emitter, Hash, TagToken, TopLevelToken, Context } from '..';
2
2
  import { ParsedFileName } from './render';
3
3
  import { Parser } from '../parser';
4
+ import { Arguments, PartialScope } from '../template';
4
5
  export default class extends Tag {
5
6
  args: Hash;
6
7
  templates: Template[];
7
8
  file?: ParsedFileName;
8
9
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
9
10
  render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
11
+ children(partials: boolean): Generator<unknown, Template[]>;
12
+ arguments(): Arguments;
13
+ partialScope(): PartialScope | undefined;
10
14
  }
@@ -4,4 +4,5 @@ export default class extends Tag {
4
4
  templates: Template[];
5
5
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
6
6
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
7
+ children(): Generator<unknown, Template[]>;
7
8
  }
@@ -1,5 +1,6 @@
1
1
  import { TopLevelToken, Liquid, Token, Template, Tokenizer, Emitter, TagToken, Context, Tag } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments, PartialScope } from '../template';
3
4
  export type ParsedFileName = Template[] | Token | string | undefined;
4
5
  export default class extends Tag {
5
6
  private file;
@@ -7,6 +8,9 @@ export default class extends Tag {
7
8
  private hash;
8
9
  constructor(token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
9
10
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
11
+ children(partials: boolean, sync: boolean): Generator<unknown, Template[]>;
12
+ partialScope(): PartialScope | undefined;
13
+ arguments(): Arguments;
10
14
  }
11
15
  /**
12
16
  * @return null for "none",
@@ -1,5 +1,6 @@
1
1
  import { ValueToken, Liquid, Tag, Emitter, Hash, TagToken, TopLevelToken, Context, Template } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments } from '../template';
3
4
  export default class extends Tag {
4
5
  variable: string;
5
6
  args: Hash;
@@ -7,4 +8,7 @@ export default class extends Tag {
7
8
  collection: ValueToken;
8
9
  constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
9
10
  render(ctx: Context, emitter: Emitter): Generator<unknown, void, unknown>;
11
+ children(): Generator<unknown, Template[]>;
12
+ arguments(): Arguments;
13
+ blockScope(): string[];
10
14
  }
@@ -1,5 +1,6 @@
1
1
  import { Liquid, Tag, Value, TopLevelToken, Template, Emitter, Context, TagToken } from '..';
2
2
  import { Parser } from '../parser';
3
+ import { Arguments } from '../template';
3
4
  export default class extends Tag {
4
5
  branches: {
5
6
  value: Value;
@@ -9,4 +10,6 @@ export default class extends Tag {
9
10
  elseTemplates: Template[];
10
11
  constructor(tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser);
11
12
  render(ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown>;
13
+ children(): Generator<unknown, Template[]>;
14
+ arguments(): Arguments;
12
15
  }
@@ -0,0 +1,85 @@
1
+ import { Template } from '.';
2
+ /**
3
+ * Row, column and file name where a variable was found.
4
+ */
5
+ export interface VariableLocation {
6
+ row: number;
7
+ col: number;
8
+ file?: string;
9
+ }
10
+ /**
11
+ * A variable's segments as an array, possibly with nested arrays of segments.
12
+ */
13
+ export type SegmentArray = Array<string | number | SegmentArray>;
14
+ /**
15
+ * A variable's segments and location, which can be coerced to a string.
16
+ */
17
+ export declare class Variable {
18
+ readonly segments: Array<string | number | Variable>;
19
+ readonly location: VariableLocation;
20
+ constructor(segments: Array<string | number | Variable>, location: VariableLocation);
21
+ toString(): string;
22
+ /** Return this variable's segments as an array, possibly with nested arrays for nested paths. */
23
+ toArray(): SegmentArray;
24
+ }
25
+ /**
26
+ * Property names and array indexes that make up a path to a variable.
27
+ */
28
+ export type VariableSegments = Array<string | number | Variable>;
29
+ /**
30
+ * A mapping of variable names to an array of locations at which the variable was found.
31
+ */
32
+ export type Variables = {
33
+ [key: string]: Variable[];
34
+ };
35
+ /**
36
+ * Group variables by the string representation of their root segment.
37
+ */
38
+ export declare class VariableMap {
39
+ private map;
40
+ constructor();
41
+ get(key: Variable): Variable[];
42
+ has(key: Variable): boolean;
43
+ push(variable: Variable): void;
44
+ asObject(): Variables;
45
+ }
46
+ /**
47
+ * The result of calling `analyze()` or `analyzeSync()`.
48
+ */
49
+ export interface StaticAnalysis {
50
+ /**
51
+ * All variables, whether they are in scope or not. Including references to names
52
+ * such as `forloop` from the `for` tag.
53
+ */
54
+ variables: Variables;
55
+ /**
56
+ * Variables that are not in scope. These could be a "global" variables that are
57
+ * expected to be provided by the application developer, or possible mistakes
58
+ * from the template author.
59
+ *
60
+ * If a variable is referenced before and after assignment, you should expect
61
+ * that variable to be included in `globals`, `variables` and `locals`, each with
62
+ * a different location.
63
+ */
64
+ globals: Variables;
65
+ /**
66
+ * Template variables that are added to the template local scope using tags like
67
+ * `assign`, `capture` or `increment`.
68
+ */
69
+ locals: Variables;
70
+ }
71
+ export interface StaticAnalysisOptions {
72
+ /**
73
+ * When `true` (the default), try to load partial templates and analyze them too.
74
+ */
75
+ partials?: boolean;
76
+ }
77
+ export declare const defaultStaticAnalysisOptions: StaticAnalysisOptions;
78
+ /**
79
+ * Statically analyze a template and report variable usage.
80
+ */
81
+ export declare function analyze(template: Template[], options?: StaticAnalysisOptions): Promise<StaticAnalysis>;
82
+ /**
83
+ * Statically analyze a template and report variable usage.
84
+ */
85
+ export declare function analyzeSync(template: Template[], options?: StaticAnalysisOptions): StaticAnalysis;
@@ -1,4 +1,5 @@
1
1
  import { Context } from '../context/context';
2
+ import { Tokenizer } from '../parser/tokenizer';
2
3
  import { Token } from '../tokens/token';
3
4
  type HashValueTokens = Record<string, Token | undefined>;
4
5
  /**
@@ -11,7 +12,7 @@ type HashValueTokens = Record<string, Token | undefined>;
11
12
  */
12
13
  export declare class Hash {
13
14
  hash: HashValueTokens;
14
- constructor(markup: string, jekyllStyle?: boolean | string);
15
+ constructor(input: string | Tokenizer, jekyllStyle?: boolean | string);
15
16
  render(ctx: Context): Generator<unknown, Record<string, any>, unknown>;
16
17
  }
17
18
  export {};
@@ -8,3 +8,4 @@ export * from './hash';
8
8
  export * from './value';
9
9
  export * from './output';
10
10
  export * from './html';
11
+ export * from './analysis';
@@ -1,5 +1,5 @@
1
1
  import { Value } from './value';
2
- import { Template, TemplateImpl } from '../template';
2
+ import { Arguments, Template, TemplateImpl } from '../template';
3
3
  import { Context } from '../context/context';
4
4
  import { Emitter } from '../emitters/emitter';
5
5
  import { OutputToken } from '../tokens/output-token';
@@ -8,4 +8,5 @@ export declare class Output extends TemplateImpl<OutputToken> implements Templat
8
8
  value: Value;
9
9
  constructor(token: OutputToken, liquid: Liquid);
10
10
  render(ctx: Context, emitter: Emitter): IterableIterator<unknown>;
11
+ arguments(): Arguments;
11
12
  }
@@ -1,7 +1,36 @@
1
1
  import { Context } from '../context/context';
2
2
  import { Token } from '../tokens/token';
3
3
  import { Emitter } from '../emitters/emitter';
4
+ import { IdentifierToken, QuotedToken, ValueToken } from '../tokens';
5
+ import { Value } from './value';
6
+ export type Argument = Value | ValueToken;
7
+ export type Arguments = Iterable<Argument>;
8
+ /** Scope information used when analyzing partial templates. */
9
+ export interface PartialScope {
10
+ /**
11
+ * The name of the partial template. We need this to make sure we only analyze
12
+ * each template once.
13
+ * */
14
+ name: string;
15
+ /**
16
+ * If `true`, names in `scope` will be added to a new, isolated scope before
17
+ * analyzing any child templates, without access to the parent template's scope.
18
+ */
19
+ isolated: boolean;
20
+ /**
21
+ * A list of names that will be in scope for the child template.
22
+ *
23
+ * If an item is a [string, Argument] tuple, the string is considered an alias
24
+ * for the argument.
25
+ */
26
+ scope: Iterable<string | [string, Argument]>;
27
+ }
4
28
  export interface Template {
5
29
  token: Token;
6
30
  render(ctx: Context, emitter: Emitter): any;
31
+ children?(partials: boolean, sync: boolean): Generator<unknown, Template[]>;
32
+ arguments?(): Arguments;
33
+ blockScope?(): Iterable<string>;
34
+ localScope?(): Iterable<IdentifierToken | QuotedToken>;
35
+ partialScope?(): PartialScope | undefined;
7
36
  }
@@ -6,7 +6,7 @@ import { Tokenizer } from '../parser';
6
6
  */
7
7
  export declare class LiquidTagToken extends DelimitedToken {
8
8
  name: string;
9
- args: string;
10
9
  tokenizer: Tokenizer;
11
10
  constructor(input: string, begin: number, end: number, options: NormalizedFullOptions, file?: string);
11
+ get args(): string;
12
12
  }
@@ -1,4 +1,4 @@
1
- import { RangeToken, NumberToken, QuotedToken, LiteralToken, PropertyAccessToken, OutputToken, HTMLToken, TagToken, IdentifierToken, DelimitedToken, OperatorToken } from '../tokens';
1
+ import { RangeToken, NumberToken, QuotedToken, LiteralToken, PropertyAccessToken, OutputToken, HTMLToken, TagToken, IdentifierToken, DelimitedToken, OperatorToken, ValueToken } from '../tokens';
2
2
  export declare function isDelimitedToken(val: any): val is DelimitedToken;
3
3
  export declare function isOperatorToken(val: any): val is OperatorToken;
4
4
  export declare function isHTMLToken(val: any): val is HTMLToken;
@@ -10,3 +10,4 @@ export declare function isNumberToken(val: any): val is NumberToken;
10
10
  export declare function isPropertyAccessToken(val: any): val is PropertyAccessToken;
11
11
  export declare function isWordToken(val: any): val is IdentifierToken;
12
12
  export declare function isRangeToken(val: any): val is RangeToken;
13
+ export declare function isValueToken(val: any): val is ValueToken;
@@ -17,6 +17,7 @@ export declare function toLiquid(value: any): any;
17
17
  export declare function isNil(value: any): boolean;
18
18
  export declare function isUndefined(value: any): boolean;
19
19
  export declare function isArray(value: any): value is any[];
20
+ export declare function isArrayLike(value: any): value is any[];
20
21
  export declare function isIterable(value: any): value is Iterable<any>;
21
22
  export declare function forOwn<T>(obj: Record<string, T> | undefined, iteratee: ((val: T, key: string, obj: {
22
23
  [key: string]: T;
@@ -34,3 +35,5 @@ export declare function ellipsis(str: string, N: number): string;
34
35
  export declare function caseInsensitiveCompare(a: any, b: any): 0 | 1 | -1;
35
36
  export declare function argumentsToValue<F extends (...args: any) => any, T>(fn: F): (this: T, ...args: Parameters<F>) => any;
36
37
  export declare function escapeRegExp(text: string): string;
38
+ /** Return an array containing unique elements from _array_. Works with nested arrays and objects. */
39
+ export declare function strictUniq<T>(array: Array<T>): Generator<T>;
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "liquidjs",
3
- "version": "10.18.0",
3
+ "version": "10.20.1",
4
+ "sideEffects": false,
4
5
  "description": "A simple, expressive and safe Shopify / Github Pages compatible template engine in pure JavaScript.",
5
6
  "main": "dist/liquid.node.js",
6
7
  "module": "dist/liquid.node.mjs",
package/package.json CHANGED
@@ -46,7 +46,7 @@
46
46
  "eslint-import-resolver-typescript": "^3.6.3",
47
47
  "eslint-plugin-import": "^2.29.1",
48
48
  "jest": "29",
49
- "jest-junit": "^15",
49
+ "jest-junit": "^16",
50
50
  "jsii": "~5",
51
51
  "jsii-diff": "^1.103.1",
52
52
  "jsii-docgen": "^10.5.0",
@@ -79,7 +79,7 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "version": "0.0.16",
82
+ "version": "0.0.17",
83
83
  "jest": {
84
84
  "coverageProvider": "v8",
85
85
  "testMatch": [