@platformos/platformos-check-common 0.0.2

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 (708) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +92 -0
  3. package/dist/AugmentedThemeDocset.d.ts +12 -0
  4. package/dist/AugmentedThemeDocset.js +126 -0
  5. package/dist/AugmentedThemeDocset.js.map +1 -0
  6. package/dist/JSONValidator.d.ts +20 -0
  7. package/dist/JSONValidator.js +76 -0
  8. package/dist/JSONValidator.js.map +1 -0
  9. package/dist/checks/app-block-missing-schema/index.d.ts +2 -0
  10. package/dist/checks/app-block-missing-schema/index.js +46 -0
  11. package/dist/checks/app-block-missing-schema/index.js.map +1 -0
  12. package/dist/checks/app-block-valid-tags/index.d.ts +10 -0
  13. package/dist/checks/app-block-valid-tags/index.js +49 -0
  14. package/dist/checks/app-block-valid-tags/index.js.map +1 -0
  15. package/dist/checks/asset-preload/index.d.ts +2 -0
  16. package/dist/checks/asset-preload/index.js +56 -0
  17. package/dist/checks/asset-preload/index.js.map +1 -0
  18. package/dist/checks/asset-size-app-block-css/index.d.ts +6 -0
  19. package/dist/checks/asset-size-app-block-css/index.js +64 -0
  20. package/dist/checks/asset-size-app-block-css/index.js.map +1 -0
  21. package/dist/checks/asset-size-app-block-javascript/index.d.ts +6 -0
  22. package/dist/checks/asset-size-app-block-javascript/index.js +64 -0
  23. package/dist/checks/asset-size-app-block-javascript/index.js.map +1 -0
  24. package/dist/checks/asset-size-css/index.d.ts +6 -0
  25. package/dist/checks/asset-size-css/index.js +125 -0
  26. package/dist/checks/asset-size-css/index.js.map +1 -0
  27. package/dist/checks/asset-size-javascript/index.d.ts +6 -0
  28. package/dist/checks/asset-size-javascript/index.js +110 -0
  29. package/dist/checks/asset-size-javascript/index.js.map +1 -0
  30. package/dist/checks/block-id-usage/index.d.ts +2 -0
  31. package/dist/checks/block-id-usage/index.js +60 -0
  32. package/dist/checks/block-id-usage/index.js.map +1 -0
  33. package/dist/checks/cdn-preconnect/index.d.ts +2 -0
  34. package/dist/checks/cdn-preconnect/index.js +44 -0
  35. package/dist/checks/cdn-preconnect/index.js.map +1 -0
  36. package/dist/checks/content-for-header-modification/index.d.ts +2 -0
  37. package/dist/checks/content-for-header-modification/index.js +66 -0
  38. package/dist/checks/content-for-header-modification/index.js.map +1 -0
  39. package/dist/checks/deprecate-bgsizes/index.d.ts +2 -0
  40. package/dist/checks/deprecate-bgsizes/index.js +46 -0
  41. package/dist/checks/deprecate-bgsizes/index.js.map +1 -0
  42. package/dist/checks/deprecate-lazysizes/index.d.ts +2 -0
  43. package/dist/checks/deprecate-lazysizes/index.js +52 -0
  44. package/dist/checks/deprecate-lazysizes/index.js.map +1 -0
  45. package/dist/checks/deprecated-filter/fixes.d.ts +8 -0
  46. package/dist/checks/deprecated-filter/fixes.js +205 -0
  47. package/dist/checks/deprecated-filter/fixes.js.map +1 -0
  48. package/dist/checks/deprecated-filter/index.d.ts +2 -0
  49. package/dist/checks/deprecated-filter/index.js +93 -0
  50. package/dist/checks/deprecated-filter/index.js.map +1 -0
  51. package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.d.ts +1 -0
  52. package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.js +1347 -0
  53. package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.js.map +1 -0
  54. package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.d.ts +2 -0
  55. package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.js +156 -0
  56. package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.js.map +1 -0
  57. package/dist/checks/deprecated-fonts-on-settings-schema/index.d.ts +2 -0
  58. package/dist/checks/deprecated-fonts-on-settings-schema/index.js +56 -0
  59. package/dist/checks/deprecated-fonts-on-settings-schema/index.js.map +1 -0
  60. package/dist/checks/deprecated-tag/index.d.ts +2 -0
  61. package/dist/checks/deprecated-tag/index.js +48 -0
  62. package/dist/checks/deprecated-tag/index.js.map +1 -0
  63. package/dist/checks/duplicate-content-for-arguments/index.d.ts +2 -0
  64. package/dist/checks/duplicate-content-for-arguments/index.js +39 -0
  65. package/dist/checks/duplicate-content-for-arguments/index.js.map +1 -0
  66. package/dist/checks/duplicate-function-arguments/index.d.ts +2 -0
  67. package/dist/checks/duplicate-function-arguments/index.js +40 -0
  68. package/dist/checks/duplicate-function-arguments/index.js.map +1 -0
  69. package/dist/checks/duplicate-render-partial-arguments/index.d.ts +2 -0
  70. package/dist/checks/duplicate-render-partial-arguments/index.js +43 -0
  71. package/dist/checks/duplicate-render-partial-arguments/index.js.map +1 -0
  72. package/dist/checks/empty-block-content/index.d.ts +2 -0
  73. package/dist/checks/empty-block-content/index.js +60 -0
  74. package/dist/checks/empty-block-content/index.js.map +1 -0
  75. package/dist/checks/graphql/index.d.ts +2 -0
  76. package/dist/checks/graphql/index.js +58 -0
  77. package/dist/checks/graphql/index.js.map +1 -0
  78. package/dist/checks/graphql-variables/index.d.ts +8 -0
  79. package/dist/checks/graphql-variables/index.js +91 -0
  80. package/dist/checks/graphql-variables/index.js.map +1 -0
  81. package/dist/checks/hardcoded-routes/index.d.ts +2 -0
  82. package/dist/checks/hardcoded-routes/index.js +89 -0
  83. package/dist/checks/hardcoded-routes/index.js.map +1 -0
  84. package/dist/checks/img-width-and-height/index.d.ts +2 -0
  85. package/dist/checks/img-width-and-height/index.js +46 -0
  86. package/dist/checks/img-width-and-height/index.js.map +1 -0
  87. package/dist/checks/index.d.ts +8 -0
  88. package/dist/checks/index.js +154 -0
  89. package/dist/checks/index.js.map +1 -0
  90. package/dist/checks/invalid-hash-assign-target/index.d.ts +2 -0
  91. package/dist/checks/invalid-hash-assign-target/index.js +252 -0
  92. package/dist/checks/invalid-hash-assign-target/index.js.map +1 -0
  93. package/dist/checks/json-missing-block/index.d.ts +2 -0
  94. package/dist/checks/json-missing-block/index.js +48 -0
  95. package/dist/checks/json-missing-block/index.js.map +1 -0
  96. package/dist/checks/json-missing-block/missing-block-utils.d.ts +4 -0
  97. package/dist/checks/json-missing-block/missing-block-utils.js +87 -0
  98. package/dist/checks/json-missing-block/missing-block-utils.js.map +1 -0
  99. package/dist/checks/json-syntax-error/index.d.ts +2 -0
  100. package/dist/checks/json-syntax-error/index.js +92 -0
  101. package/dist/checks/json-syntax-error/index.js.map +1 -0
  102. package/dist/checks/liquid-free-settings/index.d.ts +2 -0
  103. package/dist/checks/liquid-free-settings/index.js +64 -0
  104. package/dist/checks/liquid-free-settings/index.js.map +1 -0
  105. package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.d.ts +3 -0
  106. package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.js +23 -0
  107. package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.js.map +1 -0
  108. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.d.ts +3 -0
  109. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.js +136 -0
  110. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.js.map +1 -0
  111. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.d.ts +3 -0
  112. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.js +26 -0
  113. package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.js.map +1 -0
  114. package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.d.ts +3 -0
  115. package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.js +59 -0
  116. package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.js.map +1 -0
  117. package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.d.ts +3 -0
  118. package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.js +66 -0
  119. package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.js.map +1 -0
  120. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.d.ts +3 -0
  121. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js +73 -0
  122. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js.map +1 -0
  123. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.d.ts +4 -0
  124. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.js +54 -0
  125. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.js.map +1 -0
  126. package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.d.ts +3 -0
  127. package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.js +71 -0
  128. package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.js.map +1 -0
  129. package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.d.ts +3 -0
  130. package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.js +69 -0
  131. package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.js.map +1 -0
  132. package/dist/checks/liquid-html-syntax-error/checks/utils.d.ts +15 -0
  133. package/dist/checks/liquid-html-syntax-error/checks/utils.js +58 -0
  134. package/dist/checks/liquid-html-syntax-error/checks/utils.js.map +1 -0
  135. package/dist/checks/liquid-html-syntax-error/index.d.ts +2 -0
  136. package/dist/checks/liquid-html-syntax-error/index.js +131 -0
  137. package/dist/checks/liquid-html-syntax-error/index.js.map +1 -0
  138. package/dist/checks/matching-translations/index.d.ts +2 -0
  139. package/dist/checks/matching-translations/index.js +146 -0
  140. package/dist/checks/matching-translations/index.js.map +1 -0
  141. package/dist/checks/metadata-params/index.d.ts +2 -0
  142. package/dist/checks/metadata-params/index.js +96 -0
  143. package/dist/checks/metadata-params/index.js.map +1 -0
  144. package/dist/checks/missing-asset/index.d.ts +2 -0
  145. package/dist/checks/missing-asset/index.js +44 -0
  146. package/dist/checks/missing-asset/index.js.map +1 -0
  147. package/dist/checks/missing-content-for-arguments/index.d.ts +2 -0
  148. package/dist/checks/missing-content-for-arguments/index.js +36 -0
  149. package/dist/checks/missing-content-for-arguments/index.js.map +1 -0
  150. package/dist/checks/missing-template/index.d.ts +6 -0
  151. package/dist/checks/missing-template/index.js +70 -0
  152. package/dist/checks/missing-template/index.js.map +1 -0
  153. package/dist/checks/orphaned-partial/index.d.ts +2 -0
  154. package/dist/checks/orphaned-partial/index.js +42 -0
  155. package/dist/checks/orphaned-partial/index.js.map +1 -0
  156. package/dist/checks/pagination-size/index.d.ts +7 -0
  157. package/dist/checks/pagination-size/index.js +89 -0
  158. package/dist/checks/pagination-size/index.js.map +1 -0
  159. package/dist/checks/parser-blocking-script/index.d.ts +2 -0
  160. package/dist/checks/parser-blocking-script/index.js +81 -0
  161. package/dist/checks/parser-blocking-script/index.js.map +1 -0
  162. package/dist/checks/parser-blocking-script/suggestions.d.ts +4 -0
  163. package/dist/checks/parser-blocking-script/suggestions.js +22 -0
  164. package/dist/checks/parser-blocking-script/suggestions.js.map +1 -0
  165. package/dist/checks/remote-asset/index.d.ts +6 -0
  166. package/dist/checks/remote-asset/index.js +189 -0
  167. package/dist/checks/remote-asset/index.js.map +1 -0
  168. package/dist/checks/reserved-doc-param-names/index.d.ts +2 -0
  169. package/dist/checks/reserved-doc-param-names/index.js +46 -0
  170. package/dist/checks/reserved-doc-param-names/index.js.map +1 -0
  171. package/dist/checks/schema-presets-block-order/index.d.ts +2 -0
  172. package/dist/checks/schema-presets-block-order/index.js +108 -0
  173. package/dist/checks/schema-presets-block-order/index.js.map +1 -0
  174. package/dist/checks/schema-presets-static-blocks/index.d.ts +2 -0
  175. package/dist/checks/schema-presets-static-blocks/index.js +109 -0
  176. package/dist/checks/schema-presets-static-blocks/index.js.map +1 -0
  177. package/dist/checks/static-stylesheet-and-javascript-tags/index.d.ts +2 -0
  178. package/dist/checks/static-stylesheet-and-javascript-tags/index.js +42 -0
  179. package/dist/checks/static-stylesheet-and-javascript-tags/index.js.map +1 -0
  180. package/dist/checks/translation-key-exists/index.d.ts +2 -0
  181. package/dist/checks/translation-key-exists/index.js +67 -0
  182. package/dist/checks/translation-key-exists/index.js.map +1 -0
  183. package/dist/checks/unclosed-html-element/index.d.ts +2 -0
  184. package/dist/checks/unclosed-html-element/index.js +252 -0
  185. package/dist/checks/unclosed-html-element/index.js.map +1 -0
  186. package/dist/checks/undefined-object/index.d.ts +2 -0
  187. package/dist/checks/undefined-object/index.js +255 -0
  188. package/dist/checks/undefined-object/index.js.map +1 -0
  189. package/dist/checks/unique-doc-param-names/index.d.ts +2 -0
  190. package/dist/checks/unique-doc-param-names/index.js +37 -0
  191. package/dist/checks/unique-doc-param-names/index.js.map +1 -0
  192. package/dist/checks/unique-settings-id/index.d.ts +2 -0
  193. package/dist/checks/unique-settings-id/index.js +69 -0
  194. package/dist/checks/unique-settings-id/index.js.map +1 -0
  195. package/dist/checks/unique-settings-id/test-data.d.ts +2 -0
  196. package/dist/checks/unique-settings-id/test-data.js +1194 -0
  197. package/dist/checks/unique-settings-id/test-data.js.map +1 -0
  198. package/dist/checks/unique-static-block-id/index.d.ts +2 -0
  199. package/dist/checks/unique-static-block-id/index.js +56 -0
  200. package/dist/checks/unique-static-block-id/index.js.map +1 -0
  201. package/dist/checks/unknown-filter/index.d.ts +2 -0
  202. package/dist/checks/unknown-filter/index.js +38 -0
  203. package/dist/checks/unknown-filter/index.js.map +1 -0
  204. package/dist/checks/unknown-property/index.d.ts +2 -0
  205. package/dist/checks/unknown-property/index.js +361 -0
  206. package/dist/checks/unknown-property/index.js.map +1 -0
  207. package/dist/checks/unknown-property/property-shape.d.ts +41 -0
  208. package/dist/checks/unknown-property/property-shape.js +267 -0
  209. package/dist/checks/unknown-property/property-shape.js.map +1 -0
  210. package/dist/checks/unrecognized-content-for-arguments/index.d.ts +2 -0
  211. package/dist/checks/unrecognized-content-for-arguments/index.js +43 -0
  212. package/dist/checks/unrecognized-content-for-arguments/index.js.map +1 -0
  213. package/dist/checks/unrecognized-render-partial-arguments/index.d.ts +2 -0
  214. package/dist/checks/unrecognized-render-partial-arguments/index.js +59 -0
  215. package/dist/checks/unrecognized-render-partial-arguments/index.js.map +1 -0
  216. package/dist/checks/unused-assign/index.d.ts +2 -0
  217. package/dist/checks/unused-assign/index.js +77 -0
  218. package/dist/checks/unused-assign/index.js.map +1 -0
  219. package/dist/checks/unused-doc-param/index.d.ts +2 -0
  220. package/dist/checks/unused-doc-param/index.js +55 -0
  221. package/dist/checks/unused-doc-param/index.js.map +1 -0
  222. package/dist/checks/utils.d.ts +22 -0
  223. package/dist/checks/utils.js +74 -0
  224. package/dist/checks/utils.js.map +1 -0
  225. package/dist/checks/valid-block-target/index.d.ts +2 -0
  226. package/dist/checks/valid-block-target/index.js +99 -0
  227. package/dist/checks/valid-block-target/index.js.map +1 -0
  228. package/dist/checks/valid-content-for-argument-types/index.d.ts +2 -0
  229. package/dist/checks/valid-content-for-argument-types/index.js +35 -0
  230. package/dist/checks/valid-content-for-argument-types/index.js.map +1 -0
  231. package/dist/checks/valid-content-for-arguments/index.d.ts +2 -0
  232. package/dist/checks/valid-content-for-arguments/index.js +82 -0
  233. package/dist/checks/valid-content-for-arguments/index.js.map +1 -0
  234. package/dist/checks/valid-doc-param-types/index.d.ts +2 -0
  235. package/dist/checks/valid-doc-param-types/index.js +61 -0
  236. package/dist/checks/valid-doc-param-types/index.js.map +1 -0
  237. package/dist/checks/valid-html-translation/index.d.ts +2 -0
  238. package/dist/checks/valid-html-translation/index.js +46 -0
  239. package/dist/checks/valid-html-translation/index.js.map +1 -0
  240. package/dist/checks/valid-json/index.d.ts +2 -0
  241. package/dist/checks/valid-json/index.js +36 -0
  242. package/dist/checks/valid-json/index.js.map +1 -0
  243. package/dist/checks/valid-local-blocks/index.d.ts +2 -0
  244. package/dist/checks/valid-local-blocks/index.js +66 -0
  245. package/dist/checks/valid-local-blocks/index.js.map +1 -0
  246. package/dist/checks/valid-local-blocks/valid-block-utils.d.ts +13 -0
  247. package/dist/checks/valid-local-blocks/valid-block-utils.js +74 -0
  248. package/dist/checks/valid-local-blocks/valid-block-utils.js.map +1 -0
  249. package/dist/checks/valid-render-partial-argument-types/index.d.ts +2 -0
  250. package/dist/checks/valid-render-partial-argument-types/index.js +66 -0
  251. package/dist/checks/valid-render-partial-argument-types/index.js.map +1 -0
  252. package/dist/checks/valid-schema/index.d.ts +2 -0
  253. package/dist/checks/valid-schema/index.js +40 -0
  254. package/dist/checks/valid-schema/index.js.map +1 -0
  255. package/dist/checks/valid-schema-name/index.d.ts +2 -0
  256. package/dist/checks/valid-schema-name/index.js +74 -0
  257. package/dist/checks/valid-schema-name/index.js.map +1 -0
  258. package/dist/checks/valid-settings-key/index.d.ts +2 -0
  259. package/dist/checks/valid-settings-key/index.js +90 -0
  260. package/dist/checks/valid-settings-key/index.js.map +1 -0
  261. package/dist/checks/valid-static-block-type/index.d.ts +2 -0
  262. package/dist/checks/valid-static-block-type/index.js +54 -0
  263. package/dist/checks/valid-static-block-type/index.js.map +1 -0
  264. package/dist/checks/valid-visible-if/index.d.ts +3 -0
  265. package/dist/checks/valid-visible-if/index.js +146 -0
  266. package/dist/checks/valid-visible-if/index.js.map +1 -0
  267. package/dist/checks/valid-visible-if/visible-if-utils.d.ts +14 -0
  268. package/dist/checks/valid-visible-if/visible-if-utils.js +125 -0
  269. package/dist/checks/valid-visible-if/visible-if-utils.js.map +1 -0
  270. package/dist/checks/variable-name/index.d.ts +6 -0
  271. package/dist/checks/variable-name/index.js +93 -0
  272. package/dist/checks/variable-name/index.js.map +1 -0
  273. package/dist/context-utils.d.ts +15 -0
  274. package/dist/context-utils.js +185 -0
  275. package/dist/context-utils.js.map +1 -0
  276. package/dist/create-safe-check.d.ts +2 -0
  277. package/dist/create-safe-check.js +15 -0
  278. package/dist/create-safe-check.js.map +1 -0
  279. package/dist/disabled-checks/index.d.ts +7 -0
  280. package/dist/disabled-checks/index.js +145 -0
  281. package/dist/disabled-checks/index.js.map +1 -0
  282. package/dist/disabled-checks/test-checks.d.ts +3 -0
  283. package/dist/disabled-checks/test-checks.js +59 -0
  284. package/dist/disabled-checks/test-checks.js.map +1 -0
  285. package/dist/doc-generator/DocBlockGenerator.d.ts +16 -0
  286. package/dist/doc-generator/DocBlockGenerator.js +464 -0
  287. package/dist/doc-generator/DocBlockGenerator.js.map +1 -0
  288. package/dist/doc-generator/index.d.ts +1 -0
  289. package/dist/doc-generator/index.js +6 -0
  290. package/dist/doc-generator/index.js.map +1 -0
  291. package/dist/find-root.d.ts +18 -0
  292. package/dist/find-root.js +81 -0
  293. package/dist/find-root.js.map +1 -0
  294. package/dist/fixes/apply-fix-to-string.d.ts +2 -0
  295. package/dist/fixes/apply-fix-to-string.js +50 -0
  296. package/dist/fixes/apply-fix-to-string.js.map +1 -0
  297. package/dist/fixes/autofix.d.ts +9 -0
  298. package/dist/fixes/autofix.js +30 -0
  299. package/dist/fixes/autofix.js.map +1 -0
  300. package/dist/fixes/corrector.d.ts +0 -0
  301. package/dist/fixes/corrector.js +2 -0
  302. package/dist/fixes/corrector.js.map +1 -0
  303. package/dist/fixes/correctors/base-corrector.d.ts +4 -0
  304. package/dist/fixes/correctors/base-corrector.js +3 -0
  305. package/dist/fixes/correctors/base-corrector.js.map +1 -0
  306. package/dist/fixes/correctors/graphql-corrector.d.ts +56 -0
  307. package/dist/fixes/correctors/graphql-corrector.js +78 -0
  308. package/dist/fixes/correctors/graphql-corrector.js.map +1 -0
  309. package/dist/fixes/correctors/index.d.ts +6 -0
  310. package/dist/fixes/correctors/index.js +30 -0
  311. package/dist/fixes/correctors/index.js.map +1 -0
  312. package/dist/fixes/correctors/json-corrector.d.ts +39 -0
  313. package/dist/fixes/correctors/json-corrector.js +86 -0
  314. package/dist/fixes/correctors/json-corrector.js.map +1 -0
  315. package/dist/fixes/correctors/string-corrector.d.ts +56 -0
  316. package/dist/fixes/correctors/string-corrector.js +78 -0
  317. package/dist/fixes/correctors/string-corrector.js.map +1 -0
  318. package/dist/fixes/index.d.ts +4 -0
  319. package/dist/fixes/index.js +14 -0
  320. package/dist/fixes/index.js.map +1 -0
  321. package/dist/fixes/utils.d.ts +2 -0
  322. package/dist/fixes/utils.js +9 -0
  323. package/dist/fixes/utils.js.map +1 -0
  324. package/dist/ignore.d.ts +2 -0
  325. package/dist/ignore.js +20 -0
  326. package/dist/ignore.js.map +1 -0
  327. package/dist/index.d.ts +23 -0
  328. package/dist/index.js +211 -0
  329. package/dist/index.js.map +1 -0
  330. package/dist/json.d.ts +17 -0
  331. package/dist/json.js +79 -0
  332. package/dist/json.js.map +1 -0
  333. package/dist/jsonc/parse.d.ts +25 -0
  334. package/dist/jsonc/parse.js +101 -0
  335. package/dist/jsonc/parse.js.map +1 -0
  336. package/dist/jsonc/types.d.ts +37 -0
  337. package/dist/jsonc/types.js +3 -0
  338. package/dist/jsonc/types.js.map +1 -0
  339. package/dist/liquid-doc/arguments.d.ts +36 -0
  340. package/dist/liquid-doc/arguments.js +239 -0
  341. package/dist/liquid-doc/arguments.js.map +1 -0
  342. package/dist/liquid-doc/liquidDoc.d.ts +33 -0
  343. package/dist/liquid-doc/liquidDoc.js +94 -0
  344. package/dist/liquid-doc/liquidDoc.js.map +1 -0
  345. package/dist/liquid-doc/utils.d.ts +49 -0
  346. package/dist/liquid-doc/utils.js +119 -0
  347. package/dist/liquid-doc/utils.js.map +1 -0
  348. package/dist/path.d.ts +10 -0
  349. package/dist/path.js +47 -0
  350. package/dist/path.js.map +1 -0
  351. package/dist/tags/content-for.d.ts +3 -0
  352. package/dist/tags/content-for.js +27 -0
  353. package/dist/tags/content-for.js.map +1 -0
  354. package/dist/test/MockFileSystem.d.ts +12 -0
  355. package/dist/test/MockFileSystem.js +109 -0
  356. package/dist/test/MockFileSystem.js.map +1 -0
  357. package/dist/test/MockTheme.d.ts +16 -0
  358. package/dist/test/MockTheme.js +16 -0
  359. package/dist/test/MockTheme.js.map +1 -0
  360. package/dist/test/chai-offer-fix-assertion.d.ts +22 -0
  361. package/dist/test/chai-offer-fix-assertion.js +20 -0
  362. package/dist/test/chai-offer-fix-assertion.js.map +1 -0
  363. package/dist/test/chai-suggest-assertion.d.ts +22 -0
  364. package/dist/test/chai-suggest-assertion.js +29 -0
  365. package/dist/test/chai-suggest-assertion.js.map +1 -0
  366. package/dist/test/contain-offense.d.ts +12 -0
  367. package/dist/test/contain-offense.js +36 -0
  368. package/dist/test/contain-offense.js.map +1 -0
  369. package/dist/test/index.d.ts +3 -0
  370. package/dist/test/index.js +20 -0
  371. package/dist/test/index.js.map +1 -0
  372. package/dist/test/test-helper.d.ts +14 -0
  373. package/dist/test/test-helper.js +289 -0
  374. package/dist/test/test-helper.js.map +1 -0
  375. package/dist/test/test-setup.d.ts +9 -0
  376. package/dist/test/test-setup.js +26 -0
  377. package/dist/test/test-setup.js.map +1 -0
  378. package/dist/to-schema.d.ts +16 -0
  379. package/dist/to-schema.js +218 -0
  380. package/dist/to-schema.js.map +1 -0
  381. package/dist/to-source-code.d.ts +5 -0
  382. package/dist/to-source-code.js +103 -0
  383. package/dist/to-source-code.js.map +1 -0
  384. package/dist/tsconfig.tsbuildinfo +1 -0
  385. package/dist/types/schema-prop-factory.d.ts +76 -0
  386. package/dist/types/schema-prop-factory.js +84 -0
  387. package/dist/types/schema-prop-factory.js.map +1 -0
  388. package/dist/types/schemas/index.d.ts +5 -0
  389. package/dist/types/schemas/index.js +6 -0
  390. package/dist/types/schemas/index.js.map +1 -0
  391. package/dist/types/schemas/preset.d.ts +38 -0
  392. package/dist/types/schemas/preset.js +3 -0
  393. package/dist/types/schemas/preset.js.map +1 -0
  394. package/dist/types/schemas/section.d.ts +49 -0
  395. package/dist/types/schemas/section.js +3 -0
  396. package/dist/types/schemas/section.js.map +1 -0
  397. package/dist/types/schemas/setting.d.ts +216 -0
  398. package/dist/types/schemas/setting.js +3 -0
  399. package/dist/types/schemas/setting.js.map +1 -0
  400. package/dist/types/schemas/template.d.ts +30 -0
  401. package/dist/types/schemas/template.js +3 -0
  402. package/dist/types/schemas/template.js.map +1 -0
  403. package/dist/types/schemas/theme-block.d.ts +24 -0
  404. package/dist/types/schemas/theme-block.js +3 -0
  405. package/dist/types/schemas/theme-block.js.map +1 -0
  406. package/dist/types/theme-liquid-docs.d.ts +131 -0
  407. package/dist/types/theme-liquid-docs.js +3 -0
  408. package/dist/types/theme-liquid-docs.js.map +1 -0
  409. package/dist/types/theme-schemas.d.ts +70 -0
  410. package/dist/types/theme-schemas.js +25 -0
  411. package/dist/types/theme-schemas.js.map +1 -0
  412. package/dist/types.d.ts +469 -0
  413. package/dist/types.js +55 -0
  414. package/dist/types.js.map +1 -0
  415. package/dist/utils/array.d.ts +5 -0
  416. package/dist/utils/array.js +28 -0
  417. package/dist/utils/array.js.map +1 -0
  418. package/dist/utils/block.d.ts +22 -0
  419. package/dist/utils/block.js +179 -0
  420. package/dist/utils/block.js.map +1 -0
  421. package/dist/utils/error.d.ts +2 -0
  422. package/dist/utils/error.js +44 -0
  423. package/dist/utils/error.js.map +1 -0
  424. package/dist/utils/file-utils.d.ts +6 -0
  425. package/dist/utils/file-utils.js +46 -0
  426. package/dist/utils/file-utils.js.map +1 -0
  427. package/dist/utils/index.d.ts +8 -0
  428. package/dist/utils/index.js +25 -0
  429. package/dist/utils/index.js.map +1 -0
  430. package/dist/utils/indexBy.d.ts +5 -0
  431. package/dist/utils/indexBy.js +15 -0
  432. package/dist/utils/indexBy.js.map +1 -0
  433. package/dist/utils/markup.d.ts +2 -0
  434. package/dist/utils/markup.js +10 -0
  435. package/dist/utils/markup.js.map +1 -0
  436. package/dist/utils/memo.d.ts +34 -0
  437. package/dist/utils/memo.js +61 -0
  438. package/dist/utils/memo.js.map +1 -0
  439. package/dist/utils/object.d.ts +1 -0
  440. package/dist/utils/object.js +7 -0
  441. package/dist/utils/object.js.map +1 -0
  442. package/dist/utils/position.d.ts +3 -0
  443. package/dist/utils/position.js +20 -0
  444. package/dist/utils/position.js.map +1 -0
  445. package/dist/utils/types.d.ts +52 -0
  446. package/dist/utils/types.js +23 -0
  447. package/dist/utils/types.js.map +1 -0
  448. package/dist/visitor.d.ts +24 -0
  449. package/dist/visitor.js +119 -0
  450. package/dist/visitor.js.map +1 -0
  451. package/dist/visitors/index.d.ts +2 -0
  452. package/dist/visitors/index.js +8 -0
  453. package/dist/visitors/index.js.map +1 -0
  454. package/dist/visitors/json.d.ts +2 -0
  455. package/dist/visitors/json.js +39 -0
  456. package/dist/visitors/json.js.map +1 -0
  457. package/dist/visitors/liquid.d.ts +2 -0
  458. package/dist/visitors/liquid.js +39 -0
  459. package/dist/visitors/liquid.js.map +1 -0
  460. package/package.json +45 -0
  461. package/src/AugmentedThemeDocset.spec.ts +148 -0
  462. package/src/AugmentedThemeDocset.ts +148 -0
  463. package/src/JSONValidator.ts +82 -0
  464. package/src/checks/app-block-missing-schema/index.spec.ts +121 -0
  465. package/src/checks/app-block-missing-schema/index.ts +46 -0
  466. package/src/checks/app-block-valid-tags/index.spec.ts +96 -0
  467. package/src/checks/app-block-valid-tags/index.ts +54 -0
  468. package/src/checks/asset-preload/index.spec.ts +78 -0
  469. package/src/checks/asset-preload/index.ts +65 -0
  470. package/src/checks/asset-size-app-block-css/index.spec.ts +88 -0
  471. package/src/checks/asset-size-app-block-css/index.ts +78 -0
  472. package/src/checks/asset-size-app-block-javascript/index.spec.ts +66 -0
  473. package/src/checks/asset-size-app-block-javascript/index.ts +78 -0
  474. package/src/checks/asset-size-css/index.spec.ts +166 -0
  475. package/src/checks/asset-size-css/index.ts +160 -0
  476. package/src/checks/asset-size-javascript/index.spec.ts +184 -0
  477. package/src/checks/asset-size-javascript/index.ts +144 -0
  478. package/src/checks/block-id-usage/index.spec.ts +76 -0
  479. package/src/checks/block-id-usage/index.ts +72 -0
  480. package/src/checks/cdn-preconnect/index.spec.ts +40 -0
  481. package/src/checks/cdn-preconnect/index.ts +43 -0
  482. package/src/checks/content-for-header-modification/index.spec.ts +65 -0
  483. package/src/checks/content-for-header-modification/index.ts +72 -0
  484. package/src/checks/deprecate-bgsizes/index.spec.ts +41 -0
  485. package/src/checks/deprecate-bgsizes/index.ts +49 -0
  486. package/src/checks/deprecate-lazysizes/index.spec.ts +26 -0
  487. package/src/checks/deprecate-lazysizes/index.ts +58 -0
  488. package/src/checks/deprecated-filter/fixes.ts +264 -0
  489. package/src/checks/deprecated-filter/index.spec.ts +274 -0
  490. package/src/checks/deprecated-filter/index.ts +113 -0
  491. package/src/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.ts +1343 -0
  492. package/src/checks/deprecated-fonts-on-sections-and-blocks/index.spec.ts +613 -0
  493. package/src/checks/deprecated-fonts-on-sections-and-blocks/index.ts +284 -0
  494. package/src/checks/deprecated-fonts-on-settings-schema/index.spec.ts +102 -0
  495. package/src/checks/deprecated-fonts-on-settings-schema/index.ts +66 -0
  496. package/src/checks/deprecated-tag/index.spec.ts +68 -0
  497. package/src/checks/deprecated-tag/index.ts +46 -0
  498. package/src/checks/duplicate-content-for-arguments/index.spec.ts +98 -0
  499. package/src/checks/duplicate-content-for-arguments/index.ts +43 -0
  500. package/src/checks/duplicate-function-arguments/index.spec.ts +98 -0
  501. package/src/checks/duplicate-function-arguments/index.ts +44 -0
  502. package/src/checks/duplicate-render-partial-arguments/index.spec.ts +120 -0
  503. package/src/checks/duplicate-render-partial-arguments/index.ts +48 -0
  504. package/src/checks/empty-block-content/index.spec.ts +117 -0
  505. package/src/checks/empty-block-content/index.ts +60 -0
  506. package/src/checks/graphql/index.ts +64 -0
  507. package/src/checks/graphql-variables/index.ts +113 -0
  508. package/src/checks/hardcoded-routes/index.spec.ts +58 -0
  509. package/src/checks/hardcoded-routes/index.ts +100 -0
  510. package/src/checks/img-width-and-height/index.spec.ts +79 -0
  511. package/src/checks/img-width-and-height/index.ts +52 -0
  512. package/src/checks/index.ts +160 -0
  513. package/src/checks/invalid-hash-assign-target/index.spec.ts +176 -0
  514. package/src/checks/invalid-hash-assign-target/index.ts +306 -0
  515. package/src/checks/json-missing-block/index.spec.ts +435 -0
  516. package/src/checks/json-missing-block/index.ts +56 -0
  517. package/src/checks/json-missing-block/missing-block-utils.ts +147 -0
  518. package/src/checks/json-syntax-error/index.spec.ts +64 -0
  519. package/src/checks/json-syntax-error/index.ts +92 -0
  520. package/src/checks/liquid-free-settings/index.spec.ts +180 -0
  521. package/src/checks/liquid-free-settings/index.ts +79 -0
  522. package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpression.spec.ts +43 -0
  523. package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.ts +29 -0
  524. package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.spec.ts +385 -0
  525. package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.ts +165 -0
  526. package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.spec.ts +52 -0
  527. package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.ts +39 -0
  528. package/src/checks/liquid-html-syntax-error/checks/InvalidEchoValue.spec.ts +108 -0
  529. package/src/checks/liquid-html-syntax-error/checks/InvalidEchoValue.ts +74 -0
  530. package/src/checks/liquid-html-syntax-error/checks/InvalidFilterName.spec.ts +223 -0
  531. package/src/checks/liquid-html-syntax-error/checks/InvalidFilterName.ts +92 -0
  532. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.spec.ts +145 -0
  533. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.ts +116 -0
  534. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopRange.spec.ts +84 -0
  535. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopRange.ts +79 -0
  536. package/src/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.spec.ts +184 -0
  537. package/src/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.ts +91 -0
  538. package/src/checks/liquid-html-syntax-error/checks/MultipleAssignValues.spec.ts +82 -0
  539. package/src/checks/liquid-html-syntax-error/checks/MultipleAssignValues.ts +86 -0
  540. package/src/checks/liquid-html-syntax-error/checks/utils.spec.ts +82 -0
  541. package/src/checks/liquid-html-syntax-error/checks/utils.ts +66 -0
  542. package/src/checks/liquid-html-syntax-error/index.spec.ts +129 -0
  543. package/src/checks/liquid-html-syntax-error/index.ts +152 -0
  544. package/src/checks/matching-translations/index.spec.ts +400 -0
  545. package/src/checks/matching-translations/index.ts +175 -0
  546. package/src/checks/metadata-params/index.spec.ts +103 -0
  547. package/src/checks/metadata-params/index.ts +119 -0
  548. package/src/checks/missing-asset/index.spec.ts +59 -0
  549. package/src/checks/missing-asset/index.ts +48 -0
  550. package/src/checks/missing-content-for-arguments/index.spec.ts +144 -0
  551. package/src/checks/missing-content-for-arguments/index.ts +46 -0
  552. package/src/checks/missing-template/index.spec.ts +61 -0
  553. package/src/checks/missing-template/index.ts +101 -0
  554. package/src/checks/orphaned-partial/index.spec.ts +58 -0
  555. package/src/checks/orphaned-partial/index.ts +43 -0
  556. package/src/checks/pagination-size/index.spec.ts +158 -0
  557. package/src/checks/pagination-size/index.ts +104 -0
  558. package/src/checks/parser-blocking-script/index.spec.ts +225 -0
  559. package/src/checks/parser-blocking-script/index.ts +91 -0
  560. package/src/checks/parser-blocking-script/suggestions.ts +42 -0
  561. package/src/checks/remote-asset/index.spec.ts +280 -0
  562. package/src/checks/remote-asset/index.ts +238 -0
  563. package/src/checks/reserved-doc-param-names/index.spec.ts +62 -0
  564. package/src/checks/reserved-doc-param-names/index.ts +57 -0
  565. package/src/checks/schema-presets-block-order/index.spec.ts +344 -0
  566. package/src/checks/schema-presets-block-order/index.ts +154 -0
  567. package/src/checks/schema-presets-static-blocks/index.spec.ts +145 -0
  568. package/src/checks/schema-presets-static-blocks/index.ts +126 -0
  569. package/src/checks/static-stylesheet-and-javascript-tags/index.spec.ts +257 -0
  570. package/src/checks/static-stylesheet-and-javascript-tags/index.ts +48 -0
  571. package/src/checks/translation-key-exists/index.spec.ts +44 -0
  572. package/src/checks/translation-key-exists/index.ts +78 -0
  573. package/src/checks/unclosed-html-element/index.spec.ts +260 -0
  574. package/src/checks/unclosed-html-element/index.ts +296 -0
  575. package/src/checks/undefined-object/index.spec.ts +519 -0
  576. package/src/checks/undefined-object/index.ts +336 -0
  577. package/src/checks/unique-doc-param-names/index.spec.ts +35 -0
  578. package/src/checks/unique-doc-param-names/index.ts +39 -0
  579. package/src/checks/unique-settings-id/index.spec.ts +24 -0
  580. package/src/checks/unique-settings-id/index.ts +84 -0
  581. package/src/checks/unique-settings-id/test-data.ts +1191 -0
  582. package/src/checks/unique-static-block-id/index.spec.ts +55 -0
  583. package/src/checks/unique-static-block-id/index.ts +60 -0
  584. package/src/checks/unknown-filter/index.spec.ts +59 -0
  585. package/src/checks/unknown-filter/index.ts +38 -0
  586. package/src/checks/unknown-property/index.spec.ts +234 -0
  587. package/src/checks/unknown-property/index.ts +468 -0
  588. package/src/checks/unknown-property/property-shape.ts +315 -0
  589. package/src/checks/unrecognized-content-for-arguments/index.spec.ts +145 -0
  590. package/src/checks/unrecognized-content-for-arguments/index.ts +55 -0
  591. package/src/checks/unrecognized-render-partial-arguments/index.spec.ts +184 -0
  592. package/src/checks/unrecognized-render-partial-arguments/index.ts +76 -0
  593. package/src/checks/unused-assign/index.spec.ts +160 -0
  594. package/src/checks/unused-assign/index.ts +87 -0
  595. package/src/checks/unused-doc-param/index.spec.ts +89 -0
  596. package/src/checks/unused-doc-param/index.ts +59 -0
  597. package/src/checks/utils.ts +117 -0
  598. package/src/checks/valid-block-target/index.spec.ts +1396 -0
  599. package/src/checks/valid-block-target/index.ts +142 -0
  600. package/src/checks/valid-content-for-argument-types/index.spec.ts +382 -0
  601. package/src/checks/valid-content-for-argument-types/index.ts +42 -0
  602. package/src/checks/valid-content-for-arguments/index.spec.ts +107 -0
  603. package/src/checks/valid-content-for-arguments/index.ts +98 -0
  604. package/src/checks/valid-doc-param-types/index.spec.ts +75 -0
  605. package/src/checks/valid-doc-param-types/index.ts +71 -0
  606. package/src/checks/valid-html-translation/index.spec.ts +74 -0
  607. package/src/checks/valid-html-translation/index.ts +45 -0
  608. package/src/checks/valid-json/index.spec.ts +102 -0
  609. package/src/checks/valid-json/index.ts +34 -0
  610. package/src/checks/valid-local-blocks/index.spec.ts +286 -0
  611. package/src/checks/valid-local-blocks/index.ts +100 -0
  612. package/src/checks/valid-local-blocks/valid-block-utils.ts +97 -0
  613. package/src/checks/valid-render-partial-argument-types/index.spec.ts +468 -0
  614. package/src/checks/valid-render-partial-argument-types/index.ts +89 -0
  615. package/src/checks/valid-schema/index.spec.ts +174 -0
  616. package/src/checks/valid-schema/index.ts +41 -0
  617. package/src/checks/valid-schema-name/index.spec.ts +112 -0
  618. package/src/checks/valid-schema-name/index.ts +75 -0
  619. package/src/checks/valid-settings-key/index.spec.ts +321 -0
  620. package/src/checks/valid-settings-key/index.ts +144 -0
  621. package/src/checks/valid-static-block-type/index.spec.ts +38 -0
  622. package/src/checks/valid-static-block-type/index.ts +58 -0
  623. package/src/checks/valid-visible-if/index.spec.ts +619 -0
  624. package/src/checks/valid-visible-if/index.ts +184 -0
  625. package/src/checks/valid-visible-if/visible-if-utils.ts +158 -0
  626. package/src/checks/variable-name/index.spec.ts +62 -0
  627. package/src/checks/variable-name/index.ts +115 -0
  628. package/src/context-utils.spec.ts +103 -0
  629. package/src/context-utils.ts +220 -0
  630. package/src/create-safe-check.ts +13 -0
  631. package/src/disabled-checks/index.spec.ts +262 -0
  632. package/src/disabled-checks/index.ts +189 -0
  633. package/src/disabled-checks/test-checks.ts +60 -0
  634. package/src/find-root.ts +60 -0
  635. package/src/fixes/apply-fix-to-string.spec.ts +52 -0
  636. package/src/fixes/apply-fix-to-string.ts +59 -0
  637. package/src/fixes/autofix.spec.ts +85 -0
  638. package/src/fixes/autofix.ts +41 -0
  639. package/src/fixes/corrector.ts +0 -0
  640. package/src/fixes/correctors/base-corrector.ts +5 -0
  641. package/src/fixes/correctors/graphql-corrector.ts +78 -0
  642. package/src/fixes/correctors/index.ts +29 -0
  643. package/src/fixes/correctors/json-corrector.spec.ts +111 -0
  644. package/src/fixes/correctors/json-corrector.ts +106 -0
  645. package/src/fixes/correctors/string-corrector.ts +78 -0
  646. package/src/fixes/index.ts +4 -0
  647. package/src/fixes/utils.ts +6 -0
  648. package/src/ignore.spec.ts +202 -0
  649. package/src/ignore.ts +23 -0
  650. package/src/index.spec.ts +8 -0
  651. package/src/index.ts +234 -0
  652. package/src/json.spec.ts +140 -0
  653. package/src/json.ts +81 -0
  654. package/src/jsonc/parse.spec.ts +118 -0
  655. package/src/jsonc/parse.ts +121 -0
  656. package/src/jsonc/types.ts +47 -0
  657. package/src/liquid-doc/arguments.spec.ts +146 -0
  658. package/src/liquid-doc/arguments.ts +315 -0
  659. package/src/liquid-doc/liquidDoc.spec.ts +296 -0
  660. package/src/liquid-doc/liquidDoc.ts +147 -0
  661. package/src/liquid-doc/utils.spec.ts +23 -0
  662. package/src/liquid-doc/utils.ts +125 -0
  663. package/src/path.ts +45 -0
  664. package/src/tags/content-for.ts +25 -0
  665. package/src/test/MockFileSystem.spec.ts +71 -0
  666. package/src/test/MockFileSystem.ts +87 -0
  667. package/src/test/MockTheme.ts +17 -0
  668. package/src/test/chai-offer-fix-assertion.spec.ts +53 -0
  669. package/src/test/chai-offer-fix-assertion.ts +45 -0
  670. package/src/test/chai-suggest-assertion.spec.ts +53 -0
  671. package/src/test/chai-suggest-assertion.ts +62 -0
  672. package/src/test/contain-offense.spec.ts +74 -0
  673. package/src/test/contain-offense.ts +54 -0
  674. package/src/test/index.ts +3 -0
  675. package/src/test/test-helper.ts +327 -0
  676. package/src/test/test-setup.ts +36 -0
  677. package/src/to-schema.ts +231 -0
  678. package/src/to-source-code.ts +75 -0
  679. package/src/types/schema-prop-factory.ts +112 -0
  680. package/src/types/schemas/index.ts +5 -0
  681. package/src/types/schemas/preset.ts +52 -0
  682. package/src/types/schemas/section.ts +86 -0
  683. package/src/types/schemas/setting.ts +320 -0
  684. package/src/types/schemas/template.ts +34 -0
  685. package/src/types/schemas/theme-block.ts +34 -0
  686. package/src/types/theme-liquid-docs.ts +184 -0
  687. package/src/types/theme-schemas.ts +80 -0
  688. package/src/types.ts +617 -0
  689. package/src/utils/array.ts +31 -0
  690. package/src/utils/block.ts +300 -0
  691. package/src/utils/error.spec.ts +71 -0
  692. package/src/utils/error.ts +48 -0
  693. package/src/utils/file-utils.ts +58 -0
  694. package/src/utils/index.ts +8 -0
  695. package/src/utils/indexBy.ts +14 -0
  696. package/src/utils/markup.ts +10 -0
  697. package/src/utils/memo.spec.ts +83 -0
  698. package/src/utils/memo.ts +80 -0
  699. package/src/utils/object.ts +3 -0
  700. package/src/utils/position.ts +16 -0
  701. package/src/utils/types.ts +57 -0
  702. package/src/visitor.spec.ts +163 -0
  703. package/src/visitor.ts +161 -0
  704. package/src/visitors/index.ts +2 -0
  705. package/src/visitors/json.ts +41 -0
  706. package/src/visitors/liquid.ts +40 -0
  707. package/tsconfig.build.json +8 -0
  708. package/tsconfig.json +31 -0
