@diplodoc/transform 4.0.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.
Files changed (355) hide show
  1. package/CHANGELOG.diplodoc.md +38 -0
  2. package/CHANGELOG.md +404 -0
  3. package/LICENSE +21 -0
  4. package/README.md +41 -0
  5. package/README.ru.md +36 -0
  6. package/dist/css/yfm.css +736 -0
  7. package/dist/css/yfm.css.map +7 -0
  8. package/dist/css/yfm.min.css +2 -0
  9. package/dist/css/yfm.min.css.map +7 -0
  10. package/dist/js/code.d.ts +1 -0
  11. package/dist/js/cut.d.ts +1 -0
  12. package/dist/js/index.d.ts +5 -0
  13. package/dist/js/polyfill.d.ts +1 -0
  14. package/dist/js/tabs.d.ts +1 -0
  15. package/dist/js/term/index.d.ts +1 -0
  16. package/dist/js/term/utils.d.ts +10 -0
  17. package/dist/js/utils.d.ts +2 -0
  18. package/dist/js/yfm.js +432 -0
  19. package/dist/js/yfm.js.map +7 -0
  20. package/dist/js/yfm.min.js +2 -0
  21. package/dist/js/yfm.min.js.map +7 -0
  22. package/lib/getObject.d.ts +2 -0
  23. package/lib/getObject.js +11 -0
  24. package/lib/getObject.js.map +1 -0
  25. package/lib/headings.d.ts +4 -0
  26. package/lib/headings.js +73 -0
  27. package/lib/headings.js.map +1 -0
  28. package/lib/highlight.d.ts +3 -0
  29. package/lib/highlight.js +29 -0
  30. package/lib/highlight.js.map +1 -0
  31. package/lib/index.d.ts +7 -0
  32. package/lib/index.js +35 -0
  33. package/lib/index.js.map +1 -0
  34. package/lib/liquid/conditions.d.ts +4 -0
  35. package/lib/liquid/conditions.js +181 -0
  36. package/lib/liquid/conditions.js.map +1 -0
  37. package/lib/liquid/cycles.d.ts +4 -0
  38. package/lib/liquid/cycles.js +160 -0
  39. package/lib/liquid/cycles.js.map +1 -0
  40. package/lib/liquid/errors.d.ts +3 -0
  41. package/lib/liquid/errors.js +13 -0
  42. package/lib/liquid/errors.js.map +1 -0
  43. package/lib/liquid/evaluation.d.ts +3 -0
  44. package/lib/liquid/evaluation.js +138 -0
  45. package/lib/liquid/evaluation.js.map +1 -0
  46. package/lib/liquid/filters.d.ts +9 -0
  47. package/lib/liquid/filters.js +22 -0
  48. package/lib/liquid/filters.js.map +1 -0
  49. package/lib/liquid/index.d.ts +9 -0
  50. package/lib/liquid/index.js +87 -0
  51. package/lib/liquid/index.js.map +1 -0
  52. package/lib/liquid/lexical.d.ts +14 -0
  53. package/lib/liquid/lexical.js +79 -0
  54. package/lib/liquid/lexical.js.map +1 -0
  55. package/lib/liquid/services/argv.d.ts +15 -0
  56. package/lib/liquid/services/argv.js +17 -0
  57. package/lib/liquid/services/argv.js.map +1 -0
  58. package/lib/liquid/sourceMap.d.ts +24 -0
  59. package/lib/liquid/sourceMap.js +56 -0
  60. package/lib/liquid/sourceMap.js.map +1 -0
  61. package/lib/liquid/substitutions.d.ts +2 -0
  62. package/lib/liquid/substitutions.js +36 -0
  63. package/lib/liquid/substitutions.js.map +1 -0
  64. package/lib/liquid/utils.d.ts +8 -0
  65. package/lib/liquid/utils.js +24 -0
  66. package/lib/liquid/utils.js.map +1 -0
  67. package/lib/log.d.ts +18 -0
  68. package/lib/log.js +54 -0
  69. package/lib/log.js.map +1 -0
  70. package/lib/md.d.ts +14 -0
  71. package/lib/md.js +96 -0
  72. package/lib/md.js.map +1 -0
  73. package/lib/plugins/anchors/collect.d.ts +5 -0
  74. package/lib/plugins/anchors/collect.js +81 -0
  75. package/lib/plugins/anchors/collect.js.map +1 -0
  76. package/lib/plugins/anchors/constants.d.ts +2 -0
  77. package/lib/plugins/anchors/constants.js +6 -0
  78. package/lib/plugins/anchors/constants.js.map +1 -0
  79. package/lib/plugins/anchors/index.d.ts +7 -0
  80. package/lib/plugins/anchors/index.js +134 -0
  81. package/lib/plugins/anchors/index.js.map +1 -0
  82. package/lib/plugins/changelog/collect.d.ts +8 -0
  83. package/lib/plugins/changelog/collect.js +50 -0
  84. package/lib/plugins/changelog/collect.js.map +1 -0
  85. package/lib/plugins/changelog/index.d.ts +6 -0
  86. package/lib/plugins/changelog/index.js +131 -0
  87. package/lib/plugins/changelog/index.js.map +1 -0
  88. package/lib/plugins/changelog/types.d.ts +10 -0
  89. package/lib/plugins/changelog/types.js +3 -0
  90. package/lib/plugins/changelog/types.js.map +1 -0
  91. package/lib/plugins/checkbox/checkbox.d.ts +7 -0
  92. package/lib/plugins/checkbox/checkbox.js +91 -0
  93. package/lib/plugins/checkbox/checkbox.js.map +1 -0
  94. package/lib/plugins/checkbox/index.d.ts +8 -0
  95. package/lib/plugins/checkbox/index.js +12 -0
  96. package/lib/plugins/checkbox/index.js.map +1 -0
  97. package/lib/plugins/code.d.ts +3 -0
  98. package/lib/plugins/code.js +61 -0
  99. package/lib/plugins/code.js.map +1 -0
  100. package/lib/plugins/cut.d.ts +3 -0
  101. package/lib/plugins/cut.js +70 -0
  102. package/lib/plugins/cut.js.map +1 -0
  103. package/lib/plugins/deflist.d.ts +3 -0
  104. package/lib/plugins/deflist.js +8 -0
  105. package/lib/plugins/deflist.js.map +1 -0
  106. package/lib/plugins/file/const.d.ts +27 -0
  107. package/lib/plugins/file/const.js +47 -0
  108. package/lib/plugins/file/const.js.map +1 -0
  109. package/lib/plugins/file/file.d.ts +8 -0
  110. package/lib/plugins/file/file.js +63 -0
  111. package/lib/plugins/file/file.js.map +1 -0
  112. package/lib/plugins/file/index.d.ts +4 -0
  113. package/lib/plugins/file/index.js +9 -0
  114. package/lib/plugins/file/index.js.map +1 -0
  115. package/lib/plugins/images/collect.d.ts +8 -0
  116. package/lib/plugins/images/collect.js +43 -0
  117. package/lib/plugins/images/collect.js.map +1 -0
  118. package/lib/plugins/images/index.d.ts +10 -0
  119. package/lib/plugins/images/index.js +81 -0
  120. package/lib/plugins/images/index.js.map +1 -0
  121. package/lib/plugins/imsize/const.d.ts +7 -0
  122. package/lib/plugins/imsize/const.js +12 -0
  123. package/lib/plugins/imsize/const.js.map +1 -0
  124. package/lib/plugins/imsize/helpers.d.ts +6 -0
  125. package/lib/plugins/imsize/helpers.js +64 -0
  126. package/lib/plugins/imsize/helpers.js.map +1 -0
  127. package/lib/plugins/imsize/index.d.ts +8 -0
  128. package/lib/plugins/imsize/index.js +12 -0
  129. package/lib/plugins/imsize/index.js.map +1 -0
  130. package/lib/plugins/imsize/plugin.d.ts +3 -0
  131. package/lib/plugins/imsize/plugin.js +188 -0
  132. package/lib/plugins/imsize/plugin.js.map +1 -0
  133. package/lib/plugins/includes/collect.d.ts +8 -0
  134. package/lib/plugins/includes/collect.js +49 -0
  135. package/lib/plugins/includes/collect.js.map +1 -0
  136. package/lib/plugins/includes/index.d.ts +8 -0
  137. package/lib/plugins/includes/index.js +98 -0
  138. package/lib/plugins/includes/index.js.map +1 -0
  139. package/lib/plugins/links/collect.d.ts +7 -0
  140. package/lib/plugins/links/collect.js +74 -0
  141. package/lib/plugins/links/collect.js.map +1 -0
  142. package/lib/plugins/links/constants.d.ts +1 -0
  143. package/lib/plugins/links/constants.js +5 -0
  144. package/lib/plugins/links/constants.js.map +1 -0
  145. package/lib/plugins/links/index.d.ts +24 -0
  146. package/lib/plugins/links/index.js +178 -0
  147. package/lib/plugins/links/index.js.map +1 -0
  148. package/lib/plugins/meta.d.ts +3 -0
  149. package/lib/plugins/meta.js +8 -0
  150. package/lib/plugins/meta.js.map +1 -0
  151. package/lib/plugins/monospace.d.ts +3 -0
  152. package/lib/plugins/monospace.js +109 -0
  153. package/lib/plugins/monospace.js.map +1 -0
  154. package/lib/plugins/notes.d.ts +3 -0
  155. package/lib/plugins/notes.js +103 -0
  156. package/lib/plugins/notes.js.map +1 -0
  157. package/lib/plugins/sup.d.ts +3 -0
  158. package/lib/plugins/sup.js +8 -0
  159. package/lib/plugins/sup.js.map +1 -0
  160. package/lib/plugins/table/index.d.ts +3 -0
  161. package/lib/plugins/table/index.js +215 -0
  162. package/lib/plugins/table/index.js.map +1 -0
  163. package/lib/plugins/tabs.d.ts +4 -0
  164. package/lib/plugins/tabs.js +4 -0
  165. package/lib/plugins/tabs.js.map +1 -0
  166. package/lib/plugins/term/constants.d.ts +1 -0
  167. package/lib/plugins/term/constants.js +5 -0
  168. package/lib/plugins/term/constants.js.map +1 -0
  169. package/lib/plugins/term/index.d.ts +3 -0
  170. package/lib/plugins/term/index.js +108 -0
  171. package/lib/plugins/term/index.js.map +1 -0
  172. package/lib/plugins/term/termDefinitions.d.ts +4 -0
  173. package/lib/plugins/term/termDefinitions.js +125 -0
  174. package/lib/plugins/term/termDefinitions.js.map +1 -0
  175. package/lib/plugins/typings.d.ts +12 -0
  176. package/lib/plugins/typings.js +3 -0
  177. package/lib/plugins/typings.js.map +1 -0
  178. package/lib/plugins/utils.d.ts +6 -0
  179. package/lib/plugins/utils.js +30 -0
  180. package/lib/plugins/utils.js.map +1 -0
  181. package/lib/plugins/video/const.d.ts +10 -0
  182. package/lib/plugins/video/const.js +22 -0
  183. package/lib/plugins/video/const.js.map +1 -0
  184. package/lib/plugins/video/index.d.ts +8 -0
  185. package/lib/plugins/video/index.js +104 -0
  186. package/lib/plugins/video/index.js.map +1 -0
  187. package/lib/plugins/video/parsers.d.ts +6 -0
  188. package/lib/plugins/video/parsers.js +64 -0
  189. package/lib/plugins/video/parsers.js.map +1 -0
  190. package/lib/plugins/video/types.d.ts +34 -0
  191. package/lib/plugins/video/types.js +3 -0
  192. package/lib/plugins/video/types.js.map +1 -0
  193. package/lib/plugins/video/utils.d.ts +2 -0
  194. package/lib/plugins/video/utils.js +25 -0
  195. package/lib/plugins/video/utils.js.map +1 -0
  196. package/lib/plugins.d.ts +3 -0
  197. package/lib/plugins.js +36 -0
  198. package/lib/plugins.js.map +1 -0
  199. package/lib/sanitize.d.ts +12 -0
  200. package/lib/sanitize.js +572 -0
  201. package/lib/sanitize.js.map +1 -0
  202. package/lib/title.d.ts +7 -0
  203. package/lib/title.js +18 -0
  204. package/lib/title.js.map +1 -0
  205. package/lib/typings.d.ts +57 -0
  206. package/lib/typings.js +3 -0
  207. package/lib/typings.js.map +1 -0
  208. package/lib/utils.d.ts +13 -0
  209. package/lib/utils.js +79 -0
  210. package/lib/utils.js.map +1 -0
  211. package/lib/utilsFS.d.ts +27 -0
  212. package/lib/utilsFS.js +89 -0
  213. package/lib/utilsFS.js.map +1 -0
  214. package/lib/yfmlint/index.d.ts +26 -0
  215. package/lib/yfmlint/index.js +72 -0
  216. package/lib/yfmlint/index.js.map +1 -0
  217. package/lib/yfmlint/markdownlint-custom-rule/index.d.ts +9 -0
  218. package/lib/yfmlint/markdownlint-custom-rule/index.js +22 -0
  219. package/lib/yfmlint/markdownlint-custom-rule/index.js.map +1 -0
  220. package/lib/yfmlint/markdownlint-custom-rule/yfm001.d.ts +2 -0
  221. package/lib/yfmlint/markdownlint-custom-rule/yfm001.js +28 -0
  222. package/lib/yfmlint/markdownlint-custom-rule/yfm001.js.map +1 -0
  223. package/lib/yfmlint/markdownlint-custom-rule/yfm002.d.ts +2 -0
  224. package/lib/yfmlint/markdownlint-custom-rule/yfm002.js +33 -0
  225. package/lib/yfmlint/markdownlint-custom-rule/yfm002.js.map +1 -0
  226. package/lib/yfmlint/markdownlint-custom-rule/yfm003.d.ts +2 -0
  227. package/lib/yfmlint/markdownlint-custom-rule/yfm003.js +33 -0
  228. package/lib/yfmlint/markdownlint-custom-rule/yfm003.js.map +1 -0
  229. package/lib/yfmlint/markdownlint-custom-rule/yfm004.d.ts +2 -0
  230. package/lib/yfmlint/markdownlint-custom-rule/yfm004.js +28 -0
  231. package/lib/yfmlint/markdownlint-custom-rule/yfm004.js.map +1 -0
  232. package/lib/yfmlint/markdownlint-custom-rule/yfm005.d.ts +2 -0
  233. package/lib/yfmlint/markdownlint-custom-rule/yfm005.js +28 -0
  234. package/lib/yfmlint/markdownlint-custom-rule/yfm005.js.map +1 -0
  235. package/lib/yfmlint/markdownlint-custom-rule/yfm006.d.ts +2 -0
  236. package/lib/yfmlint/markdownlint-custom-rule/yfm006.js +28 -0
  237. package/lib/yfmlint/markdownlint-custom-rule/yfm006.js.map +1 -0
  238. package/lib/yfmlint/markdownlint-custom-rule/yfm007.d.ts +2 -0
  239. package/lib/yfmlint/markdownlint-custom-rule/yfm007.js +29 -0
  240. package/lib/yfmlint/markdownlint-custom-rule/yfm007.js.map +1 -0
  241. package/lib/yfmlint/markdownlint-custom-rule/yfm008.d.ts +2 -0
  242. package/lib/yfmlint/markdownlint-custom-rule/yfm008.js +28 -0
  243. package/lib/yfmlint/markdownlint-custom-rule/yfm008.js.map +1 -0
  244. package/lib/yfmlint/markdownlint-custom-rule/yfm009.d.ts +2 -0
  245. package/lib/yfmlint/markdownlint-custom-rule/yfm009.js +47 -0
  246. package/lib/yfmlint/markdownlint-custom-rule/yfm009.js.map +1 -0
  247. package/lib/yfmlint/typings.d.ts +12 -0
  248. package/lib/yfmlint/typings.js +3 -0
  249. package/lib/yfmlint/typings.js.map +1 -0
  250. package/lib/yfmlint/utils.d.ts +9 -0
  251. package/lib/yfmlint/utils.js +22 -0
  252. package/lib/yfmlint/utils.js.map +1 -0
  253. package/lib/yfmlint/yfmlint.d.ts +3 -0
  254. package/lib/yfmlint/yfmlint.js +69 -0
  255. package/lib/yfmlint/yfmlint.js.map +1 -0
  256. package/package.json +106 -0
  257. package/src/.eslintrc +10 -0
  258. package/src/js/code.ts +65 -0
  259. package/src/js/cut.ts +57 -0
  260. package/src/js/index.ts +6 -0
  261. package/src/js/polyfill.js +27 -0
  262. package/src/js/term/index.ts +79 -0
  263. package/src/js/term/utils.ts +151 -0
  264. package/src/js/utils.ts +9 -0
  265. package/src/scss/_anchor.scss +33 -0
  266. package/src/scss/_code.scss +23 -0
  267. package/src/scss/_common.scss +407 -0
  268. package/src/scss/_cut.scss +42 -0
  269. package/src/scss/_file.scss +35 -0
  270. package/src/scss/_highlight.scss +96 -0
  271. package/src/scss/_note.scss +73 -0
  272. package/src/scss/_print.scss +20 -0
  273. package/src/scss/_term.scss +79 -0
  274. package/src/scss/_variables.scss +16 -0
  275. package/src/scss/yfm.scss +11 -0
  276. package/src/transform/getObject.ts +10 -0
  277. package/src/transform/headings.ts +88 -0
  278. package/src/transform/highlight.ts +33 -0
  279. package/src/transform/index.ts +50 -0
  280. package/src/transform/liquid/conditions.ts +259 -0
  281. package/src/transform/liquid/cycles.ts +244 -0
  282. package/src/transform/liquid/errors.ts +10 -0
  283. package/src/transform/liquid/evaluation.ts +145 -0
  284. package/src/transform/liquid/filters.ts +19 -0
  285. package/src/transform/liquid/index.ts +141 -0
  286. package/src/transform/liquid/lexical.ts +86 -0
  287. package/src/transform/liquid/services/argv.ts +23 -0
  288. package/src/transform/liquid/sourceMap.ts +72 -0
  289. package/src/transform/liquid/substitutions.ts +40 -0
  290. package/src/transform/liquid/utils.ts +30 -0
  291. package/src/transform/log.ts +60 -0
  292. package/src/transform/md.ts +123 -0
  293. package/src/transform/plugins/anchors/collect.ts +101 -0
  294. package/src/transform/plugins/anchors/constants.ts +2 -0
  295. package/src/transform/plugins/anchors/index.ts +166 -0
  296. package/src/transform/plugins/changelog/collect.ts +66 -0
  297. package/src/transform/plugins/changelog/index.ts +164 -0
  298. package/src/transform/plugins/changelog/types.ts +10 -0
  299. package/src/transform/plugins/checkbox/checkbox.ts +107 -0
  300. package/src/transform/plugins/checkbox/index.ts +15 -0
  301. package/src/transform/plugins/code.ts +79 -0
  302. package/src/transform/plugins/cut.ts +98 -0
  303. package/src/transform/plugins/deflist.ts +5 -0
  304. package/src/transform/plugins/file/README.md +34 -0
  305. package/src/transform/plugins/file/const.ts +46 -0
  306. package/src/transform/plugins/file/file.ts +82 -0
  307. package/src/transform/plugins/file/index.ts +10 -0
  308. package/src/transform/plugins/images/collect.ts +60 -0
  309. package/src/transform/plugins/images/index.ts +119 -0
  310. package/src/transform/plugins/imsize/const.ts +7 -0
  311. package/src/transform/plugins/imsize/helpers.ts +75 -0
  312. package/src/transform/plugins/imsize/index.ts +14 -0
  313. package/src/transform/plugins/imsize/plugin.ts +214 -0
  314. package/src/transform/plugins/includes/collect.ts +73 -0
  315. package/src/transform/plugins/includes/index.ts +127 -0
  316. package/src/transform/plugins/links/collect.ts +92 -0
  317. package/src/transform/plugins/links/constants.ts +1 -0
  318. package/src/transform/plugins/links/index.ts +218 -0
  319. package/src/transform/plugins/meta.ts +5 -0
  320. package/src/transform/plugins/monospace.ts +141 -0
  321. package/src/transform/plugins/notes.ts +134 -0
  322. package/src/transform/plugins/sup.ts +5 -0
  323. package/src/transform/plugins/table/index.ts +290 -0
  324. package/src/transform/plugins/tabs.ts +3 -0
  325. package/src/transform/plugins/term/constants.ts +1 -0
  326. package/src/transform/plugins/term/index.ts +139 -0
  327. package/src/transform/plugins/term/termDefinitions.ts +177 -0
  328. package/src/transform/plugins/typings.ts +14 -0
  329. package/src/transform/plugins/utils.ts +38 -0
  330. package/src/transform/plugins/video/const.ts +20 -0
  331. package/src/transform/plugins/video/index.ts +134 -0
  332. package/src/transform/plugins/video/parsers.ts +65 -0
  333. package/src/transform/plugins/video/types.ts +27 -0
  334. package/src/transform/plugins/video/utils.ts +24 -0
  335. package/src/transform/plugins.ts +35 -0
  336. package/src/transform/sanitize.ts +596 -0
  337. package/src/transform/title.ts +22 -0
  338. package/src/transform/typings.ts +64 -0
  339. package/src/transform/utils.ts +91 -0
  340. package/src/transform/utilsFS.ts +128 -0
  341. package/src/transform/yfmlint/README.md +48 -0
  342. package/src/transform/yfmlint/index.ts +124 -0
  343. package/src/transform/yfmlint/markdownlint-custom-rule/index.ts +9 -0
  344. package/src/transform/yfmlint/markdownlint-custom-rule/yfm001.ts +36 -0
  345. package/src/transform/yfmlint/markdownlint-custom-rule/yfm002.ts +33 -0
  346. package/src/transform/yfmlint/markdownlint-custom-rule/yfm003.ts +33 -0
  347. package/src/transform/yfmlint/markdownlint-custom-rule/yfm004.ts +27 -0
  348. package/src/transform/yfmlint/markdownlint-custom-rule/yfm005.ts +27 -0
  349. package/src/transform/yfmlint/markdownlint-custom-rule/yfm006.ts +26 -0
  350. package/src/transform/yfmlint/markdownlint-custom-rule/yfm007.ts +28 -0
  351. package/src/transform/yfmlint/markdownlint-custom-rule/yfm008.ts +26 -0
  352. package/src/transform/yfmlint/markdownlint-custom-rule/yfm009.ts +54 -0
  353. package/src/transform/yfmlint/typings.ts +13 -0
  354. package/src/transform/yfmlint/utils.ts +31 -0
  355. package/src/transform/yfmlint/yfmlint.ts +73 -0
