@diplodoc/liquid 1.0.0 → 1.1.1

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 (71) hide show
  1. package/lib/conditions.d.ts +3 -0
  2. package/lib/{liquid/conditions.js → conditions.js} +30 -51
  3. package/lib/conditions.js.map +1 -0
  4. package/lib/cycles.d.ts +3 -0
  5. package/lib/cycles.js +128 -0
  6. package/lib/cycles.js.map +1 -0
  7. package/lib/{liquid/errors.js → errors.js} +5 -2
  8. package/lib/errors.js.map +1 -0
  9. package/lib/frontmatter.d.ts +3 -4
  10. package/lib/frontmatter.js +14 -35
  11. package/lib/frontmatter.js.map +1 -1
  12. package/lib/index.d.ts +9 -0
  13. package/lib/index.js +73 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/sourcemap.d.ts +19 -0
  16. package/lib/sourcemap.js +99 -0
  17. package/lib/sourcemap.js.map +1 -0
  18. package/lib/substitutions.d.ts +2 -0
  19. package/lib/substitutions.js +51 -0
  20. package/lib/substitutions.js.map +1 -0
  21. package/lib/syntax/evaluate.d.ts +3 -0
  22. package/lib/{liquid/evaluation.js → syntax/evaluate.js} +34 -28
  23. package/lib/syntax/evaluate.js.map +1 -0
  24. package/lib/{liquid → syntax}/filters.d.ts +0 -6
  25. package/lib/{liquid → syntax}/filters.js +3 -10
  26. package/lib/syntax/filters.js.map +1 -0
  27. package/lib/{liquid → syntax}/lexical.js +5 -5
  28. package/lib/syntax/lexical.js.map +1 -0
  29. package/lib/types.d.ts +17 -0
  30. package/lib/types.js +3 -0
  31. package/lib/types.js.map +1 -0
  32. package/lib/utils.d.ts +19 -0
  33. package/lib/utils.js +89 -0
  34. package/lib/utils.js.map +1 -0
  35. package/package.json +16 -15
  36. package/lib/getObject.d.ts +0 -2
  37. package/lib/getObject.js +0 -14
  38. package/lib/getObject.js.map +0 -1
  39. package/lib/liquid/conditions.d.ts +0 -6
  40. package/lib/liquid/conditions.js.map +0 -1
  41. package/lib/liquid/cycles.d.ts +0 -4
  42. package/lib/liquid/cycles.js +0 -154
  43. package/lib/liquid/cycles.js.map +0 -1
  44. package/lib/liquid/errors.js.map +0 -1
  45. package/lib/liquid/evaluation.d.ts +0 -4
  46. package/lib/liquid/evaluation.js.map +0 -1
  47. package/lib/liquid/filters.js.map +0 -1
  48. package/lib/liquid/index.d.ts +0 -15
  49. package/lib/liquid/index.js +0 -132
  50. package/lib/liquid/index.js.map +0 -1
  51. package/lib/liquid/legacyConditions.d.ts +0 -4
  52. package/lib/liquid/legacyConditions.js +0 -174
  53. package/lib/liquid/legacyConditions.js.map +0 -1
  54. package/lib/liquid/lexical.js.map +0 -1
  55. package/lib/liquid/services/argv.d.ts +0 -16
  56. package/lib/liquid/services/argv.js +0 -17
  57. package/lib/liquid/services/argv.js.map +0 -1
  58. package/lib/liquid/sourceMap.d.ts +0 -19
  59. package/lib/liquid/sourceMap.js +0 -51
  60. package/lib/liquid/sourceMap.js.map +0 -1
  61. package/lib/liquid/substitutions.d.ts +0 -2
  62. package/lib/liquid/substitutions.js +0 -56
  63. package/lib/liquid/substitutions.js.map +0 -1
  64. package/lib/liquid/utils.d.ts +0 -8
  65. package/lib/liquid/utils.js +0 -24
  66. package/lib/liquid/utils.js.map +0 -1
  67. package/lib/log.d.ts +0 -18
  68. package/lib/log.js +0 -54
  69. package/lib/log.js.map +0 -1
  70. /package/lib/{liquid/errors.d.ts → errors.d.ts} +0 -0
  71. /package/lib/{liquid → syntax}/lexical.d.ts +0 -0