@@ -0,0 +1,469 @@
1
+ import { LiquidHtmlNode, NodeTypes as LiquidHtmlNodeTypes } from '@platformos/liquid-html-parser';
2
+ import { Schema, Settings } from './types/schema-prop-factory';
3
+ import { AbstractFileSystem, UriString } from '@platformos/platformos-common';
4
+ import { JSONCorrector, StringCorrector } from './fixes';
5
+ import { ArrayNode, ASTNode, JSONNode, JSONNodeTypes, LiteralNode, ObjectNode, PropertyNode, ValueNode } from './jsonc/types';
6
+ import { JsonValidationSet, ThemeDocset } from './types/theme-liquid-docs';
7
+ import { AppBlockSchema, SectionSchema, ThemeBlockSchema } from './types/theme-schemas';
8
+ import { DocDefinition } from './liquid-doc/liquidDoc';
9
+ import { GraphQLCorrector } from './fixes/correctors/graphql-corrector';
10
+ export * from './jsonc/types';
11
+ export * from './types/schema-prop-factory';
12
+ export * from './types/theme-liquid-docs';
13
+ export * from './types/theme-schemas';
14
+ export declare const isObjectNode: (node?: ASTNode) => node is ObjectNode;
15
+ export declare const isArrayNode: (node?: ASTNode) => node is ArrayNode;
16
+ export declare const isPropertyNode: (node?: ASTNode) => node is PropertyNode;
17
+ export declare const isValueNode: (node?: ASTNode) => node is ValueNode;
18
+ export declare const isLiteralNode: (node?: ASTNode) => node is LiteralNode;
19
+ export declare const Modes: readonly ["theme", "app"];
20
+ export type Mode = (typeof Modes)[number];
21
+ export type Theme = SourceCode<SourceCodeType>[];
22
+ export type SourceCode<T = SourceCodeType> = T extends SourceCodeType ? {
23
+ /** A normalized uri the file. */
24
+ uri: string;
25
+ /** The type is used as a discriminant for type narrowing */
26
+ type: T;
27
+ /** The version is used by the Language Server to make sure the Client and Server are in sync */
28
+ version?: number;
29
+ /** The contents of the file */
30
+ source: string;
31
+ /** The AST representation of the file, or an Error instance when the file is unparseable */
32
+ ast: AST[T] | Error;
33
+ } : never;
34
+ export declare enum SourceCodeType {
35
+ JSON = "JSON",
36
+ LiquidHtml = "LiquidHtml",
37
+ GraphQL = "GraphQL"
38
+ }
39
+ export type LiquidSourceCode = SourceCode<SourceCodeType.LiquidHtml>;
40
+ export type PartialSourceCode = SourceCode<SourceCodeType.LiquidHtml> & PlatformOSFile & {
41
+ kind: 'Partial';
42
+ };
43
+ export type PageLiquidSourceCode = SourceCode<SourceCodeType.LiquidHtml> & PlatformOSFile & {
44
+ kind: 'Page';
45
+ route: string;
46
+ };
47
+ export type LiquidCheckDefinition<S extends Schema = Schema> = CheckDefinition<SourceCodeType.LiquidHtml, S>;
48
+ export type LiquidCheck = Check<SourceCodeType.LiquidHtml>;
49
+ export { LiquidHtmlNode, LiquidHtmlNodeTypes };
50
+ export type JSONSourceCode = SourceCode<SourceCodeType.JSON>;
51
+ export type JSONCheckDefinition<S extends Schema = Schema> = CheckDefinition<SourceCodeType.JSON, S>;
52
+ export type JSONCheck = Check<SourceCodeType.JSON>;
53
+ export interface PlatformOSFile {
54
+ name: string;
55
+ module_name: string;
56
+ path: string;
57
+ }
58
+ export interface GraphQLDocumentNode {
59
+ type: 'Document';
60
+ content: string;
61
+ }
62
+ export type AST = {
63
+ [T in SourceCodeType]: {
64
+ [SourceCodeType.JSON]: JSONNode;
65
+ [SourceCodeType.LiquidHtml]: LiquidHtmlNode;
66
+ [SourceCodeType.GraphQL]: GraphQLDocumentNode;
67
+ }[T];
68
+ };
69
+ export type NodeTypes = {
70
+ [T in SourceCodeType]: {
71
+ [SourceCodeType.JSON]: JSONNodeTypes;
72
+ [SourceCodeType.LiquidHtml]: LiquidHtmlNodeTypes;
73
+ [SourceCodeType.GraphQL]: 'Document';
74
+ }[T];
75
+ };
76
+ /** A vscode-uri string. */
77
+ export type { UriString };
78
+ /** Assumes forward slashes for simplicity internally */
79
+ export type RelativePath = string;
80
+ export type ChecksSettings = {
81
+ [code in string]?: CheckSettings;
82
+ };
83
+ export type CheckSettings = {
84
+ enabled: boolean;
85
+ severity?: Severity;
86
+ ignore?: string[];
87
+ } & {
88
+ [key in string]: any;
89
+ };
90
+ export type GraphQLSourceCode = SourceCode<SourceCodeType.GraphQL>;
91
+ export type GraphQLCheck = Check<SourceCodeType.GraphQL>;
92
+ export type GraphQLCheckDefinition<S extends Schema = Schema> = CheckDefinition<SourceCodeType.GraphQL, S>;
93
+ export interface Config {
94
+ context: Mode;
95
+ settings: ChecksSettings;
96
+ checks: CheckDefinition<SourceCodeType, Schema>[];
97
+ rootUri: string;
98
+ ignore?: string[];
99
+ onError?: (error: Error) => void;
100
+ }
101
+ export type NodeOfType<T extends SourceCodeType, NT> = Extract<AST[T], {
102
+ type: NT;
103
+ }>;
104
+ export type LiquidHtmlNodeOfType<T> = NodeOfType<SourceCodeType.LiquidHtml, T>;
105
+ export type JSONNodeOfType<T> = NodeOfType<SourceCodeType.LiquidHtml, T>;
106
+ export type CheckDefinition<T = SourceCodeType, S extends Schema = Schema> = T extends SourceCodeType ? {
107
+ /**
108
+ * The meta object holds information about the check.
109
+ * Its name, documentation, severity, etc.
110
+ */
111
+ meta: {
112
+ /** A human readable name for the check */
113
+ name: string;
114
+ /**
115
+ * A code for the check (shortname without spaces).
116
+ *
117
+ * Used in configurations and IDEs.
118
+ *
119
+ * Should be unique.
120
+ */
121
+ code: string;
122
+ /** For backwards compatibility, alternative code names for the check */
123
+ aliases?: string[];
124
+ /** The severity determines the icon and color of diagnostics */
125
+ severity: Severity.ERROR | Severity.WARNING | Severity.INFO;
126
+ /** Which AST type the check targets, must be one of SourceCodeType. */
127
+ type: T;
128
+ /** Human readable short description of the check as well as link to documentation. */
129
+ docs: {
130
+ description: string;
131
+ recommended?: boolean;
132
+ url?: string;
133
+ };
134
+ /**
135
+ * Schema of settings passed to your check.
136
+ *
137
+ * Used to support validations of your setting values, documentation,
138
+ * and IDE support.
139
+ */
140
+ schema: Schema;
141
+ /**
142
+ * An optional array that determines which yaml configs will have this check enabled.
143
+ *
144
+ * When no values are given, this check will be `enabled: true` in the `all.yml` configuration
145
+ *
146
+ * When values are given, this check will be `enabled: false` in the `all.yml` configuration
147
+ * and `enabled: true` within all yaml configurations with a matching filename.
148
+ *
149
+ * Note: theme-app-extension target is deprecated (Shopify-specific)
150
+ */
151
+ targets?: ConfigTarget[];
152
+ deprecated?: boolean;
153
+ replacedBy?: boolean;
154
+ };
155
+ /**
156
+ * A function that returns a Check, the function scope is a good place to
157
+ * initialize state for a run.
158
+ *
159
+ * - One check is created per file
160
+ * - The state is not shared while traversing all files
161
+ * - To report problems, use the context.report method.
162
+ *
163
+ * @example
164
+ *
165
+ * create(context) {
166
+ * const tags = []
167
+ *
168
+ * return {
169
+ * async LiquidTag(node) {
170
+ * tags.push(node);
171
+ * },
172
+ *
173
+ * async onCodePathEnd() {
174
+ * tags.forEach(tag => {
175
+ * ...
176
+ * });
177
+ * },
178
+ * }
179
+ * }
180
+ */
181
+ create(context: Context<T, S>): Partial<Check<T>>;
182
+ } : never;
183
+ /**
184
+ * A Check is an object that defines visitor methods by node type.
185
+ *
186
+ * @example
187
+ * {
188
+ * async onCodePathStart(file) {
189
+ * // Happens at the very beginning
190
+ * },
191
+ *
192
+ * AssignMarkup: async (node, file) => {
193
+ * // Happens once per node, while going down the tree
194
+ * },
195
+ *
196
+ * "AssignMarkup:exit": async (node, file) => {
197
+ * // Happens once per node, in reverse order
198
+ * },
199
+ *
200
+ * async onCodePathEnd(file) {
201
+ * // Happens at the very end
202
+ * }
203
+ * }
204
+ */
205
+ export type Check<T> = T extends SourceCodeType ? Partial<CheckNodeMethods<T> & CheckExitMethods<T> & CheckLifecycleMethods<T>> : never;
206
+ export type CheckNodeMethod<T extends SourceCodeType, NT> = (node: NodeOfType<T, NT>, ancestors: AST[T][]) => Promise<void>;
207
+ type CheckNodeMethods<T extends SourceCodeType> = {
208
+ [NT in NodeTypes[T]]: CheckNodeMethod<T, NT>;
209
+ };
210
+ type CheckExitMethods<T extends SourceCodeType> = {
211
+ [NT in NodeTypes[T] as `${NT}:exit`]: CheckNodeMethod<T, NT>;
212
+ };
213
+ type CheckLifecycleMethods<T extends SourceCodeType> = {
214
+ /** Happens before traversing a file, file might be unparseable */
215
+ onCodePathStart(file: SourceCode<T>): Promise<void>;
216
+ /** Happens after traversing a file, file is guaranteed to exist */
217
+ onCodePathEnd(file: SourceCode<T> & {
218
+ ast: AST[T];
219
+ }): Promise<void>;
220
+ };
221
+ export type MetafieldCategory = 'article' | 'blog' | 'collection' | 'company' | 'company_location' | 'location' | 'market' | 'order' | 'page' | 'product' | 'variant' | 'shop';
222
+ export type MetafieldDefinitionMap = {
223
+ [key in MetafieldCategory]: MetafieldDefinition[];
224
+ };
225
+ export type MetafieldDefinition = {
226
+ key: string;
227
+ name: string;
228
+ namespace: string;
229
+ description: string;
230
+ type: MetafieldDefinitionType;
231
+ };
232
+ type MetafieldDefinitionType = {
233
+ category: string;
234
+ name: string;
235
+ };
236
+ export type Translations = {
237
+ [k in string]: string | Translations;
238
+ };
239
+ /**
240
+ * A reference is a link between two modules.
241
+ *
242
+ * @example
243
+ *
244
+ * It could be a specific range that points to a whole file
245
+ * {
246
+ * source: { uri: 'file:///templates/index.json', range: [167, 190] },
247
+ * target: 'file:///sections/custom-section.liquid'
248
+ * }
249
+ *
250
+ * It could be a specific range that points to a specific range
251
+ * {
252
+ * // e.g. `<parent-component></parent-component>`
253
+ * source: { uri: 'file:///app/views/partials/parent.liquid', range: [167, 190] },
254
+ *
255
+ * // e.g. window.customElements.define('parent-component', ParentComponent);
256
+ * target: { uri: 'file:///assets/theme.js', range: [0, undefined] }
257
+ * }
258
+ */
259
+ export type Reference = {
260
+ source: Location;
261
+ target: Location;
262
+ type: 'direct' | 'indirect' | 'preset';
263
+ };
264
+ export type Range = [start: number, end: number];
265
+ export type Location = {
266
+ /** The URI of the module */
267
+ uri: UriString;
268
+ /** Optional range inside that module */
269
+ range?: Range;
270
+ };
271
+ export interface Dependencies {
272
+ /** The file system abstraction used to read files. */
273
+ fs: AbstractFileSystem;
274
+ /** The typing information */
275
+ themeDocset?: ThemeDocset;
276
+ /** The blocks/sections JSON schemas */
277
+ jsonValidationSet?: JsonValidationSet;
278
+ /** Returns the typing information for the theme's metafields */
279
+ getMetafieldDefinitions?: (rootUri: UriString) => Promise<MetafieldDefinitionMap>;
280
+ /**
281
+ * Asynchronously get the block schema for 'blocks/${name}.liquid'
282
+ * May return undefined when the theme isn't preloaded.
283
+ * See {@link ThemeBlockSchema} for more information
284
+ */
285
+ getBlockSchema?: (name: string) => Promise<ThemeBlockSchema | undefined>;
286
+ /**
287
+ * Asynchronously get the section schema for 'section/${name}.liquid'
288
+ * May return undefined when the theme isn't preloaded or if there are none.
289
+ * See {@link SectionSchema} for more information
290
+ */
291
+ getSectionSchema?: (name: string) => Promise<SectionSchema | undefined>;
292
+ /**
293
+ * (In theme app extension mode)
294
+ * Asynchronously get the block schema for 'blocks/${name}.liquid'
295
+ * May return undefined when the theme isn't preloaded.
296
+ * See {@link AppBlockSchema} for more information
297
+ */
298
+ getAppBlockSchema?: (name: string) => Promise<AppBlockSchema | undefined>;
299
+ /**
300
+ * Asynchronously get the Liquid HTML AST for a file.
301
+ * May return undefined when the theme isn't preloaded.
302
+ *
303
+ * Used in theme-checks for cross-file checks rather that going through fs.
304
+ */
305
+ getDocDefinition?: (relativePath: string) => Promise<DocDefinition | undefined>;
306
+ /**
307
+ * Get references to a file (which files reference this file)
308
+ * Returns an empty array if no files reference this file
309
+ */
310
+ getReferences?: (uri: string) => Promise<Reference[]>;
311
+ }
312
+ export type ValidateJSON = (uri: string, jsonString: string) => Promise<{
313
+ message: string;
314
+ startIndex: number;
315
+ endIndex: number;
316
+ }[]>;
317
+ export type IsValidSchema = (uri: string, jsonString: string) => Promise<boolean>;
318
+ export interface AugmentedDependencies extends Dependencies {
319
+ fileExists: (uri: UriString) => Promise<boolean>;
320
+ fileSize: (uri: UriString) => Promise<number>;
321
+ getDefaultLocale: () => Promise<string>;
322
+ getDefaultSchemaLocale: () => Promise<string>;
323
+ getDefaultTranslations(): Promise<Translations>;
324
+ getDefaultSchemaTranslations(): Promise<Translations>;
325
+ mode: Mode;
326
+ }
327
+ type StaticContextProperties<T extends SourceCodeType> = T extends SourceCodeType ? {
328
+ report(problem: Problem<T>): void;
329
+ toRelativePath(uri: UriString): RelativePath;
330
+ toUri(relativePath: RelativePath): UriString;
331
+ file: SourceCode<T>;
332
+ validateJSON?: ValidateJSON;
333
+ } : never;
334
+ export type Context<T extends SourceCodeType, S extends Schema = Schema> = T extends SourceCodeType ? StaticContextProperties<T> & AugmentedDependencies & {
335
+ settings: Settings<S>;
336
+ config: Config;
337
+ } : never;
338
+ export type Corrector<T extends SourceCodeType> = T extends SourceCodeType ? {
339
+ [SourceCodeType.JSON]: JSONCorrector;
340
+ [SourceCodeType.LiquidHtml]: StringCorrector;
341
+ [SourceCodeType.GraphQL]: GraphQLCorrector;
342
+ }[T] : never;
343
+ /**
344
+ * A Fixer is a function that returns a Fix (a data representation of the change).
345
+ *
346
+ * The Corrector module is helpful for creating Fix objects.
347
+ */
348
+ export type Fixer<T extends SourceCodeType> = T extends SourceCodeType ? (corrector: Corrector<T>) => void : never;
349
+ export type LiquidHtmlFixer = Fixer<SourceCodeType.LiquidHtml>;
350
+ export type JSONFixer = Fixer<SourceCodeType.JSON>;
351
+ export type GraphQLFixer = Fixer<SourceCodeType.GraphQL>;
352
+ /**
353
+ * A data representation of a collection of changes to a document. They all
354
+ * assume that they operate on the initial string independently.
355
+ *
356
+ * It is recursive so that fixes can be grouped together.
357
+ */
358
+ export type Fix = FixDescription | Fix[];
359
+ /**
360
+ * A data representation of a change to a document.
361
+ *
362
+ * To insert:
363
+ * - startIndex: x, endIndex: x, insert: insertion
364
+ *
365
+ * To replace:
366
+ * - startIndex: x, endIndex: y, insert: replacement
367
+ *
368
+ * To delete:
369
+ * - startIndex: x, endIndex: y, insert: ''
370
+ */
371
+ export interface FixDescription {
372
+ /** 0-based index, included */
373
+ startIndex: number;
374
+ /** 0-based index, excluded */
375
+ endIndex: number;
376
+ /** What to replace the contents of the range with. To delete, put entry string. */
377
+ insert: string;
378
+ }
379
+ /**
380
+ * The FixApplicator is a function that takes a list of FixDescription and
381
+ * applies them on the source to produce a result.
382
+ *
383
+ * - In a CLI context, this might be changeString().then(saveFile)
384
+ * - In the Language Server, this function will collect the TextEdit[]
385
+ * before sending them as a WorkspaceEdit
386
+ *
387
+ * It is assumed that all FixDescription are all applied to the initial
388
+ * document, and not the one produced by previous FixDescription.
389
+ *
390
+ * It is the FixApplicator's job to throw an error if the FixDescription
391
+ * array contains overlapping ranges.
392
+ *
393
+ * It is the FixApplicator's job to change the location of fixes as indexes
394
+ * drift. See [1] and [2] for inspiration, we're following the same
395
+ * pattern.
396
+ *
397
+ * [1]: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textEditArray
398
+ * [2]: https://codemirror.net/docs/ref/#state.EditorState.update
399
+ */
400
+ export interface FixApplicator {
401
+ (source: SourceCode<SourceCodeType>, fixes: Fix): Promise<void>;
402
+ }
403
+ /**
404
+ * A suggestion is a Fix that we cannot apply automatically. Perhaps
405
+ * because there are multiple options or because the fix is dangerous and
406
+ * requires care.
407
+ *
408
+ * To be used by code editors.
409
+ */
410
+ export type Suggestion<T extends SourceCodeType> = T extends SourceCodeType ? {
411
+ message: string;
412
+ fix: Fixer<T>;
413
+ } : never;
414
+ export type LiquidHtmlSuggestion = Suggestion<SourceCodeType.LiquidHtml>;
415
+ export type JSONSuggestion = Suggestion<SourceCodeType.JSON>;
416
+ export type Problem<T extends SourceCodeType> = T extends SourceCodeType ? {
417
+ /** The description of the problem shown to the user */
418
+ message: string;
419
+ /** 0-indexed, included */
420
+ startIndex: number;
421
+ /** 0-indexed, excluded */
422
+ endIndex: number;
423
+ /**
424
+ * The fix attribute is used to provide a "autofix" rule
425
+ * to the offense. It is reserved for safe changes.
426
+ * Unsafe changes should go in `suggest`.
427
+ */
428
+ fix?: Fixer<T>;
429
+ /**
430
+ * Sometimes, it's not appropriate to automatically apply a fix either
431
+ * because it is not safe, or because there are multiple ways to fix it.
432
+ *
433
+ * For instance, we can't know if you'd want to fix a parser blocking
434
+ * script with `defer` or with `async`. The suggest array allows us to
435
+ * provide fixes for either and the user can choose which one they want.
436
+ */
437
+ suggest?: Suggestion<T>[];
438
+ } : never;
439
+ export type Offense<T extends SourceCodeType = SourceCodeType> = T extends SourceCodeType ? {
440
+ type: T;
441
+ check: string;
442
+ message: string;
443
+ uri: string;
444
+ severity: Severity;
445
+ start: Position;
446
+ end: Position;
447
+ fix?: Fixer<T>;
448
+ suggest?: Suggestion<T>[];
449
+ } : never;
450
+ export interface Position {
451
+ /** 0-indexed */
452
+ index: number;
453
+ /** 1-indexed */
454
+ get line(): number;
455
+ /** 0-indexed */
456
+ get character(): number;
457
+ }
458
+ /** The severity determines the icon and color of diagnostics */
459
+ export declare enum Severity {
460
+ ERROR = 0,
461
+ WARNING = 1,
462
+ INFO = 2
463
+ }
464
+ /** The yaml configurations to target checks */
465
+ export declare enum ConfigTarget {
466
+ All = "all",
467
+ Recommended = "recommended",
468
+ ThemeAppExtension = "theme-app-extension"
469
+ }
package/dist/types.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ConfigTarget = exports.Severity = exports.LiquidHtmlNodeTypes = exports.SourceCodeType = exports.Modes = exports.isLiteralNode = exports.isValueNode = exports.isPropertyNode = exports.isArrayNode = exports.isObjectNode = void 0;
18
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
19
+ Object.defineProperty(exports, "LiquidHtmlNodeTypes", { enumerable: true, get: function () { return liquid_html_parser_1.NodeTypes; } });
20
+ __exportStar(require("./jsonc/types"), exports);
21
+ __exportStar(require("./types/schema-prop-factory"), exports);
22
+ __exportStar(require("./types/theme-liquid-docs"), exports);
23
+ __exportStar(require("./types/theme-schemas"), exports);
24
+ const isObjectNode = (node) => node?.type === 'Object';
25
+ exports.isObjectNode = isObjectNode;
26
+ const isArrayNode = (node) => node?.type === 'Array';
27
+ exports.isArrayNode = isArrayNode;
28
+ const isPropertyNode = (node) => node?.type === 'Property';
29
+ exports.isPropertyNode = isPropertyNode;
30
+ const isValueNode = (node) => node?.type === 'Value';
31
+ exports.isValueNode = isValueNode;
32
+ const isLiteralNode = (node) => node?.type === 'Literal';
33
+ exports.isLiteralNode = isLiteralNode;
34
+ exports.Modes = ['theme', 'app'];
35
+ var SourceCodeType;
36
+ (function (SourceCodeType) {
37
+ SourceCodeType["JSON"] = "JSON";
38
+ SourceCodeType["LiquidHtml"] = "LiquidHtml";
39
+ SourceCodeType["GraphQL"] = "GraphQL";
40
+ })(SourceCodeType || (exports.SourceCodeType = SourceCodeType = {}));
41
+ /** The severity determines the icon and color of diagnostics */
42
+ var Severity;
43
+ (function (Severity) {
44
+ Severity[Severity["ERROR"] = 0] = "ERROR";
45
+ Severity[Severity["WARNING"] = 1] = "WARNING";
46
+ Severity[Severity["INFO"] = 2] = "INFO";
47
+ })(Severity || (exports.Severity = Severity = {}));
48
+ /** The yaml configurations to target checks */
49
+ var ConfigTarget;
50
+ (function (ConfigTarget) {
51
+ ConfigTarget["All"] = "all";
52
+ ConfigTarget["Recommended"] = "recommended";
53
+ ConfigTarget["ThemeAppExtension"] = "theme-app-extension";
54
+ })(ConfigTarget || (exports.ConfigTarget = ConfigTarget = {}));
55
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uEAAkG;AA2EzE,oGA3Ea,8BAAmB,OA2Eb;AArD5C,gDAA8B;AAC9B,8DAA4C;AAC5C,4DAA0C;AAC1C,wDAAsC;AAE/B,MAAM,YAAY,GAAG,CAAC,IAAc,EAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;AAA/E,QAAA,YAAY,gBAAmE;AACrF,MAAM,WAAW,GAAG,CAAC,IAAc,EAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;AAA5E,QAAA,WAAW,eAAiE;AAClF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAwB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC;AAArF,QAAA,cAAc,kBAAuE;AAC3F,MAAM,WAAW,GAAG,CAAC,IAAc,EAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;AAA5E,QAAA,WAAW,eAAiE;AAClF,MAAM,aAAa,GAAG,CAAC,IAAc,EAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;AAAlF,QAAA,aAAa,iBAAqE;AAElF,QAAA,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAU,CAAC;AAkB/C,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;IACzB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAqiBD,gEAAgE;AAChE,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,6CAAW,CAAA;IACX,uCAAQ,CAAA;AACV,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,+CAA+C;AAC/C,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,2CAA2B,CAAA;IAC3B,yDAAyC,CAAA;AAC3C,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
@@ -0,0 +1,5 @@
1
+ export declare function first<T>(arr: T[]): T | undefined;
2
+ export declare function last<T>(arr: T[], offset?: number): T | undefined;
3
+ export declare function findLast<T, NT extends T>(array: T[], pred: (n: T) => n is NT): NT | undefined;
4
+ export declare function findLastIndex<T>(array: T[], pred: (n: T) => boolean): number;
5
+ export declare function findLastAndIndex<T, NT extends T>(array: T[], pred: (n: T) => n is NT): [NT, number] | [undefined, -1];
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.first = first;
4
+ exports.last = last;
5
+ exports.findLast = findLast;
6
+ exports.findLastIndex = findLastIndex;
7
+ exports.findLastAndIndex = findLastAndIndex;
8
+ function first(arr) {
9
+ return arr[0];
10
+ }
11
+ function last(arr, offset = 0) {
12
+ return arr[arr.length - 1 + offset];
13
+ }
14
+ function findLast(array, pred) {
15
+ return array[findLastIndex(array, pred)];
16
+ }
17
+ function findLastIndex(array, pred) {
18
+ for (let i = array.length - 1; i >= 0; i--) {
19
+ if (pred(array[i]))
20
+ return i;
21
+ }
22
+ return -1;
23
+ }
24
+ function findLastAndIndex(array, pred) {
25
+ const index = findLastIndex(array, pred);
26
+ return [array[index], index];
27
+ }
28
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utils/array.ts"],"names":[],"mappings":";;AAAA,sBAEC;AAED,oBAEC;AAGD,4BAEC;AAED,sCAKC;AAMD,4CAMC;AA9BD,SAAgB,KAAK,CAAI,GAAQ;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,SAAgB,IAAI,CAAI,GAAQ,EAAE,SAAiB,CAAC;IAClD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACtC,CAAC;AAGD,SAAgB,QAAQ,CAAI,KAAU,EAAE,IAAuB;IAC7D,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,aAAa,CAAI,KAAU,EAAE,IAAuB;IAClE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAMD,SAAgB,gBAAgB,CAC9B,KAAU,EACV,IAAuB;IAEvB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { JSONNode, Preset, Section, SourceCodeType, ThemeBlock, Context, StaticBlockDef } from '../types';
2
+ export type BlockDefNodeWithPath = {
3
+ node: Section.Block | ThemeBlock.Block;
4
+ path: string[];
5
+ };
6
+ export type PresetBlockNodeWithPath = {
7
+ node: Preset.Block;
8
+ path: string[];
9
+ };
10
+ export declare function getBlocks(validSchema: ThemeBlock.Schema | Section.Schema): {
11
+ rootLevelThemeBlocks: BlockDefNodeWithPath[];
12
+ rootLevelLocalBlocks: BlockDefNodeWithPath[];
13
+ presetLevelBlocks: {
14
+ [key: number]: PresetBlockNodeWithPath[];
15
+ };
16
+ defaultLevelBlocks: BlockDefNodeWithPath[];
17
+ };
18
+ export declare function isInvalidPresetBlock(blockId: string, blockNode: Preset.Block, rootLevelThemeBlocks: BlockDefNodeWithPath[], staticBlockDefs: StaticBlockDef[]): boolean;
19
+ export declare function isInvalidDefaultBlock(blockNode: Section.Block | ThemeBlock.Block, rootLevelThemeBlocks: BlockDefNodeWithPath[]): boolean;
20
+ export declare function validateNestedBlocks(context: Context<SourceCodeType.LiquidHtml>, parentNode: Preset.PresetBlockForHash | Preset.PresetBlockForArray, nestedBlocks: Preset.PresetBlockHash | Preset.PresetBlockForArray[], currentPath: string[], offset: number, ast: JSONNode): Promise<void>;
21
+ export declare function reportWarning(message: string, offset: number, astNode: JSONNode, context: Context<SourceCodeType.LiquidHtml>): void;
22
+ export declare function validateBlockFileExistence(blockType: string, context: Context<SourceCodeType.LiquidHtml>): Promise<boolean>;