@@ -0,0 +1,4 @@
1
+ import Token from 'markdown-it/lib/token';
2
+ import { Heading } from './typings';
3
+ declare const _default: (tokens: Token[], needFlatListHeadings?: boolean) => Heading[];
4
+ export = _default;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ function getTitle(token) {
3
+ var _a;
4
+ return (((_a = token.children) === null || _a === void 0 ? void 0 : _a.reduce((acc, tok) => {
5
+ if (tok.type === 'text' || tok.type === 'code_inline') {
6
+ return acc + tok.content;
7
+ }
8
+ return acc;
9
+ }, '')) || '');
10
+ }
11
+ function getHref(token) {
12
+ return '#' + (token.attrGet('id') || '');
13
+ }
14
+ function getFilteredHeadings(tokens) {
15
+ const headings = [];
16
+ let parents = [headings];
17
+ let prevLevel;
18
+ for (let i = 0; i < tokens.length; i++) {
19
+ const isHeading = tokens[i].type === 'heading_open';
20
+ const level = Number.parseInt(tokens[i].tag.slice(1), 10);
21
+ if (isHeading && level >= 2) {
22
+ const entry = {
23
+ title: getTitle(tokens[i + 1]),
24
+ href: getHref(tokens[i]),
25
+ level,
26
+ };
27
+ let closestParent = parents[parents.length - 1];
28
+ if ((!prevLevel && level === 2) || prevLevel === level) {
29
+ closestParent.push(entry);
30
+ prevLevel = level;
31
+ // skip if nested heading level is lower than for previous by 2 or more
32
+ }
33
+ else if (prevLevel && level - prevLevel === 1) {
34
+ const lastItemInClosestParent = closestParent[closestParent.length - 1];
35
+ const newParent = (lastItemInClosestParent.items = [entry]);
36
+ parents.push(newParent);
37
+ prevLevel = level;
38
+ }
39
+ else if (prevLevel && level < prevLevel) {
40
+ const levelDiff = prevLevel - level;
41
+ const closestParentIndex = parents.length - levelDiff - 1;
42
+ if (closestParentIndex < 0) {
43
+ continue;
44
+ }
45
+ closestParent = parents[closestParentIndex];
46
+ closestParent.push(entry);
47
+ parents = parents.slice(0, closestParentIndex + 1);
48
+ prevLevel = level;
49
+ }
50
+ }
51
+ }
52
+ return headings;
53
+ }
54
+ function getFlatListHeadings(tokens) {
55
+ const headings = [];
56
+ for (let i = 0; i < tokens.length; i++) {
57
+ const isHeading = tokens[i].type === 'heading_open';
58
+ const level = Number.parseInt(tokens[i].tag.slice(1), 10);
59
+ if (!isHeading) {
60
+ continue;
61
+ }
62
+ headings.push({
63
+ title: getTitle(tokens[i + 1]),
64
+ href: getHref(tokens[i]),
65
+ level,
66
+ });
67
+ }
68
+ return headings;
69
+ }
70
+ module.exports = function getHeadings(tokens, needFlatListHeadings) {
71
+ return needFlatListHeadings ? getFlatListHeadings(tokens) : getFilteredHeadings(tokens);
72
+ };
73
+ //# sourceMappingURL=headings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headings.js","sourceRoot":"","sources":["../src/transform/headings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { HighlightLangMap } from './typings';
2
+ declare const _default: (langs?: HighlightLangMap) => (str: string, lang: string) => string;
3
+ export = _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ const utils_1 = require("markdown-it/lib/common/utils");
3
+ module.exports = function makeHighlight(langs = {}) {
4
+ try {
5
+ // Important require.
6
+ // Because we want to have a posibility to run in projects without hljs dependency
7
+ const hljs = require('highlight.js');
8
+ Object.keys(langs).forEach((lang) => {
9
+ hljs.registerLanguage(lang, langs[lang]);
10
+ });
11
+ return function highlight(str, lang) {
12
+ let highlightedStr;
13
+ const classNames = ['hljs'];
14
+ if (lang && hljs.getLanguage(lang)) {
15
+ classNames.push(lang);
16
+ try {
17
+ highlightedStr = hljs.highlight(lang, str, true).value;
18
+ }
19
+ catch (_) { }
20
+ }
21
+ highlightedStr = highlightedStr || (0, utils_1.escapeHtml)(str);
22
+ return `<pre><code class="${classNames.join(' ')}">${highlightedStr}</code></pre>`;
23
+ };
24
+ }
25
+ catch (_a) {
26
+ return (str) => (0, utils_1.escapeHtml)(str);
27
+ }
28
+ };
29
+ //# sourceMappingURL=highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../src/transform/highlight.ts"],"names":[],"mappings":";AAAA,wDAAwD;AAGxD,iBAAS,SAAS,aAAa,CAAC,QAA0B,EAAE;IACxD,IAAI;QACA,qBAAqB;QACrB,kFAAkF;QAClF,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAErC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY;YAC/C,IAAI,cAAc,CAAC;YACnB,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;YAE5B,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEtB,IAAI;oBACA,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC;iBAC1D;gBAAC,OAAO,CAAC,EAAE,GAAE;aACjB;YAED,cAAc,GAAG,cAAc,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAC;YAEnD,OAAO,qBAAqB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,cAAc,eAAe,CAAC;QACvF,CAAC,CAAC;KACL;IAAC,WAAM;QACJ,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAC;KAC3C;AACL,CAAC,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { OptionsType, OutputType } from './typings';
2
+ declare function transform(originInput: string, options?: OptionsType): OutputType;
3
+ export = transform;
4
+ declare namespace transform {
5
+ type Options = OptionsType;
6
+ type Output = OutputType;
7
+ }
package/lib/index.js ADDED
@@ -0,0 +1,35 @@
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 log_1 = require("./log");
7
+ const liquid_1 = __importDefault(require("./liquid"));
8
+ const md_1 = __importDefault(require("./md"));
9
+ function applyLiquid(input, options) {
10
+ const { vars = {}, path, conditionsInCode = false, disableLiquid = false, isLiquided = false, } = options;
11
+ return disableLiquid || isLiquided ? input : (0, liquid_1.default)(input, vars, path, { conditionsInCode });
12
+ }
13
+ function handleError(error, path) {
14
+ log_1.log.error(`Error occurred${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
15
+ throw error;
16
+ }
17
+ function emitResult(html, env) {
18
+ return {
19
+ result: Object.assign(Object.assign({}, env), { html }),
20
+ logs: log_1.log.get(),
21
+ };
22
+ }
23
+ // eslint-disable-next-line consistent-return
24
+ function transform(originInput, options = {}) {
25
+ const input = applyLiquid(originInput, options);
26
+ const { parse, compile, env } = (0, md_1.default)(options);
27
+ try {
28
+ return emitResult(compile(parse(input)), env);
29
+ }
30
+ catch (error) {
31
+ handleError(error, options.path);
32
+ }
33
+ }
34
+ module.exports = transform;
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/transform/index.ts"],"names":[],"mappings":";;;;AACA,iCAA2B;AAC3B,+BAA0B;AAC1B,sDAA8B;AAC9B,8CAAkC;AAElC,SAAS,WAAW,CAAC,KAAa,EAAE,OAAoB;IACpD,MAAM,EACF,IAAI,GAAG,EAAE,EACT,IAAI,EACJ,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,KAAK,EACrB,UAAU,GAAG,KAAK,GACrB,GAAG,OAAO,CAAC;IAEZ,OAAO,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAM,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAC,gBAAgB,EAAC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAa;IAC9C,SAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9D,MAAM,KAAK,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,GAAY;IAC1C,OAAO;QACH,MAAM,kCAAM,GAAG,KAAE,IAAI,GAAC;QACtB,IAAI,EAAE,SAAG,CAAC,GAAG,EAAE;KAClB,CAAC;AACN,CAAC;AAED,6CAA6C;AAC7C,SAAS,SAAS,CAAC,WAAmB,EAAE,UAAuB,EAAE;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,IAAA,YAAc,EAAC,OAAO,CAAC,CAAC;IAEtD,IAAI;QACA,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACZ,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC;AACL,CAAC;AAED,iBAAS,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const _default: (originInput: string, vars: Record<string, unknown>, path?: string, settings?: {
2
+ sourceMap: Record<number, number>;
3
+ }) => string;
4
+ export = _default;
@@ -0,0 +1,181 @@
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 evaluation_1 = __importDefault(require("./evaluation"));
7
+ const lexical_1 = require("./lexical");
8
+ const log_1 = require("../log");
9
+ const utils_1 = require("./utils");
10
+ const sourceMap_1 = require("./sourceMap");
11
+ function changeSourceMap({ firstLineNumber, lastLineNumber, resFirstLineNumber, resLastLineNumber, linesTotal, sourceMap, }) {
12
+ if (!sourceMap) {
13
+ return;
14
+ }
15
+ const { isInlineTag, getSourceMapValue, moveLines, removeLines } = (0, sourceMap_1.createSourceMapApi)({
16
+ firstLineNumber,
17
+ lastLineNumber,
18
+ sourceMap,
19
+ });
20
+ if (isInlineTag) {
21
+ return;
22
+ }
23
+ let offsetRestLines;
24
+ if (resFirstLineNumber) {
25
+ // Move condition's content to the top
26
+ const offsetContentLines = firstLineNumber - resFirstLineNumber;
27
+ moveLines({
28
+ start: resFirstLineNumber,
29
+ end: resLastLineNumber - 1,
30
+ offset: offsetContentLines,
31
+ withReplace: true,
32
+ });
33
+ // Remove the rest lines of the condition block
34
+ removeLines({ start: firstLineNumber, end: resFirstLineNumber - 1 });
35
+ removeLines({ start: resLastLineNumber, end: lastLineNumber });
36
+ // Calculate an offset of the rest lines
37
+ offsetRestLines = getSourceMapValue(resLastLineNumber - 1) - lastLineNumber;
38
+ }
39
+ else {
40
+ // Remove the whole condition block
41
+ removeLines({ start: firstLineNumber, end: lastLineNumber });
42
+ // Calculate offset of the rest lines
43
+ offsetRestLines = firstLineNumber - lastLineNumber - 1;
44
+ }
45
+ // Offset the rest lines
46
+ moveLines({ start: lastLineNumber + 1, end: linesTotal, offset: offsetRestLines });
47
+ }
48
+ function getElseProp({ elses }, propName, index = 0) {
49
+ if (!elses.length || index >= elses.length) {
50
+ return undefined;
51
+ }
52
+ return elses[index][propName];
53
+ }
54
+ function inlineConditions({ ifTag, vars, content, match, lastIndex, sourceMap, linesTotal }) {
55
+ let res = '';
56
+ const firstLineNumber = (0, sourceMap_1.getLineNumber)(content, ifTag.startPos);
57
+ const lastLineNumber = (0, sourceMap_1.getLineNumber)(content, lastIndex);
58
+ let resFirstLineNumber = 0;
59
+ let resLastLineNumber = 0;
60
+ if ((0, evaluation_1.default)(ifTag.condition, vars)) {
61
+ const ifRawLastIndex = ifTag.startPos + ifTag.ifRaw.length;
62
+ const contentLastIndex = getElseProp(ifTag, 'startPos') || match.index;
63
+ res = content.substring(ifRawLastIndex, contentLastIndex);
64
+ resFirstLineNumber = (0, sourceMap_1.getLineNumber)(content, ifRawLastIndex + 1);
65
+ resLastLineNumber = (0, sourceMap_1.getLineNumber)(content, contentLastIndex + 1);
66
+ }
67
+ else {
68
+ ifTag.elses.some(({ condition, startPos, raw }, index) => {
69
+ const isTruthy = !condition || (0, evaluation_1.default)(condition, vars);
70
+ if (isTruthy) {
71
+ const elseRawLastIndex = startPos + raw.length;
72
+ const contentLastIndex = getElseProp(ifTag, 'startPos', index + 1) || match.index;
73
+ res = content.substring(elseRawLastIndex, contentLastIndex);
74
+ resFirstLineNumber = (0, sourceMap_1.getLineNumber)(content, elseRawLastIndex + 1);
75
+ resLastLineNumber = (0, sourceMap_1.getLineNumber)(content, contentLastIndex + 1);
76
+ return true;
77
+ }
78
+ return false;
79
+ });
80
+ }
81
+ changeSourceMap({
82
+ firstLineNumber,
83
+ lastLineNumber,
84
+ resFirstLineNumber,
85
+ resLastLineNumber,
86
+ linesTotal,
87
+ sourceMap,
88
+ });
89
+ const preparedLeftContent = (0, utils_1.getPreparedLeftContent)({
90
+ content,
91
+ tagStartPos: ifTag.startPos,
92
+ tagContent: res,
93
+ });
94
+ let shift = 0;
95
+ if (res === '' &&
96
+ preparedLeftContent[preparedLeftContent.length - 1] === '\n' &&
97
+ content[lastIndex] === '\n') {
98
+ shift = 1;
99
+ }
100
+ if (res !== '') {
101
+ if (res[0] === '\n') {
102
+ res = res.substring(1);
103
+ }
104
+ res = (0, utils_1.removeIndentBlock)(res);
105
+ if (res[res.length - 1] === '\n') {
106
+ res = res.slice(0, -1);
107
+ }
108
+ }
109
+ const leftPart = preparedLeftContent + res;
110
+ return {
111
+ result: leftPart + content.substring(lastIndex + shift),
112
+ idx: leftPart.length,
113
+ };
114
+ }
115
+ module.exports = function conditions(originInput, vars, path, settings) {
116
+ const sourceMap = (settings === null || settings === void 0 ? void 0 : settings.sourceMap) || {};
117
+ const R_LIQUID = /({%-?([\s\S]*?)-?%})/g;
118
+ let match;
119
+ const tagStack = [];
120
+ let input = originInput;
121
+ let linesTotal = originInput.split('\n').length;
122
+ while ((match = R_LIQUID.exec(input)) !== null) {
123
+ if (!match[1]) {
124
+ continue;
125
+ }
126
+ const tagMatch = match[2].trim().match(lexical_1.tagLine);
127
+ if (!tagMatch) {
128
+ continue;
129
+ }
130
+ const [type, args] = tagMatch.slice(1);
131
+ switch (type) {
132
+ case 'if':
133
+ tagStack.push({
134
+ isOpen: true,
135
+ condition: args,
136
+ startPos: match.index,
137
+ ifRaw: match[1],
138
+ elses: [],
139
+ });
140
+ break;
141
+ case 'else':
142
+ tagStack[tagStack.length - 1].elses.push({
143
+ startPos: match.index,
144
+ raw: match[1],
145
+ });
146
+ break;
147
+ case 'elsif':
148
+ tagStack[tagStack.length - 1].elses.push({
149
+ condition: args,
150
+ startPos: match.index,
151
+ raw: match[1],
152
+ });
153
+ break;
154
+ case 'endif': {
155
+ const ifTag = tagStack.pop();
156
+ if (!ifTag) {
157
+ log_1.log.error(`If block must be opened before close${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
158
+ break;
159
+ }
160
+ const { idx, result } = inlineConditions({
161
+ ifTag,
162
+ vars,
163
+ content: input,
164
+ match,
165
+ lastIndex: R_LIQUID.lastIndex,
166
+ sourceMap,
167
+ linesTotal,
168
+ });
169
+ R_LIQUID.lastIndex = idx;
170
+ input = result;
171
+ linesTotal = result.split('\n').length;
172
+ break;
173
+ }
174
+ }
175
+ }
176
+ if (tagStack.length !== 0) {
177
+ log_1.log.error(`Condition block must be closed${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
178
+ }
179
+ return input;
180
+ };
181
+ //# sourceMappingURL=conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/transform/liquid/conditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare const _default: (originInput: string, vars: Record<string, unknown>, path?: string, settings?: {
2
+ sourceMap?: Record<number, number>;
3
+ }) => string;
4
+ export = _default;
@@ -0,0 +1,160 @@
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 evaluation_1 = require("./evaluation");
7
+ const lexical_1 = require("./lexical");
8
+ const log_1 = require("../log");
9
+ const utils_1 = require("./utils");
10
+ const sourceMap_1 = require("./sourceMap");
11
+ const index_1 = __importDefault(require("./index"));
12
+ function changeSourceMap({ firstLineNumber, lastLineNumber, resFirstLineNumber, resLastLineNumber, contentLinesTotal, linesTotal, sourceMap, }) {
13
+ if (!sourceMap) {
14
+ return;
15
+ }
16
+ const { isInlineTag, moveLines, removeLine } = (0, sourceMap_1.createSourceMapApi)({
17
+ firstLineNumber,
18
+ lastLineNumber,
19
+ sourceMap,
20
+ });
21
+ if (isInlineTag || !resFirstLineNumber) {
22
+ return;
23
+ }
24
+ const offsetRestLines = contentLinesTotal - (lastLineNumber - firstLineNumber + 1);
25
+ // Move condition's content to the top
26
+ const offsetContentLines = firstLineNumber - resFirstLineNumber;
27
+ moveLines({
28
+ start: resFirstLineNumber,
29
+ end: resLastLineNumber - 1,
30
+ offset: offsetContentLines,
31
+ withReplace: true,
32
+ });
33
+ // Remove tags
34
+ removeLine(firstLineNumber);
35
+ removeLine(lastLineNumber);
36
+ // Offset the rest lines
37
+ moveLines({ start: lastLineNumber + 1, end: linesTotal, offset: offsetRestLines });
38
+ }
39
+ function inlineConditions({ forTag, vars, content, match, path, lastIndex, sourceMap, linesTotal, }) {
40
+ let res = '';
41
+ const firstLineNumber = (0, sourceMap_1.getLineNumber)(content, forTag.startPos);
42
+ const lastLineNumber = (0, sourceMap_1.getLineNumber)(content, lastIndex);
43
+ const forRawLastIndex = forTag.startPos + forTag.forRaw.length;
44
+ const contentLastIndex = match.index;
45
+ const forTemplate = content.substring(forRawLastIndex, contentLastIndex);
46
+ const resFirstLineNumber = (0, sourceMap_1.getLineNumber)(content, forRawLastIndex + 1);
47
+ const resLastLineNumber = (0, sourceMap_1.getLineNumber)(content, contentLastIndex + 1);
48
+ let collection = (0, evaluation_1.evalExp)(forTag.collectionName, vars);
49
+ if (!collection || !Array.isArray(collection)) {
50
+ collection = [];
51
+ log_1.log.error(`${(0, chalk_1.bold)(forTag.collectionName)} is undefined or not iterable`);
52
+ }
53
+ collection.forEach((item) => {
54
+ const newVars = Object.assign(Object.assign({}, vars), { [forTag.variableName]: item });
55
+ res += (0, index_1.default)(forTemplate, newVars, path).trimRight();
56
+ });
57
+ const contentLinesTotal = res.split('\n').length - 1;
58
+ changeSourceMap({
59
+ firstLineNumber,
60
+ lastLineNumber,
61
+ resFirstLineNumber,
62
+ resLastLineNumber,
63
+ linesTotal,
64
+ sourceMap,
65
+ contentLinesTotal,
66
+ });
67
+ const preparedLeftContent = (0, utils_1.getPreparedLeftContent)({
68
+ content,
69
+ tagStartPos: forTag.startPos,
70
+ tagContent: res,
71
+ });
72
+ let shift = 0;
73
+ if (res === '' &&
74
+ preparedLeftContent[preparedLeftContent.length - 1] === '\n' &&
75
+ content[lastIndex] === '\n') {
76
+ shift = 1;
77
+ }
78
+ if (res !== '') {
79
+ if (res[0] === ' ' || res[0] === '\n') {
80
+ res = res.substring(1);
81
+ }
82
+ }
83
+ const leftPart = preparedLeftContent + res;
84
+ return {
85
+ result: leftPart + content.substring(lastIndex + shift),
86
+ idx: leftPart.length,
87
+ };
88
+ }
89
+ module.exports = function cycles(originInput, vars, path, settings = {}) {
90
+ const { sourceMap } = settings;
91
+ const R_LIQUID = /({%-?([\s\S]*?)-?%})/g;
92
+ const FOR_SYNTAX = new RegExp(`(\\w+)\\s+in\\s+(${lexical_1.variable.source})`);
93
+ let match;
94
+ const tagStack = [];
95
+ let input = originInput;
96
+ let countSkippedInnerTags = 0;
97
+ let linesTotal = originInput.split('\n').length;
98
+ while ((match = R_LIQUID.exec(input)) !== null) {
99
+ if (!match[1]) {
100
+ continue;
101
+ }
102
+ const tagMatch = match[2].trim().match(lexical_1.tagLine);
103
+ if (!tagMatch) {
104
+ continue;
105
+ }
106
+ const [type, args] = tagMatch.slice(1);
107
+ switch (type) {
108
+ case 'for': {
109
+ if (tagStack.length) {
110
+ countSkippedInnerTags += 1;
111
+ break;
112
+ }
113
+ const matches = args.match(FOR_SYNTAX);
114
+ if (!matches) {
115
+ log_1.log.error(`Incorrect syntax in if condition${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
116
+ break;
117
+ }
118
+ const [variableName, collectionName] = matches.slice(1);
119
+ tagStack.push({
120
+ item: args,
121
+ variableName,
122
+ collectionName,
123
+ startPos: match.index,
124
+ forRaw: match[1],
125
+ });
126
+ break;
127
+ }
128
+ case 'endfor': {
129
+ if (countSkippedInnerTags > 0) {
130
+ countSkippedInnerTags -= 1;
131
+ break;
132
+ }
133
+ const forTag = tagStack.pop();
134
+ if (!forTag) {
135
+ log_1.log.error(`For block must be opened before close${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
136
+ break;
137
+ }
138
+ const { idx, result } = inlineConditions({
139
+ forTag,
140
+ vars,
141
+ content: input,
142
+ match,
143
+ path,
144
+ lastIndex: R_LIQUID.lastIndex,
145
+ sourceMap: sourceMap || {},
146
+ linesTotal,
147
+ });
148
+ R_LIQUID.lastIndex = idx;
149
+ input = result;
150
+ linesTotal = result.split('\n').length;
151
+ break;
152
+ }
153
+ }
154
+ }
155
+ if (tagStack.length !== 0) {
156
+ log_1.log.error(`For block must be closed${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
157
+ }
158
+ return input;
159
+ };
160
+ //# sourceMappingURL=cycles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycles.js","sourceRoot":"","sources":["../../src/transform/liquid/cycles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class SkippedEvalError extends Error {
2
+ constructor(message: string, exp: string);
3
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkippedEvalError = void 0;
4
+ const chalk_1 = require("chalk");
5
+ class SkippedEvalError extends Error {
6
+ constructor(message, exp) {
7
+ super();
8
+ this.name = 'SkippedEvalError';
9
+ this.message = `${message}: ${(0, chalk_1.bold)(exp)}`;
10
+ }
11
+ }
12
+ exports.SkippedEvalError = SkippedEvalError;
13
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/transform/liquid/errors.ts"],"names":[],"mappings":";;;AAAA,iCAA2B;AAE3B,MAAa,gBAAiB,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAE,GAAW;QACpC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,OAAO,KAAK,IAAA,YAAI,EAAC,GAAG,CAAC,EAAE,CAAC;IAC9C,CAAC;CACJ;AAPD,4CAOC"}
@@ -0,0 +1,3 @@
1
+ export declare function evalExp(exp: string, scope: Record<string, unknown>): string[] | boolean | string | undefined | ((input: string) => number | string);
2
+ declare const _default: (exp: string, scope: Record<string, unknown>) => boolean;
3
+ export default _default;