@diplodoc/liquid 1.3.4 → 1.5.0

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.
package/README.md CHANGED
@@ -1,9 +1,133 @@
1
1
  [![NPM version](https://img.shields.io/npm/v/@diplodoc/liquid.svg?style=flat)](https://www.npmjs.org/package/@diplodoc/liquid)
2
2
 
3
- [@diplodoc/liquid](https://www.npmjs.com/package/@diplodoc/liquid) is a small and fast implementation of basic liquid syntax.
3
+ # @diplodoc/liquid
4
4
 
5
- ## Installation {#install}
5
+ A small and fast implementation of basic Liquid syntax for processing YFM (Yandex Flavored Markdown) documents. Provides template processing capabilities including variable substitutions, conditions, cycles (loops), and frontmatter handling.
6
6
 
7
- ```shell
8
- npm i @diplodoc/liquid
7
+ ## Features
8
+
9
+ - **Variable substitutions** — `{{ variable }}` syntax
10
+ - **Conditional blocks** — `{% if condition %}...{% endif %}`
11
+ - **Cycle/loop blocks** — `{% for item in collection %}...{% endfor %}`
12
+ - **Frontmatter processing** — YAML frontmatter extraction and processing
13
+ - **Source map support** — Optional source maps for debugging
14
+ - **Custom filters** — Extensible filter system
15
+ - **Code block preservation** — Handles code blocks without processing Liquid syntax inside
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install @diplodoc/liquid
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ ### Basic Example
26
+
27
+ ```typescript
28
+ import {createContext, liquidDocument} from '@diplodoc/liquid';
29
+
30
+ // Create a context with logger and settings
31
+ const context = createContext({
32
+ info: console.log,
33
+ warn: console.warn,
34
+ error: console.error,
35
+ });
36
+
37
+ // Process a document with variables
38
+ const template = `
39
+ ---
40
+ title: {{ title }}
41
+ ---
42
+
43
+ Hello, {{ name }}!
44
+
45
+ {% if showDetails %}
46
+ Details: {{ details }}
47
+ {% endif %}
48
+ `;
49
+
50
+ const vars = {
51
+ title: 'My Document',
52
+ name: 'World',
53
+ showDetails: true,
54
+ details: 'Some important information',
55
+ };
56
+
57
+ const result = liquidDocument.call(context, template, vars);
58
+ // Result:
59
+ // ---
60
+ // title: My Document
61
+ // ---
62
+ //
63
+ // Hello, World!
64
+ //
65
+ // Details: Some important information
66
+ ```
67
+
68
+ ### Processing Snippets
69
+
70
+ ```typescript
71
+ import {liquidSnippet} from '@diplodoc/liquid';
72
+
73
+ const snippet = 'Hello, {{ name }}!';
74
+ const vars = {name: 'World'};
75
+
76
+ const result = liquidSnippet.call(context, snippet, vars);
77
+ // Result: "Hello, World!"
9
78
  ```
79
+
80
+ ### Processing JSON
81
+
82
+ ```typescript
83
+ import {liquidJson} from '@diplodoc/liquid';
84
+
85
+ const json = {
86
+ title: '{{ title }}',
87
+ items: ['{{ item1 }}', '{{ item2 }}'],
88
+ };
89
+
90
+ const vars = {
91
+ title: 'My Title',
92
+ item1: 'First',
93
+ item2: 'Second',
94
+ };
95
+
96
+ const result = liquidJson.call(context, json, vars);
97
+ // Result: { title: 'My Title', items: ['First', 'Second'] }
98
+ ```
99
+
100
+ ## API
101
+
102
+ ### Functions
103
+
104
+ - **`liquidDocument(input, vars, sourcemap?)`** — Processes a full YFM document with frontmatter
105
+ - **`liquidSnippet(input, vars, sourcemap?)`** — Processes a Liquid template snippet (without frontmatter)
106
+ - **`liquidJson(json, vars)`** — Recursively processes Liquid syntax in JSON objects
107
+ - **`createContext(logger, settings?)`** — Creates a Liquid context for processing
108
+
109
+ ### Types
110
+
111
+ - **`LiquidContext`** — Context object containing logger, settings, and optional path
112
+ - **`LiquidSettings`** — Configuration options for Liquid processing
113
+ - **`SourceMap`** — Source map for tracking transformations
114
+
115
+ See TypeScript definitions for detailed API documentation.
116
+
117
+ ## Configuration
118
+
119
+ You can configure Liquid processing behavior via `LiquidSettings`:
120
+
121
+ ```typescript
122
+ const context = createContext(logger, {
123
+ conditions: true, // Enable/disable conditions
124
+ cycles: true, // Enable/disable cycles
125
+ substitutions: true, // Enable/disable substitutions
126
+ conditionsInCode: false, // Process conditions in code blocks
127
+ keepNotVar: false, // Keep {{ var }} if variable not found
128
+ });
129
+ ```
130
+
131
+ ## License
132
+
133
+ MIT
package/lib/conditions.js CHANGED
@@ -7,6 +7,7 @@ exports.applyConditions = applyConditions;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
8
  const lexical_1 = require("./syntax/lexical");
9
9
  const evaluate_1 = require("./syntax/evaluate");
10
+ const legacyConditions_1 = __importDefault(require("./legacyConditions"));
10
11
  function resourcemap(source, ifTag, ifCon, sourcemap) {
11
12
  const lines = sourcemap.lines(source);
12
13
  const sourcel = sourcemap.location(ifTag.start + 1, ifTag.end - 1, lines);
@@ -139,6 +140,8 @@ function inlineConditions(content, vars, ifTag) {
139
140
  const { conditions = true, keepConditionSyntaxOnTrue = false } = this.settings;
140
141
  let ifCon = null;
141
142
  for (const condition of ifTag) {
143
+ // In strict mode, missing variables return NoValue instead of undefined
144
+ // This affects condition evaluation - NoValue is considered falsy
142
145
  const value = evaluate_1.evaluate.call(this, condition.expr, vars, conditions === 'strict');
143
146
  if (condition.expr &&
144
147
  (value === evaluate_1.NoValue || (keepConditionSyntaxOnTrue && value === true))) {
@@ -166,6 +169,9 @@ function inlineConditions(content, vars, ifTag) {
166
169
  }
167
170
  function applyConditions(input, vars, sourcemap) {
168
171
  const { path } = this;
172
+ if (this.settings.legacyConditions) {
173
+ return legacyConditions_1.default.call(this, input, vars);
174
+ }
169
175
  const tagStack = [];
170
176
  // Consumes all between curly braces
171
177
  // and all closest upon to first linebreak before and after braces.
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.composeFrontMatter = exports.extractFrontMatter = void 0;
7
4
  const js_yaml_1 = require("js-yaml");
8
- const cloneDeepWith_1 = __importDefault(require("lodash/cloneDeepWith"));
5
+ const cloneDeepWith_1 = require("./utils/cloneDeepWith");
9
6
  const SEP = '---';
10
7
  /**
11
8
  * Temporary workaround to enable parsing YAML metadata from potentially
@@ -41,7 +38,7 @@ const extractFrontMatter = (content, options = {}) => {
41
38
  return [{}, strippedContent, rawMeta];
42
39
  }
43
40
  return [
44
- (0, cloneDeepWith_1.default)(loadedData, (v) => typeof v === 'string' ? unescapeLiquid(v) : undefined),
41
+ (0, cloneDeepWith_1.cloneDeepWith)(loadedData, (v) => typeof v === 'string' ? unescapeLiquid(v) : undefined),
45
42
  strippedContent,
46
43
  rawMeta,
47
44
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAmC;AACnC,yEAAiD;AAMjD,MAAM,GAAG,GAAG,KAAK,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAU,EAAE,CACtD,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IACtC,MAAM,EAAE,GAAG,8EAA8E,CAAC;IAC1F,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,MAAqD,CAAC;AACvE,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAC9B,OAAe,EACf,OAAO,GAAG,EAAE,EACiB,EAAE;IAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;QACpC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAgB,CAAC;QAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACH,IAAA,uBAAa,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACxD;YACD,eAAe;YACf,OAAO;SACV,CAAC;IACN,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AA3BW,QAAA,kBAAkB,sBA2B7B;AAEK,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,eAAe,GAAG,EAAE,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,WAAW,EAAE,EAAC,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzD,yCAAyC;IACzC,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,KAAK,eAAe,EAAE,CAAC;AAC3D,CAAC,CAAC;AAXW,QAAA,kBAAkB,sBAW7B"}
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,yDAAoD;AAMpD,MAAM,GAAG,GAAG,KAAK,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAU,EAAE,CACtD,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IACtC,MAAM,EAAE,GAAG,8EAA8E,CAAC;IAC1F,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,MAAqD,CAAC;AACvE,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAC9B,OAAe,EACf,OAAO,GAAG,EAAE,EACiB,EAAE;IAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,GAAG,OAAO,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;QACpC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAgB,CAAC;QAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACH,IAAA,6BAAa,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACxD;YACD,eAAe;YACf,OAAO;SACV,CAAC;IACN,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AA3BW,QAAA,kBAAkB,sBA2B7B;AAEK,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,eAAe,GAAG,EAAE,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,WAAW,EAAE,EAAC,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzD,yCAAyC;IACzC,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,KAAK,eAAe,EAAE,CAAC;AAC3D,CAAC,CAAC;AAXW,QAAA,kBAAkB,sBAW7B"}
package/lib/index.d.ts CHANGED
@@ -4,7 +4,101 @@ export type { LiquidContext } from './types';
4
4
  export { evaluate, NoValue } from './syntax/evaluate';
5
5
  export { SourceMap } from './sourcemap';
6
6
  export { composeFrontMatter, extractFrontMatter } from './frontmatter';
7
+ /**
8
+ * Processes a Liquid template snippet (without frontmatter).
9
+ * Applies cycles, conditions, and substitutions based on context settings.
10
+ * Preserves code blocks from Liquid processing by default.
11
+ *
12
+ * **Processing Order** (current implementation):
13
+ * 1. Save code blocks (if conditionsInCode is false)
14
+ * 2. Process cycles
15
+ * 3. Process conditions
16
+ * 4. Process substitutions
17
+ * 5. Restore code blocks
18
+ *
19
+ * **Known Limitation**: The current order processes all cycles before conditions,
20
+ * which means cycles inside false condition branches are still expanded.
21
+ * A refactoring is planned to process constructs in document order.
22
+ *
23
+ * @param this - Liquid context
24
+ * @param input - Template string to process
25
+ * @param vars - Variables for Liquid processing
26
+ * @param sourcemap - Optional source map for tracking transformations
27
+ * @returns Processed string with Liquid syntax evaluated
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const snippet = 'Hello, {{ name }}!';
32
+ * const vars = { name: 'World' };
33
+ * const result = liquidSnippet.call(context, snippet, vars);
34
+ * // Result: "Hello, World!"
35
+ * ```
36
+ */
7
37
  export declare function liquidSnippet(this: LiquidContext, input: string, vars: Record<string, unknown>, sourcemap?: SourceMap): string;
8
- export declare function liquidJson(this: LiquidContext, json: object, vars: Record<string, unknown>): any;
38
+ /**
39
+ * Recursively processes Liquid syntax in JSON objects.
40
+ * Traverses the object structure and processes all string values with liquidSnippet.
41
+ *
42
+ * @param this - Liquid context
43
+ * @param json - JSON object to process
44
+ * @param vars - Variables for Liquid processing
45
+ * @returns Processed JSON object with Liquid syntax evaluated
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const json = { title: '{{ title }}', items: ['{{ item1 }}', '{{ item2 }}'] };
50
+ * const vars = { title: 'My Title', item1: 'First', item2: 'Second' };
51
+ * const result = liquidJson.call(context, json, vars);
52
+ * // Result: { title: 'My Title', items: ['First', 'Second'] }
53
+ * ```
54
+ */
55
+ export declare function liquidJson(this: LiquidContext, json: Record<string, unknown>, vars: Record<string, unknown>): Record<string, unknown>;
56
+ /**
57
+ * Processes a full YFM document with frontmatter.
58
+ * Extracts and processes frontmatter separately, then processes the content body.
59
+ * Composes the result with processed frontmatter.
60
+ *
61
+ * **Frontmatter Processing**: Frontmatter is processed via `liquidJson` (not `liquidSnippet`)
62
+ * because it's extracted as an object structure, not a string. This allows processing
63
+ * Liquid syntax in all string values within the frontmatter object recursively.
64
+ *
65
+ * @param this - Liquid context
66
+ * @param input - Full YFM document string with optional frontmatter
67
+ * @param vars - Variables for Liquid processing
68
+ * @param sourcemap - Optional source map for tracking transformations
69
+ * @returns Processed document with frontmatter and content
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const document = `---
74
+ * title: {{ title }}
75
+ * ---
76
+ * Hello, {{ name }}!`;
77
+ * const vars = { title: 'My Document', name: 'World' };
78
+ * const result = liquidDocument.call(context, document, vars);
79
+ * // Result: "---\ntitle: My Document\n---\nHello, World!"
80
+ * ```
81
+ */
9
82
  export declare function liquidDocument(this: LiquidContext, input: string, vars: Record<string, unknown>, sourcemap?: SourceMap): string;
83
+ /**
84
+ * Creates a Liquid context for processing templates.
85
+ * The context contains logger and settings that control Liquid processing behavior.
86
+ *
87
+ * @param logger - Logger object with info, warn, and error methods
88
+ * @param settings - Optional settings to configure Liquid processing
89
+ * @returns Liquid context object
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const context = createContext({
94
+ * info: console.log,
95
+ * warn: console.warn,
96
+ * error: console.error,
97
+ * }, {
98
+ * conditions: true,
99
+ * cycles: true,
100
+ * substitutions: true,
101
+ * });
102
+ * ```
103
+ */
10
104
  export declare function createContext(logger: Logger, settings?: Partial<LiquidSettings>): LiquidContext;
package/lib/index.js CHANGED
@@ -1,19 +1,16 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.extractFrontMatter = exports.composeFrontMatter = exports.SourceMap = exports.NoValue = exports.evaluate = void 0;
7
4
  exports.liquidSnippet = liquidSnippet;
8
5
  exports.liquidJson = liquidJson;
9
6
  exports.liquidDocument = liquidDocument;
10
7
  exports.createContext = createContext;
11
- const cloneDeepWith_1 = __importDefault(require("lodash/cloneDeepWith"));
12
8
  const frontmatter_1 = require("./frontmatter");
13
9
  const substitutions_1 = require("./substitutions");
14
10
  const cycles_1 = require("./cycles");
15
11
  const conditions_1 = require("./conditions");
16
12
  const utils_1 = require("./utils");
13
+ const cloneDeepWith_1 = require("./utils/cloneDeepWith");
17
14
  var evaluate_1 = require("./syntax/evaluate");
18
15
  Object.defineProperty(exports, "evaluate", { enumerable: true, get: function () { return evaluate_1.evaluate; } });
19
16
  Object.defineProperty(exports, "NoValue", { enumerable: true, get: function () { return evaluate_1.NoValue; } });
@@ -22,43 +19,155 @@ Object.defineProperty(exports, "SourceMap", { enumerable: true, get: function ()
22
19
  var frontmatter_2 = require("./frontmatter");
23
20
  Object.defineProperty(exports, "composeFrontMatter", { enumerable: true, get: function () { return frontmatter_2.composeFrontMatter; } });
24
21
  Object.defineProperty(exports, "extractFrontMatter", { enumerable: true, get: function () { return frontmatter_2.extractFrontMatter; } });
22
+ /**
23
+ * Processes a Liquid template snippet (without frontmatter).
24
+ * Applies cycles, conditions, and substitutions based on context settings.
25
+ * Preserves code blocks from Liquid processing by default.
26
+ *
27
+ * **Processing Order** (current implementation):
28
+ * 1. Save code blocks (if conditionsInCode is false)
29
+ * 2. Process cycles
30
+ * 3. Process conditions
31
+ * 4. Process substitutions
32
+ * 5. Restore code blocks
33
+ *
34
+ * **Known Limitation**: The current order processes all cycles before conditions,
35
+ * which means cycles inside false condition branches are still expanded.
36
+ * A refactoring is planned to process constructs in document order.
37
+ *
38
+ * @param this - Liquid context
39
+ * @param input - Template string to process
40
+ * @param vars - Variables for Liquid processing
41
+ * @param sourcemap - Optional source map for tracking transformations
42
+ * @returns Processed string with Liquid syntax evaluated
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const snippet = 'Hello, {{ name }}!';
47
+ * const vars = { name: 'World' };
48
+ * const result = liquidSnippet.call(context, snippet, vars);
49
+ * // Result: "Hello, World!"
50
+ * ```
51
+ */
25
52
  function liquidSnippet(input, vars, sourcemap) {
26
53
  const { cycles = true, conditions = true, substitutions = true, conditionsInCode = false, } = this.settings;
27
54
  const { saveCode, repairCode } = utils_1.codeUtils.call(this);
28
55
  let output = input;
56
+ // Save code blocks before processing to preserve them from Liquid syntax processing
57
+ // This maintains source map line numbers by keeping the same number of lines
29
58
  if (!conditionsInCode) {
30
59
  output = saveCode(output, vars);
31
60
  }
61
+ // NOTE: Current processing order (cycles -> conditions -> substitutions) is not ideal.
62
+ // Ideally, we should process tags in the order they appear in the document.
63
+ // This would allow us to skip cycles inside false condition branches.
64
+ // Refactoring is planned to implement proper sequential processing.
65
+ // Process cycles first (all {% for %} blocks)
32
66
  if (cycles) {
33
67
  output = cycles_1.applyCycles.call(this, output, vars, sourcemap);
34
68
  }
69
+ // Process conditions (all {% if %} blocks)
70
+ // In strict mode, missing variables return NoValue instead of undefined
35
71
  if (conditions) {
36
72
  output = conditions_1.applyConditions.call(this, output, vars, sourcemap);
37
73
  }
74
+ // Process substitutions last (all {{ variable }} patterns)
75
+ // This allows variables from cycles/conditions to be substituted
38
76
  if (substitutions) {
39
77
  output = substitutions_1.applySubstitutions.call(this, output, vars);
40
78
  }
79
+ // Restore code blocks after processing
41
80
  if (!conditionsInCode && typeof output === 'string') {
42
81
  output = repairCode(output);
43
82
  }
44
83
  return output;
45
84
  }
85
+ /**
86
+ * Recursively processes Liquid syntax in JSON objects.
87
+ * Traverses the object structure and processes all string values with liquidSnippet.
88
+ *
89
+ * @param this - Liquid context
90
+ * @param json - JSON object to process
91
+ * @param vars - Variables for Liquid processing
92
+ * @returns Processed JSON object with Liquid syntax evaluated
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const json = { title: '{{ title }}', items: ['{{ item1 }}', '{{ item2 }}'] };
97
+ * const vars = { title: 'My Title', item1: 'First', item2: 'Second' };
98
+ * const result = liquidJson.call(context, json, vars);
99
+ * // Result: { title: 'My Title', items: ['First', 'Second'] }
100
+ * ```
101
+ */
46
102
  function liquidJson(json, vars) {
47
- return (0, cloneDeepWith_1.default)(json, (value) => typeof value === 'string' ? liquidSnippet.call(this, value, vars) : undefined);
103
+ return (0, cloneDeepWith_1.cloneDeepWith)(json, (value) => typeof value === 'string' ? liquidSnippet.call(this, value, vars) : undefined);
48
104
  }
105
+ /**
106
+ * Processes a full YFM document with frontmatter.
107
+ * Extracts and processes frontmatter separately, then processes the content body.
108
+ * Composes the result with processed frontmatter.
109
+ *
110
+ * **Frontmatter Processing**: Frontmatter is processed via `liquidJson` (not `liquidSnippet`)
111
+ * because it's extracted as an object structure, not a string. This allows processing
112
+ * Liquid syntax in all string values within the frontmatter object recursively.
113
+ *
114
+ * @param this - Liquid context
115
+ * @param input - Full YFM document string with optional frontmatter
116
+ * @param vars - Variables for Liquid processing
117
+ * @param sourcemap - Optional source map for tracking transformations
118
+ * @returns Processed document with frontmatter and content
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const document = `---
123
+ * title: {{ title }}
124
+ * ---
125
+ * Hello, {{ name }}!`;
126
+ * const vars = { title: 'My Document', name: 'World' };
127
+ * const result = liquidDocument.call(context, document, vars);
128
+ * // Result: "---\ntitle: My Document\n---\nHello, World!"
129
+ * ```
130
+ */
49
131
  function liquidDocument(input, vars, sourcemap) {
132
+ // Normalize line endings to Unix format
50
133
  const normalizedInput = input.replace(/\r\n/g, '\n');
134
+ // Extract frontmatter (returns [parsedObject, contentWithoutFrontmatter, rawFrontmatterString])
51
135
  const [frontMatter, strippedContent, rawFrontmatter] = (0, frontmatter_1.extractFrontMatter)(normalizedInput);
136
+ // Process frontmatter as an object (allows recursive processing of nested structures)
52
137
  const liquidedFrontMatter = liquidJson.call(this, frontMatter, vars);
53
138
  const composedFrontmatter = (0, frontmatter_1.composeFrontMatter)(liquidedFrontMatter);
139
+ // Update source map if frontmatter was modified
140
+ // This is important for yfmlint to report errors on original line numbers
54
141
  if (sourcemap && rawFrontmatter.length) {
55
142
  sourcemap.patch({
56
143
  replace: [[1, rawFrontmatter, composedFrontmatter]],
57
144
  });
58
145
  }
59
- const liquidedResult = liquidSnippet.call(this, strippedContent, vars);
146
+ // Process content body as a string
147
+ const liquidedResult = liquidSnippet.call(this, strippedContent, vars, sourcemap);
60
148
  return composedFrontmatter + liquidedResult;
61
149
  }
150
+ /**
151
+ * Creates a Liquid context for processing templates.
152
+ * The context contains logger and settings that control Liquid processing behavior.
153
+ *
154
+ * @param logger - Logger object with info, warn, and error methods
155
+ * @param settings - Optional settings to configure Liquid processing
156
+ * @returns Liquid context object
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const context = createContext({
161
+ * info: console.log,
162
+ * warn: console.warn,
163
+ * error: console.error,
164
+ * }, {
165
+ * conditions: true,
166
+ * cycles: true,
167
+ * substitutions: true,
168
+ * });
169
+ * ```
170
+ */
62
171
  function createContext(logger, settings = {}) {
63
172
  return {
64
173
  logger,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { LiquidContext } from './types';
2
+ export default function legacyConditions(this: LiquidContext, originInput: string, vars: Record<string, unknown>): string;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = legacyConditions;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const lexical_1 = require("./syntax/lexical");
9
+ const utils_1 = require("./utils");
10
+ const evaluate_1 = require("./syntax/evaluate");
11
+ function getElseProp({ elses }, propName, index = 0) {
12
+ if (!elses.length || index >= elses.length) {
13
+ return undefined;
14
+ }
15
+ return elses[index][propName];
16
+ }
17
+ function inlineConditions({ ifTag, vars, content, match, lastIndex }) {
18
+ let res = '';
19
+ if (evaluate_1.evaluate.call(this, ifTag.condition, vars)) {
20
+ const ifRawLastIndex = ifTag.startPos + ifTag.ifRaw.length;
21
+ const contentLastIndex = getElseProp(ifTag, 'startPos') || match.index;
22
+ res = content.substring(ifRawLastIndex, contentLastIndex);
23
+ }
24
+ else {
25
+ ifTag.elses.some(({ condition, startPos, raw }, index) => {
26
+ const isTruthy = !condition || evaluate_1.evaluate.call(this, condition, vars);
27
+ if (isTruthy) {
28
+ const elseRawLastIndex = startPos + raw.length;
29
+ const contentLastIndex = getElseProp(ifTag, 'startPos', index + 1) || match.index;
30
+ res = content.substring(elseRawLastIndex, contentLastIndex);
31
+ return true;
32
+ }
33
+ return false;
34
+ });
35
+ }
36
+ const preparedLeftContent = (0, utils_1.getPreparedLeftContent)({
37
+ content,
38
+ tagStartPos: ifTag.startPos,
39
+ tagContent: res,
40
+ });
41
+ let shift = 0;
42
+ if (res === '' &&
43
+ preparedLeftContent[preparedLeftContent.length - 1] === '\n' &&
44
+ content[lastIndex] === '\n') {
45
+ shift = 1;
46
+ }
47
+ if (res !== '') {
48
+ if (res[0] === '\n') {
49
+ res = res.substring(1);
50
+ }
51
+ res = (0, utils_1.removeIndentBlock)(res);
52
+ if (res[res.length - 1] === '\n') {
53
+ res = res.slice(0, -1);
54
+ }
55
+ }
56
+ const leftPart = preparedLeftContent + res;
57
+ return {
58
+ result: leftPart + content.substring(lastIndex + shift),
59
+ idx: leftPart.length,
60
+ };
61
+ }
62
+ function legacyConditions(originInput, vars) {
63
+ const { path } = this;
64
+ const R_LIQUID = /({%-?([\s\S]*?)-?%})/g;
65
+ let match;
66
+ const tagStack = [];
67
+ let input = originInput;
68
+ while ((match = R_LIQUID.exec(input)) !== null) {
69
+ if (!match[1]) {
70
+ continue;
71
+ }
72
+ const tagMatch = match[2].trim().match(lexical_1.tagLine);
73
+ if (!tagMatch) {
74
+ continue;
75
+ }
76
+ const [type, args] = tagMatch.slice(1);
77
+ switch (type) {
78
+ case 'if':
79
+ tagStack.push({
80
+ condition: args,
81
+ startPos: match.index,
82
+ ifRaw: match[1],
83
+ elses: [],
84
+ });
85
+ break;
86
+ case 'else': {
87
+ const currentTag = tagStack[tagStack.length - 1];
88
+ if (!currentTag) {
89
+ this.logger.error(`Else block must have a preceding if block${path ? ` in ${chalk_1.default.bold(path)}` : ''}`);
90
+ break;
91
+ }
92
+ currentTag.elses.push({
93
+ startPos: match.index,
94
+ raw: match[1],
95
+ });
96
+ break;
97
+ }
98
+ case 'elsif': {
99
+ const currentTag = tagStack[tagStack.length - 1];
100
+ if (!currentTag) {
101
+ this.logger.error(`Elsif block must have a preceding if block${path ? ` in ${chalk_1.default.bold(path)}` : ''}`);
102
+ break;
103
+ }
104
+ currentTag.elses.push({
105
+ condition: args,
106
+ startPos: match.index,
107
+ raw: match[1],
108
+ });
109
+ break;
110
+ }
111
+ case 'endif': {
112
+ const ifTag = tagStack.pop();
113
+ if (!ifTag) {
114
+ this.logger.error(`If block must be opened before close${path ? ` in ${chalk_1.default.bold(path)}` : ''}`);
115
+ break;
116
+ }
117
+ const { idx, result } = inlineConditions.call(this, {
118
+ ifTag,
119
+ vars,
120
+ content: input,
121
+ match,
122
+ lastIndex: R_LIQUID.lastIndex,
123
+ });
124
+ R_LIQUID.lastIndex = idx;
125
+ input = result;
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ if (tagStack.length !== 0) {
131
+ this.logger.error(`Condition block must be closed${path ? ` in ${chalk_1.default.bold(path)}` : ''}`);
132
+ }
133
+ return input;
134
+ }
135
+ //# sourceMappingURL=legacyConditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyConditions.js","sourceRoot":"","sources":["../src/legacyConditions.ts"],"names":[],"mappings":"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"}
package/lib/sourcemap.js CHANGED
@@ -37,8 +37,9 @@ class SourceMap {
37
37
  }
38
38
  }
39
39
  }
40
- // TODO: thisk about this
41
- // Promise.resolve().then(() => lazy = null);
40
+ // TODO: Consider memory optimization - clear lazy map after dump
41
+ // The lazy map could be cleared asynchronously after dump() is called
42
+ // to free memory, but this was not implemented to avoid potential race conditions
42
43
  return lazy;
43
44
  };
44
45
  return new Proxy({}, {
@@ -1 +1 @@
1
- {"version":3,"file":"sourcemap.js","sourceRoot":"","sources":["../src/sourcemap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourcemap.js","sourceRoot":"","sources":["../src/sourcemap.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,15 @@ const operators = {
78
78
  }),
79
79
  };
80
80
  exports.NoValue = Symbol('NoValue');
81
+ /**
82
+ * Evaluates a value from a string expression.
83
+ * In strict mode, missing variables return NoValue instead of undefined.
84
+ *
85
+ * @param originStr - String expression to evaluate
86
+ * @param scope - Variable scope
87
+ * @param strict - If true, missing variables return NoValue; if false, return undefined
88
+ * @returns Evaluated value, NoValue (in strict mode), or undefined
89
+ */
81
90
  function evalValue(originStr, scope, strict) {
82
91
  const str = originStr && originStr.trim();
83
92
  if (!str) {
@@ -87,6 +96,8 @@ function evalValue(originStr, scope, strict) {
87
96
  return lexical.parseLiteral(str);
88
97
  }
89
98
  if (lexical.isVariable(str)) {
99
+ // In strict mode, missing variables return NoValue (Symbol) instead of undefined
100
+ // This affects condition evaluation - NoValue is considered falsy
90
101
  return (0, utils_1.getObject)(str, scope, strict ? exports.NoValue : undefined);
91
102
  }
92
103
  throw new TypeError(`cannot eval '${str}' as value`);
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/syntax/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/syntax/evaluate.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -10,6 +10,7 @@ export type LiquidSettings = {
10
10
  cycles?: boolean;
11
11
  substitutions?: boolean;
12
12
  keepNotVar?: boolean;
13
+ legacyConditions?: boolean;
13
14
  };
14
15
  export type LiquidContext = {
15
16
  logger: Logger;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Recursively clones an object, applying a customizer function to each value.
3
+ * Similar to lodash's cloneDeepWith, but implemented natively.
4
+ *
5
+ * @param value - The value to clone
6
+ * @param customizer - Function that produces custom cloned values
7
+ * @returns Cloned value
8
+ */
9
+ export declare function cloneDeepWith<T>(value: T, customizer: (val: unknown) => unknown | undefined): T;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneDeepWith = cloneDeepWith;
4
+ /**
5
+ * Recursively clones an object, applying a customizer function to each value.
6
+ * Similar to lodash's cloneDeepWith, but implemented natively.
7
+ *
8
+ * @param value - The value to clone
9
+ * @param customizer - Function that produces custom cloned values
10
+ * @returns Cloned value
11
+ */
12
+ function cloneDeepWith(value, customizer) {
13
+ if (value === null || typeof value !== 'object') {
14
+ const custom = customizer(value);
15
+ if (custom !== undefined) {
16
+ return custom;
17
+ }
18
+ return value;
19
+ }
20
+ if (value instanceof Date) {
21
+ return new Date(value.getTime());
22
+ }
23
+ if (value instanceof RegExp) {
24
+ return new RegExp(value);
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return value.map((item) => cloneDeepWith(item, customizer));
28
+ }
29
+ const cloned = {};
30
+ for (const key in value) {
31
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
32
+ const custom = customizer(value[key]);
33
+ if (custom === undefined) {
34
+ cloned[key] = cloneDeepWith(value[key], customizer);
35
+ }
36
+ else {
37
+ cloned[key] = custom;
38
+ }
39
+ }
40
+ }
41
+ return cloned;
42
+ }
43
+ //# sourceMappingURL=cloneDeepWith.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneDeepWith.js","sourceRoot":"","sources":["../../src/utils/cloneDeepWith.ts"],"names":[],"mappings":";;AAQA,sCAkCC;AA1CD;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAI,KAAQ,EAAE,UAAiD;IACxF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAW,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAM,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,MAAM,CAAC,KAAK,CAAM,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAM,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,EAAO,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,GAAG,CAAC,GAAG,MAAqC,CAAC;YACxD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
package/lib/utils.js CHANGED
@@ -48,13 +48,18 @@ function codeUtils() {
48
48
  };
49
49
  const saveCode = (str, vars) => {
50
50
  return replace(fence, fence, (code) => {
51
+ // Apply substitutions to code blocks if enabled
52
+ // This allows variables in code examples to be processed
51
53
  const codeWithVars = substitutions
52
54
  ? substitutions_1.applySubstitutions.call(this, code, vars)
53
55
  : code;
54
56
  const index = codes.push(codeWithVars) - 1;
55
- /* Keep the same count of lines to avoid transformation of the source map */
57
+ // Keep the same number of lines to preserve source map accuracy
58
+ // Source maps are used by yfmlint to report errors on original line numbers
59
+ // The emptyLines preserve line count so source map mappings remain correct
56
60
  const codeLines = codeWithVars.split('\n');
57
61
  const emptyLines = codeLines.length > 1 ? '\n'.repeat(codeLines.length) : '';
62
+ // Return placeholder: index for lookup + empty lines for line count preservation
58
63
  return `${index}${emptyLines}`;
59
64
  }, str);
60
65
  };
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@diplodoc/liquid",
3
- "version": "1.3.4",
4
- "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
3
+ "version": "1.5.0",
4
+ "description": "A small and fast implementation of basic Liquid syntax for processing YFM (Yandex Flavored Markdown) documents",
5
5
  "keywords": [
6
6
  "docs",
7
7
  "yfm",
@@ -11,6 +11,9 @@
11
11
  "tools",
12
12
  "generator"
13
13
  ],
14
+ "engines": {
15
+ "npm": ">=11.5.1"
16
+ },
14
17
  "homepage": "https://github.com/diplodoc-platform/liquid#readme",
15
18
  "bugs": {
16
19
  "url": "https://github.com/diplodoc-platform/liquid/issues"
@@ -37,7 +40,9 @@
37
40
  "build:lib": "tsc -p tsconfig.transform.json",
38
41
  "dev:lib": "tsc -w -p tsconfig.transform.json",
39
42
  "prepublishOnly": "npm run lint && npm run test && npm run build",
40
- "test": "jest --coverage",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest",
45
+ "test:coverage": "vitest run --coverage",
41
46
  "typecheck": "tsc -p tsconfig.json --noEmit",
42
47
  "lint": "lint update && lint",
43
48
  "lint:fix": "lint update && lint fix",
@@ -46,19 +51,16 @@
46
51
  },
47
52
  "dependencies": {
48
53
  "chalk": "4",
49
- "js-yaml": "^4.1.0",
50
- "lodash": "^4.17.21"
54
+ "js-yaml": "^4.1.0"
51
55
  },
52
56
  "devDependencies": {
53
- "@diplodoc/lint": "^1.2.1",
57
+ "@diplodoc/lint": "^1.8.0",
54
58
  "@diplodoc/tsconfig": "^1.0.2",
55
- "@types/jest": "^28.1.7",
56
59
  "@types/js-yaml": "^4.0.9",
57
- "@types/lodash": "^4.17.15",
58
- "jest": "^29.7.0",
60
+ "@vitest/coverage-v8": "^2.1.9",
59
61
  "npm-run-all": "^4.1.5",
60
62
  "ts-dedent": "^2.2.0",
61
- "ts-jest": "^29.2.6",
62
- "typescript": "^5.2.2"
63
+ "typescript": "^5.2.2",
64
+ "vitest": "^2.1.9"
63
65
  }
64
66
  }