@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,81 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.findRoot = findRoot;
37
+ const path = __importStar(require("./path"));
38
+ async function isRoot(dir, fileExists) {
39
+ return or(
40
+ // .pos config file and app directory exists
41
+ and(fileExists(path.join(dir, '.pos')), fileExists(path.join(dir, 'app')), fileExists(path.join(dir, 'modules')), fileExists(path.join(dir, '.git'))));
42
+ }
43
+ async function and(...promises) {
44
+ const bools = await Promise.all(promises);
45
+ return bools.reduce((a, b) => a && b, true);
46
+ }
47
+ async function or(...promises) {
48
+ const bools = await Promise.all(promises);
49
+ return bools.reduce((a, b) => a || b, false);
50
+ }
51
+ async function not(ap) {
52
+ const a = await ap;
53
+ return !a;
54
+ }
55
+ /**
56
+ * Returns the "root" of a theme or theme app extension. The root is the
57
+ * directory that contains a `.theme-check.yml` file, a `.git` directory, or a
58
+ * `shopify.extension.toml` file.
59
+ *
60
+ * There are cases where .theme-check.yml is not defined and we have to infer the root.
61
+ * We'll assume that the root is the directory that contains a `snippets` directory.
62
+ *
63
+ * So you can think of this function as the function that infers where a .theme-check.yml
64
+ * should be.
65
+ *
66
+ * Note: that this is not the theme root. The config file might have a `root` entry in it
67
+ * that points to somewhere else.
68
+ */
69
+ async function findRoot(curr, fileExists) {
70
+ const currIsRoot = await isRoot(curr, fileExists);
71
+ if (currIsRoot) {
72
+ return curr;
73
+ }
74
+ const dir = path.dirname(curr);
75
+ const currIsAbsoluteRoot = dir === curr;
76
+ if (currIsAbsoluteRoot) {
77
+ return null; // Root not found.
78
+ }
79
+ return findRoot(dir, fileExists);
80
+ }
81
+ //# sourceMappingURL=find-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-root.js","sourceRoot":"","sources":["../src/find-root.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,4BAaC;AA1DD,6CAA+B;AAI/B,KAAK,UAAU,MAAM,CAAC,GAAc,EAAE,UAAsB;IAC1D,OAAO,EAAE;IACP,4CAA4C;IAC5C,GAAG,CACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EACjC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CACnC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,GAAG,QAA4B;IAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,EAAE,CAAC,GAAG,QAA4B;IAC/C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,EAAoB;IACrC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAe,EAAE,UAAsB;IACpE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,kBAAkB,GAAG,GAAG,KAAK,IAAI,CAAC;IACxC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,CAAC,kBAAkB;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Fix } from '../types';
2
+ export declare function applyFixToString(source: string, fix: Fix): string;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyFixToString = applyFixToString;
4
+ const utils_1 = require("./utils");
5
+ // First iteration imported @codemirror/state to do this but it's kind of
6
+ // a gross dependency. I asked chatGPT to make me something similar and,
7
+ // after a couple of prompts, was surprised to like the result.
8
+ //
9
+ // So here goes:
10
+ // A neat and mean (Source, Fix) => Source function :)
11
+ function applyFixToString(source, fix) {
12
+ // Create a copy of the original string to store the modified result
13
+ let newStr = source;
14
+ // Initialize an offset variable to keep track of the changes in index
15
+ // due to previous fixes. This is necessary because each modification
16
+ // is assumed to be to the original document, and we need to account for
17
+ // the index drift caused by previous fixes.
18
+ let offset = 0;
19
+ // Sort modifications by startIndex in ascending order to ensure that
20
+ // modifications with lower indices are applied first. This helps to
21
+ // maintain the correct index positions for subsequent modifications.
22
+ const sortedFixes = (0, utils_1.flattenFixes)(fix).sort((a, b) => a.startIndex - b.startIndex);
23
+ // Verify that the fixes are valid and do not overlap
24
+ for (let i = 0; i < sortedFixes.length - 1; i++) {
25
+ const currentFix = sortedFixes[i];
26
+ const nextFix = sortedFixes[i + 1];
27
+ // Check if the current fix overlaps with the next fix
28
+ if (currentFix.endIndex > nextFix.startIndex) {
29
+ throw new Error('Overlapping ranges are not allowed');
30
+ }
31
+ }
32
+ for (const fix of sortedFixes) {
33
+ // Drift-adjust the fix location
34
+ const startIndex = fix.startIndex + offset;
35
+ const endIndex = fix.endIndex + offset;
36
+ // Throw an error if either startIndex or endIndex are out of bounds.
37
+ if (startIndex < 0 ||
38
+ startIndex > newStr.length ||
39
+ endIndex < startIndex ||
40
+ endIndex > newStr.length) {
41
+ throw new Error('Fix description is going overboard');
42
+ }
43
+ // Perform the modification at the drift-adjusted location
44
+ newStr = newStr.slice(0, startIndex) + fix.insert + newStr.slice(endIndex);
45
+ // Account for "index drift" as the modifications are applied.
46
+ offset += fix.insert.length - (endIndex - startIndex);
47
+ }
48
+ return newStr;
49
+ }
50
+ //# sourceMappingURL=apply-fix-to-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-fix-to-string.js","sourceRoot":"","sources":["../../src/fixes/apply-fix-to-string.ts"],"names":[],"mappings":";;AASA,4CAiDC;AAzDD,mCAAuC;AAEvC,yEAAyE;AACzE,wEAAwE;AACxE,+DAA+D;AAC/D,EAAE;AACF,gBAAgB;AAChB,sDAAsD;AACtD,SAAgB,gBAAgB,CAAC,MAAc,EAAE,GAAQ;IACvD,oEAAoE;IACpE,IAAI,MAAM,GAAG,MAAM,CAAC;IAEpB,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,4CAA4C;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,qEAAqE;IACrE,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAElF,qDAAqD;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnC,sDAAsD;QACtD,IAAI,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,gCAAgC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;QAEvC,qEAAqE;QACrE,IACE,UAAU,GAAG,CAAC;YACd,UAAU,GAAG,MAAM,CAAC,MAAM;YAC1B,QAAQ,GAAG,UAAU;YACrB,QAAQ,GAAG,MAAM,CAAC,MAAM,EACxB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,0DAA0D;QAC1D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE3E,8DAA8D;QAC9D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FixApplicator, Offense, Theme } from '../types';
2
+ /**
3
+ * Takes a theme, list of offenses and a fixApplicator and runs all the
4
+ * safe ones on the theme.
5
+ *
6
+ * Note that offense.fix is assumed to be safe, unlike offense.suggest
7
+ * options.
8
+ */
9
+ export declare function autofix(sourceCodes: Theme, offenses: Offense[], applyFixes: FixApplicator): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autofix = autofix;
4
+ const correctors_1 = require("./correctors");
5
+ const utils_1 = require("./utils");
6
+ /**
7
+ * Takes a theme, list of offenses and a fixApplicator and runs all the
8
+ * safe ones on the theme.
9
+ *
10
+ * Note that offense.fix is assumed to be safe, unlike offense.suggest
11
+ * options.
12
+ */
13
+ async function autofix(sourceCodes, offenses, applyFixes) {
14
+ const fixableOffenses = offenses.filter((offense) => 'fix' in offense && !!offense.fix);
15
+ const promises = [];
16
+ for (const sourceCode of sourceCodes) {
17
+ const sourceCodeOffenses = fixableOffenses.filter((offense) => offense.uri === sourceCode.uri);
18
+ if (sourceCodeOffenses.length === 0) {
19
+ continue;
20
+ }
21
+ const corrector = (0, correctors_1.createCorrector)(sourceCode.type, sourceCode.source);
22
+ for (const offense of sourceCodeOffenses) {
23
+ // I'm being slightly too clever for TypeScript here...
24
+ offense.fix(corrector);
25
+ }
26
+ promises.push(applyFixes(sourceCode, (0, utils_1.flattenFixes)(corrector.fix)));
27
+ }
28
+ await Promise.all(promises);
29
+ }
30
+ //# sourceMappingURL=autofix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../src/fixes/autofix.ts"],"names":[],"mappings":";;AAgBA,0BAwBC;AAtCD,6CAA+C;AAC/C,mCAAuC;AAMvC;;;;;;GAMG;AACI,KAAK,UAAU,OAAO,CAAC,WAAkB,EAAE,QAAmB,EAAE,UAAyB;IAC9F,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CACrC,CAAC,OAAO,EAA6C,EAAE,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAC1F,CAAC;IAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;QAE/F,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,uDAAuD;YACvD,OAAO,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;QAChC,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAA,oBAAY,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=corrector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corrector.js","sourceRoot":"","sources":["../../src/fixes/corrector.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Fix } from '../../types';
2
+ export interface BaseCorrector {
3
+ get fix(): Fix;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base-corrector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-corrector.js","sourceRoot":"","sources":["../../../src/fixes/correctors/base-corrector.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { Fix } from '../../types';
2
+ import { BaseCorrector } from './base-corrector';
3
+ /**
4
+ * The corrector is a helper that collects Fix objects. At the end we
5
+ * collect those fix objects and apply them on the source code to obtain a
6
+ * "fixed" file.
7
+ *
8
+ * We cannot fix on overlapping ranges.
9
+ *
10
+ * All fix are assumed to be on the file without modifications. The
11
+ * FixApplicator should take care of knowing where to apply fixes as the
12
+ * changes are applied.
13
+ */
14
+ export declare class GraphQLCorrector implements BaseCorrector {
15
+ source: string;
16
+ readonly fix: Fix[];
17
+ constructor(source: string);
18
+ /**
19
+ * insert text before the given index
20
+ *
21
+ * @example
22
+ * corrector.insert(
23
+ * node.position.start,
24
+ * node.position.start,
25
+ * 'prefix node with this content'
26
+ * )
27
+ *
28
+ * corrector.insert(
29
+ * node.position.end,
30
+ * node.position.end,
31
+ * 'suffix node with this content (since position.end is excluded)'
32
+ * )
33
+ */
34
+ insert(index: number, text: string): void;
35
+ /**
36
+ * replace text between start (included) and end (excluded) with text.
37
+ *
38
+ * @example
39
+ * corrector.replace(
40
+ * node.position.start,
41
+ * node.position.end,
42
+ * 'ho ho ho',
43
+ * );
44
+ */
45
+ replace(start: number, end: number, text: string): void;
46
+ /**
47
+ * remove text between start (included) and end (excluded)
48
+ *
49
+ * @example
50
+ * corrector.remove(
51
+ * node.position.start,
52
+ * node.position.end,
53
+ * )
54
+ */
55
+ remove(start: number, end: number): void;
56
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLCorrector = void 0;
4
+ /**
5
+ * The corrector is a helper that collects Fix objects. At the end we
6
+ * collect those fix objects and apply them on the source code to obtain a
7
+ * "fixed" file.
8
+ *
9
+ * We cannot fix on overlapping ranges.
10
+ *
11
+ * All fix are assumed to be on the file without modifications. The
12
+ * FixApplicator should take care of knowing where to apply fixes as the
13
+ * changes are applied.
14
+ */
15
+ class GraphQLCorrector {
16
+ constructor(source) {
17
+ this.source = source;
18
+ this.fix = [];
19
+ }
20
+ /**
21
+ * insert text before the given index
22
+ *
23
+ * @example
24
+ * corrector.insert(
25
+ * node.position.start,
26
+ * node.position.start,
27
+ * 'prefix node with this content'
28
+ * )
29
+ *
30
+ * corrector.insert(
31
+ * node.position.end,
32
+ * node.position.end,
33
+ * 'suffix node with this content (since position.end is excluded)'
34
+ * )
35
+ */
36
+ insert(index, text) {
37
+ this.fix.push({
38
+ startIndex: index,
39
+ endIndex: index,
40
+ insert: text,
41
+ });
42
+ }
43
+ /**
44
+ * replace text between start (included) and end (excluded) with text.
45
+ *
46
+ * @example
47
+ * corrector.replace(
48
+ * node.position.start,
49
+ * node.position.end,
50
+ * 'ho ho ho',
51
+ * );
52
+ */
53
+ replace(start, end, text) {
54
+ this.fix.push({
55
+ startIndex: start,
56
+ endIndex: end,
57
+ insert: text,
58
+ });
59
+ }
60
+ /**
61
+ * remove text between start (included) and end (excluded)
62
+ *
63
+ * @example
64
+ * corrector.remove(
65
+ * node.position.start,
66
+ * node.position.end,
67
+ * )
68
+ */
69
+ remove(start, end) {
70
+ this.fix.push({
71
+ startIndex: start,
72
+ endIndex: end,
73
+ insert: '',
74
+ });
75
+ }
76
+ }
77
+ exports.GraphQLCorrector = GraphQLCorrector;
78
+ //# sourceMappingURL=graphql-corrector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-corrector.js","sourceRoot":"","sources":["../../../src/fixes/correctors/graphql-corrector.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;;;GAUG;AACH,MAAa,gBAAgB;IAG3B,YAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFjB,QAAG,GAAU,EAAgB,CAAC;IAEV,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAa,EAAE,IAAY;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAa,EAAE,GAAW;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;CACF;AA/DD,4CA+DC"}
@@ -0,0 +1,6 @@
1
+ import { Corrector, SourceCodeType } from '../../types';
2
+ import { JSONCorrector } from './json-corrector';
3
+ import { StringCorrector } from './string-corrector';
4
+ import { GraphQLCorrector } from './graphql-corrector';
5
+ export { JSONCorrector, StringCorrector, GraphQLCorrector };
6
+ export declare function createCorrector<S extends SourceCodeType>(sourceCodeType: S, source: string): Corrector<S>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLCorrector = exports.StringCorrector = exports.JSONCorrector = void 0;
4
+ exports.createCorrector = createCorrector;
5
+ const types_1 = require("../../types");
6
+ const json_corrector_1 = require("./json-corrector");
7
+ Object.defineProperty(exports, "JSONCorrector", { enumerable: true, get: function () { return json_corrector_1.JSONCorrector; } });
8
+ const string_corrector_1 = require("./string-corrector");
9
+ Object.defineProperty(exports, "StringCorrector", { enumerable: true, get: function () { return string_corrector_1.StringCorrector; } });
10
+ const graphql_corrector_1 = require("./graphql-corrector");
11
+ Object.defineProperty(exports, "GraphQLCorrector", { enumerable: true, get: function () { return graphql_corrector_1.GraphQLCorrector; } });
12
+ function createCorrector(sourceCodeType, source) {
13
+ switch (sourceCodeType) {
14
+ case types_1.SourceCodeType.JSON: {
15
+ return new json_corrector_1.JSONCorrector(source);
16
+ }
17
+ case types_1.SourceCodeType.LiquidHtml: {
18
+ return new string_corrector_1.StringCorrector(source);
19
+ }
20
+ case types_1.SourceCodeType.GraphQL:
21
+ return new graphql_corrector_1.GraphQLCorrector(source);
22
+ default: {
23
+ return assertNever(sourceCodeType);
24
+ }
25
+ }
26
+ }
27
+ function assertNever(x) {
28
+ throw new Error(`Case statement not exhausted: ${x}`);
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fixes/correctors/index.ts"],"names":[],"mappings":";;;AAOA,0CAiBC;AAxBD,uCAAwD;AACxD,qDAAiD;AAIxC,8FAJA,8BAAa,OAIA;AAHtB,yDAAqD;AAG7B,gGAHf,kCAAe,OAGe;AAFvC,2DAAuD;AAEd,iGAFhC,oCAAgB,OAEgC;AAEzD,SAAgB,eAAe,CAC7B,cAAiB,EACjB,MAAc;IAEd,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,sBAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,OAAO,IAAI,8BAAa,CAAC,MAAM,CAAqC,CAAC;QACvE,CAAC;QACD,KAAK,sBAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,kCAAe,CAAC,MAAM,CAAqC,CAAC;QACzE,CAAC;QACD,KAAK,sBAAc,CAAC,OAAO;YACzB,OAAO,IAAI,oCAAgB,CAAC,MAAM,CAAqC,CAAC;QAC1E,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAQ;IAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Fix } from '../../types';
2
+ import { BaseCorrector } from './base-corrector';
3
+ /**
4
+ * The JSONCorrector collects patches and then creates a Fix object
5
+ * that represents the application of all the collected patches on the
6
+ * source document.
7
+ *
8
+ * Fixes are assumed to not be overlapping.
9
+ */
10
+ export declare class JSONCorrector implements BaseCorrector {
11
+ source: string;
12
+ private readonly patches;
13
+ constructor(source: string);
14
+ /**
15
+ * corrector.fix is the data representation of all the changes to source.
16
+ */
17
+ get fix(): Fix;
18
+ /**
19
+ * Add value at dot delited JSON path
20
+ *
21
+ * @example
22
+ * corrector.add('missing.key', 'TO DO')
23
+ */
24
+ add(path: string, value: any): void;
25
+ /**
26
+ * Replace a value at dot delited JSON path.
27
+ *
28
+ * @example
29
+ * corrector.replace('missing.key', 'TO DO')
30
+ */
31
+ replace(path: string, value: any): void;
32
+ /**
33
+ * Remove key from JSON object
34
+ *
35
+ * @example
36
+ * corrector.remove('unneeded.key')
37
+ */
38
+ remove(path: string): void;
39
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSONCorrector = void 0;
4
+ const lodash_1 = require("lodash");
5
+ // This function mutates json. So use it in a reducer and consider it a
6
+ // fire and forget.
7
+ function applyPatch(json, operation) {
8
+ switch (operation.type) {
9
+ case 'add': {
10
+ return (0, lodash_1.set)(json, operation.path, operation.value);
11
+ }
12
+ case 'remove': {
13
+ (0, lodash_1.unset)(json, operation.path);
14
+ return json;
15
+ }
16
+ }
17
+ }
18
+ /**
19
+ * The JSONCorrector collects patches and then creates a Fix object
20
+ * that represents the application of all the collected patches on the
21
+ * source document.
22
+ *
23
+ * Fixes are assumed to not be overlapping.
24
+ */
25
+ class JSONCorrector {
26
+ constructor(source) {
27
+ this.source = source;
28
+ this.patches = [];
29
+ }
30
+ /**
31
+ * corrector.fix is the data representation of all the changes to source.
32
+ */
33
+ get fix() {
34
+ if (this.patches.length === 0)
35
+ return [];
36
+ const json = this.patches.reduce(applyPatch, JSON.parse(this.source));
37
+ return {
38
+ startIndex: 0,
39
+ endIndex: this.source.length,
40
+ insert: JSON.stringify(json, null, 2),
41
+ };
42
+ }
43
+ /**
44
+ * Add value at dot delited JSON path
45
+ *
46
+ * @example
47
+ * corrector.add('missing.key', 'TO DO')
48
+ */
49
+ add(path, value) {
50
+ this.patches.push({
51
+ type: 'add',
52
+ path,
53
+ value,
54
+ });
55
+ }
56
+ /**
57
+ * Replace a value at dot delited JSON path.
58
+ *
59
+ * @example
60
+ * corrector.replace('missing.key', 'TO DO')
61
+ */
62
+ replace(path, value) {
63
+ this.patches.push({
64
+ type: 'remove',
65
+ path,
66
+ }, {
67
+ type: 'add',
68
+ path,
69
+ value,
70
+ });
71
+ }
72
+ /**
73
+ * Remove key from JSON object
74
+ *
75
+ * @example
76
+ * corrector.remove('unneeded.key')
77
+ */
78
+ remove(path) {
79
+ this.patches.push({
80
+ type: 'remove',
81
+ path,
82
+ });
83
+ }
84
+ }
85
+ exports.JSONCorrector = JSONCorrector;
86
+ //# sourceMappingURL=json-corrector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-corrector.js","sourceRoot":"","sources":["../../../src/fixes/correctors/json-corrector.ts"],"names":[],"mappings":";;;AAAA,mCAAgE;AAiBhE,uEAAuE;AACvE,mBAAmB;AACnB,SAAS,UAAU,CAAC,IAAS,EAAE,SAAoB;IACjD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,IAAA,YAAS,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAA,cAAW,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAa,aAAa;IAGxB,YAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFhB,YAAO,GAAgB,EAAE,CAAC;IAEP,CAAC;IAErC;;OAEG;IACH,IAAW,GAAG;QACZ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtE,OAAO;YACL,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACtC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAY,EAAE,KAAU;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,KAAK;YACX,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAY,EAAE,KAAU;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CACf;YACE,IAAI,EAAE,QAAQ;YACd,IAAI;SACL,EACD;YACE,IAAI,EAAE,KAAK;YACX,IAAI;YACJ,KAAK;SACN,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF;AAlED,sCAkEC"}
@@ -0,0 +1,56 @@
1
+ import { Fix } from '../../types';
2
+ import { BaseCorrector } from './base-corrector';
3
+ /**
4
+ * The corrector is a helper that collects Fix objects. At the end we
5
+ * collect those fix objects and apply them on the source code to obtain a
6
+ * "fixed" file.
7
+ *
8
+ * We cannot fix on overlapping ranges.
9
+ *
10
+ * All fix are assumed to be on the file without modifications. The
11
+ * FixApplicator should take care of knowing where to apply fixes as the
12
+ * changes are applied.
13
+ */
14
+ export declare class StringCorrector implements BaseCorrector {
15
+ source: string;
16
+ readonly fix: Fix[];
17
+ constructor(source: string);
18
+ /**
19
+ * insert text before the given index
20
+ *
21
+ * @example
22
+ * corrector.insert(
23
+ * node.position.start,
24
+ * node.position.start,
25
+ * 'prefix node with this content'
26
+ * )
27
+ *
28
+ * corrector.insert(
29
+ * node.position.end,
30
+ * node.position.end,
31
+ * 'suffix node with this content (since position.end is excluded)'
32
+ * )
33
+ */
34
+ insert(index: number, text: string): void;
35
+ /**
36
+ * replace text between start (included) and end (excluded) with text.
37
+ *
38
+ * @example
39
+ * corrector.replace(
40
+ * node.position.start,
41
+ * node.position.end,
42
+ * 'ho ho ho',
43
+ * );
44
+ */
45
+ replace(start: number, end: number, text: string): void;
46
+ /**
47
+ * remove text between start (included) and end (excluded)
48
+ *
49
+ * @example
50
+ * corrector.remove(
51
+ * node.position.start,
52
+ * node.position.end,
53
+ * )
54
+ */
55
+ remove(start: number, end: number): void;
56
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringCorrector = void 0;
4
+ /**
5
+ * The corrector is a helper that collects Fix objects. At the end we
6
+ * collect those fix objects and apply them on the source code to obtain a
7
+ * "fixed" file.
8
+ *
9
+ * We cannot fix on overlapping ranges.
10
+ *
11
+ * All fix are assumed to be on the file without modifications. The
12
+ * FixApplicator should take care of knowing where to apply fixes as the
13
+ * changes are applied.
14
+ */
15
+ class StringCorrector {
16
+ constructor(source) {
17
+ this.source = source;
18
+ this.fix = [];
19
+ }
20
+ /**
21
+ * insert text before the given index
22
+ *
23
+ * @example
24
+ * corrector.insert(
25
+ * node.position.start,
26
+ * node.position.start,
27
+ * 'prefix node with this content'
28
+ * )
29
+ *
30
+ * corrector.insert(
31
+ * node.position.end,
32
+ * node.position.end,
33
+ * 'suffix node with this content (since position.end is excluded)'
34
+ * )
35
+ */
36
+ insert(index, text) {
37
+ this.fix.push({
38
+ startIndex: index,
39
+ endIndex: index,
40
+ insert: text,
41
+ });
42
+ }
43
+ /**
44
+ * replace text between start (included) and end (excluded) with text.
45
+ *
46
+ * @example
47
+ * corrector.replace(
48
+ * node.position.start,
49
+ * node.position.end,
50
+ * 'ho ho ho',
51
+ * );
52
+ */
53
+ replace(start, end, text) {
54
+ this.fix.push({
55
+ startIndex: start,
56
+ endIndex: end,
57
+ insert: text,
58
+ });
59
+ }
60
+ /**
61
+ * remove text between start (included) and end (excluded)
62
+ *
63
+ * @example
64
+ * corrector.remove(
65
+ * node.position.start,
66
+ * node.position.end,
67
+ * )
68
+ */
69
+ remove(start, end) {
70
+ this.fix.push({
71
+ startIndex: start,
72
+ endIndex: end,
73
+ insert: '',
74
+ });
75
+ }
76
+ }
77
+ exports.StringCorrector = StringCorrector;
78
+ //# sourceMappingURL=string-corrector.js.map