@@ -1,51 +0,0 @@
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.createSourceMapApi = exports.prepareSourceMap = exports.getLineNumber = void 0;
7
- const invert_1 = __importDefault(require("lodash/invert"));
8
- const DELETED_LINE = Number.MIN_SAFE_INTEGER;
9
- function getLineNumber(input, index) {
10
- return input.substring(0, index).split('\n').length;
11
- }
12
- exports.getLineNumber = getLineNumber;
13
- function prepareSourceMap(sourceMap) {
14
- const newToOldMap = (0, invert_1.default)(sourceMap);
15
- delete newToOldMap[DELETED_LINE];
16
- return newToOldMap;
17
- }
18
- exports.prepareSourceMap = prepareSourceMap;
19
- function createSourceMapApi(sourceMap) {
20
- const newToOldIndexes = (0, invert_1.default)(sourceMap);
21
- const getOriginIndex = (i) => Number(newToOldIndexes[i]);
22
- const setSourceMapValue = (i, value) => {
23
- sourceMap[getOriginIndex(i)] = value;
24
- };
25
- const getSourceMapValue = (i) => sourceMap[getOriginIndex(i)];
26
- const moveLines = ({ start, end, offset, withReplace = false }) => {
27
- for (let i = start; i <= end; i++) {
28
- const newLineNumber = i + offset;
29
- setSourceMapValue(i, newLineNumber);
30
- if (withReplace) {
31
- setSourceMapValue(newLineNumber, DELETED_LINE);
32
- }
33
- }
34
- };
35
- const removeLine = (i) => {
36
- setSourceMapValue(i, DELETED_LINE);
37
- };
38
- const removeLines = ({ start, end }) => {
39
- for (let i = start; i <= end; i++) {
40
- removeLine(i);
41
- }
42
- };
43
- return {
44
- getSourceMapValue,
45
- moveLines,
46
- removeLines,
47
- removeLine,
48
- };
49
- }
50
- exports.createSourceMapApi = createSourceMapApi;
51
- //# sourceMappingURL=sourceMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sourceMap.js","sourceRoot":"","sources":["../../src/transform/liquid/sourceMap.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAmC;AAEnC,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE7C,SAAgB,aAAa,CAAC,KAAa,EAAE,KAAa;IACtD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC;AAFD,sCAEC;AAED,SAAgB,gBAAgB,CAAC,SAAiB;IAC9C,MAAM,WAAW,GAAG,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;IACtC,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IAEjC,OAAO,WAAW,CAAC;AACvB,CAAC;AALD,4CAKC;AAWD,SAAgB,kBAAkB,CAAC,SAAiC;IAChE,MAAM,eAAe,GAAG,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,KAAa,EAAE,EAAE;QACnD,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzC,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,SAAS,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,KAAK,EAAmB,EAAE,EAAE;QAC9E,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC;YACjC,iBAAiB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YAEpC,IAAI,WAAW,EAAE;gBACb,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;aAClD;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE;QAC7B,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,EAAC,KAAK,EAAE,GAAG,EAA+B,EAAE,EAAE;QAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;YAC/B,UAAU,CAAC,CAAC,CAAC,CAAC;SACjB;IACL,CAAC,CAAC;IAEF,OAAO;QACH,iBAAiB;QACjB,SAAS;QACT,WAAW;QACX,UAAU;KACb,CAAC;AACN,CAAC;AArCD,gDAqCC"}
@@ -1,2 +0,0 @@
1
- declare const substitutions: (str: string, builtVars: Record<string, unknown>, path?: string) => any;
2
- export = substitutions;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const chalk_1 = require("chalk");
6
- const getObject_1 = __importDefault(require("../getObject"));
7
- const log_1 = require("../log");
8
- const argv_1 = __importDefault(require("./services/argv"));
9
- const evaluation_1 = require("./evaluation");
10
- const lexical_1 = require("./lexical");
11
- const substitutions = (str, builtVars, path) => {
12
- const { keepNotVar } = argv_1.default.getConfig();
13
- if ((0, lexical_1.isSingleVariable)(str)) {
14
- const match = str.match(lexical_1.singleVariable);
15
- if (!match) {
16
- return str;
17
- }
18
- const trimVarPath = match[1].trim();
19
- const value = substituteVariable(trimVarPath, builtVars);
20
- if (value === undefined) {
21
- logNotFoundVariable(trimVarPath, path);
22
- return str;
23
- }
24
- return value;
25
- }
26
- return str.replace(lexical_1.vars, (match, _groupNotVar, flag, groupVar, groupVarValue) => {
27
- if (flag) {
28
- return keepNotVar ? _groupNotVar : groupVar;
29
- }
30
- const trimVarPath = groupVarValue.trim();
31
- if (trimVarPath.startsWith('.')) {
32
- return groupVar;
33
- }
34
- const value = substituteVariable(trimVarPath, builtVars);
35
- if (value === undefined) {
36
- logNotFoundVariable(trimVarPath, path);
37
- return match;
38
- }
39
- return value;
40
- });
41
- };
42
- function logNotFoundVariable(varPath, path) {
43
- log_1.log.warn(`Variable ${(0, chalk_1.bold)(varPath)} not found${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
44
- }
45
- function substituteVariable(varPath, builtVars) {
46
- let value;
47
- if ((0, lexical_1.isVariable)(varPath)) {
48
- value = (0, getObject_1.default)(varPath, builtVars);
49
- }
50
- else {
51
- value = (0, evaluation_1.evalExp)(varPath, builtVars);
52
- }
53
- return value;
54
- }
55
- module.exports = substitutions;
56
- //# sourceMappingURL=substitutions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"substitutions.js","sourceRoot":"","sources":["../../src/transform/liquid/substitutions.ts"],"names":[],"mappings":";;;;AAAA,iCAA2B;AAE3B,6DAAqC;AACrC,gCAA2B;AAE3B,2DAA0C;AAC1C,6CAAqC;AACrC,uCAKmB;AAEnB,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,SAAkC,EAAE,IAAa,EAAE,EAAE;IACrF,MAAM,EAAC,UAAU,EAAC,GAAG,cAAW,CAAC,SAAS,EAAE,CAAC;IAE7C,IAAI,IAAA,0BAAgB,EAAC,GAAG,CAAC,EAAE;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAgB,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,GAAG,CAAC;SACd;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEzD,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAEvC,OAAO,GAAG,CAAC;SACd;QAED,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,GAAG,CAAC,OAAO,CAAC,cAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE;QAC9E,IAAI,IAAI,EAAE;YACN,OAAO,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC/C;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAEzC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,QAAQ,CAAC;SACnB;QAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEzD,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAEvC,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAe,EAAE,IAAa;IACvD,SAAG,CAAC,IAAI,CAAC,YAAY,IAAA,YAAI,EAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,SAAkC;IAC3E,IAAI,KAAK,CAAC;IACV,IAAI,IAAA,oBAAU,EAAC,OAAO,CAAC,EAAE;QACrB,KAAK,GAAG,IAAA,mBAAS,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACzC;SAAM;QACH,KAAK,GAAG,IAAA,oBAAO,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACvC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,iBAAS,aAAa,CAAC"}
@@ -1,8 +0,0 @@
1
- export declare function removeIndentBlock(str: string): string;
2
- declare type Opts = {
3
- content: string;
4
- tagStartPos: number;
5
- tagContent: string;
6
- };
7
- export declare function getPreparedLeftContent({ content, tagStartPos, tagContent }: Opts): string;
8
- export {};
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPreparedLeftContent = exports.removeIndentBlock = void 0;
4
- function removeIndentBlock(str) {
5
- let i = str.length - 1;
6
- let curChar = str[i];
7
- while (curChar === ' ') {
8
- curChar = str[--i];
9
- }
10
- if (curChar === '\n') {
11
- return str.substring(0, i + 1);
12
- }
13
- return str;
14
- }
15
- exports.removeIndentBlock = removeIndentBlock;
16
- function getPreparedLeftContent({ content, tagStartPos, tagContent }) {
17
- const preparedLeftContent = content.substring(0, tagStartPos);
18
- if (tagContent === '') {
19
- return removeIndentBlock(preparedLeftContent);
20
- }
21
- return preparedLeftContent;
22
- }
23
- exports.getPreparedLeftContent = getPreparedLeftContent;
24
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/transform/liquid/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,GAAW;IACzC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAErB,OAAO,OAAO,KAAK,GAAG,EAAE;QACpB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACtB;IAED,IAAI,OAAO,KAAK,IAAI,EAAE;QAClB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAbD,8CAaC;AAQD,SAAgB,sBAAsB,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAO;IAC3E,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAE9D,IAAI,UAAU,KAAK,EAAE,EAAE;QACnB,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;KACjD;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AARD,wDAQC"}
package/lib/log.d.ts DELETED
@@ -1,18 +0,0 @@
1
- export declare enum LogLevels {
2
- INFO = "info",
3
- WARN = "warn",
4
- ERROR = "error",
5
- DISABLED = "disabled"
6
- }
7
- export declare const log: {
8
- info: (msg: string) => void;
9
- warn: (msg: string) => void;
10
- error: (msg: string) => void;
11
- LogLevels: typeof LogLevels;
12
- get: () => Record<LogLevels, string[]>;
13
- add: (logs: Record<LogLevels, string[]>) => void;
14
- clear: () => void;
15
- isEmpty: () => boolean;
16
- };
17
- export declare type Logger = typeof log;
18
- export default log;
package/lib/log.js DELETED
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.log = exports.LogLevels = void 0;
4
- const chalk_1 = require("chalk");
5
- var LogLevels;
6
- (function (LogLevels) {
7
- LogLevels["INFO"] = "info";
8
- LogLevels["WARN"] = "warn";
9
- LogLevels["ERROR"] = "error";
10
- LogLevels["DISABLED"] = "disabled";
11
- })(LogLevels = exports.LogLevels || (exports.LogLevels = {}));
12
- const problems = {
13
- [LogLevels.INFO]: [],
14
- [LogLevels.WARN]: [],
15
- [LogLevels.ERROR]: [],
16
- [LogLevels.DISABLED]: [],
17
- };
18
- function createLogger(type) {
19
- const formatter = {
20
- [LogLevels.INFO]: (msg) => `${(0, chalk_1.green)('INFO')} ${msg}`,
21
- [LogLevels.WARN]: (msg) => `${(0, chalk_1.yellow)('WARN')} ${msg}`,
22
- [LogLevels.ERROR]: (msg) => `${(0, chalk_1.red)('ERR')} ${msg}`,
23
- };
24
- return function log(msg) {
25
- const problem = formatter[type](msg);
26
- if (!problems[type].includes(problem)) {
27
- problems[type].push(problem);
28
- }
29
- };
30
- }
31
- exports.log = {
32
- [LogLevels.INFO]: createLogger(LogLevels.INFO),
33
- [LogLevels.WARN]: createLogger(LogLevels.WARN),
34
- [LogLevels.ERROR]: createLogger(LogLevels.ERROR),
35
- LogLevels,
36
- get: () => problems,
37
- add: (logs) => {
38
- problems[LogLevels.INFO] = problems[LogLevels.INFO].concat(logs[LogLevels.INFO]);
39
- problems[LogLevels.WARN] = problems[LogLevels.WARN].concat(logs[LogLevels.WARN]);
40
- problems[LogLevels.ERROR] = problems[LogLevels.ERROR].concat(logs[LogLevels.ERROR]);
41
- },
42
- clear: () => {
43
- problems[LogLevels.INFO] = [];
44
- problems[LogLevels.WARN] = [];
45
- problems[LogLevels.ERROR] = [];
46
- },
47
- isEmpty: () => {
48
- return !(problems[LogLevels.INFO].length ||
49
- problems[LogLevels.WARN].length ||
50
- problems[LogLevels.ERROR].length);
51
- },
52
- };
53
- exports.default = exports.log;
54
- //# sourceMappingURL=log.js.map
package/lib/log.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/transform/log.ts"],"names":[],"mappings":"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"}
File without changes
File without changes