@platformos/platformos-check-common 0.0.7 → 0.0.9

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 (337) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +4 -4
  3. package/dist/AugmentedPlatformOSDocset.d.ts +11 -0
  4. package/dist/AugmentedPlatformOSDocset.js +81 -0
  5. package/dist/AugmentedPlatformOSDocset.js.map +1 -0
  6. package/dist/JSONValidator.js +1 -1
  7. package/dist/JSONValidator.js.map +1 -1
  8. package/dist/checks/deprecated-filter/index.js +4 -41
  9. package/dist/checks/deprecated-filter/index.js.map +1 -1
  10. package/dist/checks/deprecated-tag/index.js +21 -22
  11. package/dist/checks/deprecated-tag/index.js.map +1 -1
  12. package/dist/checks/duplicate-function-arguments/index.js +1 -1
  13. package/dist/checks/duplicate-function-arguments/index.js.map +1 -1
  14. package/dist/checks/duplicate-render-partial-arguments/index.js +1 -1
  15. package/dist/checks/duplicate-render-partial-arguments/index.js.map +1 -1
  16. package/dist/checks/graphql/index.js +1 -1
  17. package/dist/checks/graphql/index.js.map +1 -1
  18. package/dist/checks/graphql-variables/index.js +4 -0
  19. package/dist/checks/graphql-variables/index.js.map +1 -1
  20. package/dist/checks/img-width-and-height/index.js +1 -1
  21. package/dist/checks/img-width-and-height/index.js.map +1 -1
  22. package/dist/checks/index.d.ts +3 -3
  23. package/dist/checks/index.js +4 -79
  24. package/dist/checks/index.js.map +1 -1
  25. package/dist/checks/json-syntax-error/index.js +1 -1
  26. package/dist/checks/json-syntax-error/index.js.map +1 -1
  27. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js +1 -1
  28. package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js.map +1 -1
  29. package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.d.ts +19 -0
  30. package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.js +79 -0
  31. package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.js.map +1 -0
  32. package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.d.ts +3 -0
  33. package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.js +32 -0
  34. package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.js.map +1 -0
  35. package/dist/checks/liquid-html-syntax-error/index.js +23 -5
  36. package/dist/checks/liquid-html-syntax-error/index.js.map +1 -1
  37. package/dist/checks/matching-translations/index.d.ts +2 -2
  38. package/dist/checks/matching-translations/index.js +114 -90
  39. package/dist/checks/matching-translations/index.js.map +1 -1
  40. package/dist/checks/metadata-params/index.js +6 -3
  41. package/dist/checks/metadata-params/index.js.map +1 -1
  42. package/dist/checks/missing-asset/index.js +1 -1
  43. package/dist/checks/missing-asset/index.js.map +1 -1
  44. package/dist/checks/missing-partial/index.d.ts +6 -0
  45. package/dist/checks/missing-partial/index.js +70 -0
  46. package/dist/checks/missing-partial/index.js.map +1 -0
  47. package/dist/checks/orphaned-partial/index.js +4 -4
  48. package/dist/checks/orphaned-partial/index.js.map +1 -1
  49. package/dist/checks/parser-blocking-script/index.js +10 -36
  50. package/dist/checks/parser-blocking-script/index.js.map +1 -1
  51. package/dist/checks/parser-blocking-script/suggestions.d.ts +1 -2
  52. package/dist/checks/parser-blocking-script/suggestions.js +1 -11
  53. package/dist/checks/parser-blocking-script/suggestions.js.map +1 -1
  54. package/dist/checks/reserved-doc-param-names/index.js +6 -5
  55. package/dist/checks/reserved-doc-param-names/index.js.map +1 -1
  56. package/dist/checks/translation-key-exists/index.js +1 -1
  57. package/dist/checks/translation-key-exists/index.js.map +1 -1
  58. package/dist/checks/unclosed-html-element/index.js +5 -1
  59. package/dist/checks/unclosed-html-element/index.js.map +1 -1
  60. package/dist/checks/undefined-object/index.js +13 -31
  61. package/dist/checks/undefined-object/index.js.map +1 -1
  62. package/dist/checks/unique-doc-param-names/index.js +1 -1
  63. package/dist/checks/unique-doc-param-names/index.js.map +1 -1
  64. package/dist/checks/unknown-filter/index.js +3 -3
  65. package/dist/checks/unknown-filter/index.js.map +1 -1
  66. package/dist/checks/unknown-property/index.js +1 -1
  67. package/dist/checks/unknown-property/index.js.map +1 -1
  68. package/dist/checks/unrecognized-render-partial-arguments/index.js +2 -2
  69. package/dist/checks/unrecognized-render-partial-arguments/index.js.map +1 -1
  70. package/dist/checks/unused-assign/index.js +1 -1
  71. package/dist/checks/unused-assign/index.js.map +1 -1
  72. package/dist/checks/unused-doc-param/index.js +1 -1
  73. package/dist/checks/unused-doc-param/index.js.map +1 -1
  74. package/dist/checks/utils.js +1 -1
  75. package/dist/checks/utils.js.map +1 -1
  76. package/dist/checks/valid-content-for-arguments/index.js +1 -1
  77. package/dist/checks/valid-content-for-arguments/index.js.map +1 -1
  78. package/dist/checks/valid-doc-param-types/index.js +4 -4
  79. package/dist/checks/valid-doc-param-types/index.js.map +1 -1
  80. package/dist/checks/valid-html-translation/index.d.ts +2 -2
  81. package/dist/checks/valid-html-translation/index.js +4 -4
  82. package/dist/checks/valid-html-translation/index.js.map +1 -1
  83. package/dist/checks/valid-json/index.js +1 -1
  84. package/dist/checks/valid-json/index.js.map +1 -1
  85. package/dist/checks/valid-render-partial-argument-types/index.js +2 -2
  86. package/dist/checks/valid-render-partial-argument-types/index.js.map +1 -1
  87. package/dist/checks/variable-name/index.js +1 -1
  88. package/dist/checks/variable-name/index.js.map +1 -1
  89. package/dist/context-utils.d.ts +18 -7
  90. package/dist/context-utils.js +68 -109
  91. package/dist/context-utils.js.map +1 -1
  92. package/dist/disabled-checks/index.js +4 -2
  93. package/dist/disabled-checks/index.js.map +1 -1
  94. package/dist/doc-generator/DocBlockGenerator.d.ts +16 -0
  95. package/dist/doc-generator/DocBlockGenerator.js +464 -0
  96. package/dist/doc-generator/DocBlockGenerator.js.map +1 -0
  97. package/dist/doc-generator/index.d.ts +1 -0
  98. package/dist/doc-generator/index.js +6 -0
  99. package/dist/doc-generator/index.js.map +1 -0
  100. package/dist/find-root.d.ts +7 -10
  101. package/dist/find-root.js +10 -17
  102. package/dist/find-root.js.map +1 -1
  103. package/dist/fixes/autofix.d.ts +4 -4
  104. package/dist/fixes/autofix.js +2 -2
  105. package/dist/fixes/autofix.js.map +1 -1
  106. package/dist/fixes/correctors/index.js +4 -0
  107. package/dist/fixes/correctors/index.js.map +1 -1
  108. package/dist/index.d.ts +5 -5
  109. package/dist/index.js +50 -17
  110. package/dist/index.js.map +1 -1
  111. package/dist/jsonc/parse.d.ts +1 -1
  112. package/dist/jsonc/parse.js +1 -1
  113. package/dist/liquid-doc/arguments.d.ts +7 -8
  114. package/dist/liquid-doc/arguments.js +28 -29
  115. package/dist/liquid-doc/arguments.js.map +1 -1
  116. package/dist/liquid-doc/liquidDoc.d.ts +1 -1
  117. package/dist/liquid-doc/liquidDoc.js.map +1 -1
  118. package/dist/liquid-doc/utils.d.ts +3 -3
  119. package/dist/liquid-doc/utils.js +14 -3
  120. package/dist/liquid-doc/utils.js.map +1 -1
  121. package/dist/path.d.ts +1 -0
  122. package/dist/path.js +16 -1
  123. package/dist/path.js.map +1 -1
  124. package/{src/test/MockTheme.ts → dist/test/MockApp.d.ts} +2 -3
  125. package/dist/test/MockApp.js +16 -0
  126. package/dist/test/MockApp.js.map +1 -0
  127. package/dist/test/MockFileSystem.d.ts +3 -3
  128. package/dist/test/MockFileSystem.js +6 -6
  129. package/dist/test/MockFileSystem.js.map +1 -1
  130. package/dist/test/index.d.ts +1 -1
  131. package/dist/test/index.js +1 -1
  132. package/dist/test/index.js.map +1 -1
  133. package/dist/test/test-helper.d.ts +10 -9
  134. package/dist/test/test-helper.js +15 -106
  135. package/dist/test/test-helper.js.map +1 -1
  136. package/dist/to-schema.d.ts +1 -1
  137. package/dist/to-source-code.d.ts +3 -2
  138. package/dist/to-source-code.js +20 -0
  139. package/dist/to-source-code.js.map +1 -1
  140. package/dist/tsconfig.tsbuildinfo +1 -1
  141. package/dist/types/platformos-liquid-docs.d.ts +128 -0
  142. package/dist/types/platformos-liquid-docs.js +3 -0
  143. package/dist/types/platformos-liquid-docs.js.map +1 -0
  144. package/dist/types/schemas/index.d.ts +0 -2
  145. package/dist/types/schemas/index.js.map +1 -1
  146. package/dist/types.d.ts +26 -67
  147. package/dist/types.js +3 -5
  148. package/dist/types.js.map +1 -1
  149. package/dist/utils/block.js.map +1 -1
  150. package/dist/utils/index.d.ts +0 -1
  151. package/dist/utils/index.js +0 -1
  152. package/dist/utils/index.js.map +1 -1
  153. package/dist/yaml/parse.d.ts +5 -0
  154. package/dist/yaml/parse.js +94 -0
  155. package/dist/yaml/parse.js.map +1 -0
  156. package/package.json +4 -3
  157. package/src/{AugmentedThemeDocset.spec.ts → AugmentedPlatformOSDocset.spec.ts} +47 -34
  158. package/src/AugmentedPlatformOSDocset.ts +89 -0
  159. package/src/JSONValidator.ts +1 -1
  160. package/src/checks/deprecated-filter/index.spec.ts +76 -248
  161. package/src/checks/deprecated-filter/index.ts +5 -53
  162. package/src/checks/deprecated-tag/index.spec.ts +85 -34
  163. package/src/checks/deprecated-tag/index.ts +27 -22
  164. package/src/checks/duplicate-function-arguments/index.ts +1 -1
  165. package/src/checks/duplicate-render-partial-arguments/index.spec.ts +12 -12
  166. package/src/checks/duplicate-render-partial-arguments/index.ts +1 -1
  167. package/src/checks/graphql/index.ts +1 -1
  168. package/src/checks/graphql-variables/index.spec.ts +95 -0
  169. package/src/checks/graphql-variables/index.ts +4 -0
  170. package/src/checks/img-width-and-height/index.ts +2 -2
  171. package/src/checks/index.ts +11 -80
  172. package/src/checks/invalid-hash-assign-target/index.spec.ts +27 -27
  173. package/src/checks/json-syntax-error/index.ts +2 -2
  174. package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpression.spec.ts +0 -11
  175. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.spec.ts +1 -2
  176. package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.ts +2 -2
  177. package/src/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.spec.ts +259 -0
  178. package/src/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.ts +89 -0
  179. package/src/checks/liquid-html-syntax-error/checks/UnknownTag.spec.ts +293 -0
  180. package/src/checks/liquid-html-syntax-error/checks/UnknownTag.ts +43 -0
  181. package/src/checks/liquid-html-syntax-error/index.spec.ts +1 -6
  182. package/src/checks/liquid-html-syntax-error/index.ts +26 -5
  183. package/src/checks/matching-translations/index.spec.ts +187 -354
  184. package/src/checks/matching-translations/index.ts +117 -107
  185. package/src/checks/metadata-params/index.ts +6 -8
  186. package/src/checks/missing-asset/index.ts +1 -1
  187. package/src/checks/{missing-template → missing-partial}/index.spec.ts +6 -6
  188. package/src/checks/{missing-template → missing-partial}/index.ts +12 -26
  189. package/src/checks/orphaned-partial/index.ts +3 -3
  190. package/src/checks/parser-blocking-script/index.spec.ts +0 -118
  191. package/src/checks/parser-blocking-script/index.ts +3 -33
  192. package/src/checks/parser-blocking-script/suggestions.ts +1 -28
  193. package/src/checks/translation-key-exists/index.ts +1 -1
  194. package/src/checks/unclosed-html-element/index.ts +5 -1
  195. package/src/checks/undefined-object/index.spec.ts +32 -111
  196. package/src/checks/undefined-object/index.ts +15 -34
  197. package/src/checks/unique-doc-param-names/index.ts +1 -1
  198. package/src/checks/unknown-filter/index.spec.ts +2 -2
  199. package/src/checks/unknown-filter/index.ts +3 -3
  200. package/src/checks/unknown-property/index.ts +1 -1
  201. package/src/checks/unrecognized-render-partial-arguments/index.spec.ts +5 -5
  202. package/src/checks/unrecognized-render-partial-arguments/index.ts +2 -5
  203. package/src/checks/unused-assign/index.spec.ts +0 -30
  204. package/src/checks/unused-assign/index.ts +2 -2
  205. package/src/checks/unused-doc-param/index.ts +1 -1
  206. package/src/checks/utils.ts +1 -1
  207. package/src/checks/valid-doc-param-types/index.ts +4 -4
  208. package/src/checks/valid-html-translation/index.spec.ts +42 -32
  209. package/src/checks/valid-html-translation/index.ts +7 -7
  210. package/src/checks/valid-json/index.ts +2 -2
  211. package/src/checks/valid-render-partial-argument-types/index.spec.ts +13 -13
  212. package/src/checks/valid-render-partial-argument-types/index.ts +2 -5
  213. package/src/checks/variable-name/index.ts +1 -1
  214. package/src/context-utils.spec.ts +49 -77
  215. package/src/context-utils.ts +81 -129
  216. package/src/disabled-checks/index.spec.ts +26 -26
  217. package/src/disabled-checks/index.ts +2 -2
  218. package/src/disabled-checks/test-checks.ts +4 -4
  219. package/src/find-root.ts +12 -22
  220. package/src/fixes/autofix.spec.ts +2 -2
  221. package/src/fixes/autofix.ts +4 -4
  222. package/src/fixes/correctors/index.ts +4 -0
  223. package/src/ignore.spec.ts +4 -5
  224. package/src/index.ts +51 -21
  225. package/src/jsonc/parse.ts +1 -1
  226. package/src/liquid-doc/arguments.spec.ts +19 -45
  227. package/src/liquid-doc/arguments.ts +35 -42
  228. package/src/liquid-doc/liquidDoc.spec.ts +1 -1
  229. package/src/liquid-doc/liquidDoc.ts +1 -2
  230. package/src/liquid-doc/utils.ts +17 -8
  231. package/src/path.ts +16 -0
  232. package/src/test/MockApp.ts +17 -0
  233. package/src/test/MockFileSystem.spec.ts +10 -11
  234. package/src/test/MockFileSystem.ts +6 -6
  235. package/src/test/contain-offense.spec.ts +11 -3
  236. package/src/test/index.ts +1 -1
  237. package/src/test/test-helper.ts +43 -145
  238. package/src/to-source-code.ts +20 -1
  239. package/src/types/{theme-liquid-docs.ts → platformos-liquid-docs.ts} +8 -13
  240. package/src/types.ts +29 -92
  241. package/src/utils/index.ts +0 -1
  242. package/src/visitor.spec.ts +2 -2
  243. package/src/yaml/parse.ts +111 -0
  244. package/src/AugmentedThemeDocset.ts +0 -137
  245. package/src/checks/app-block-missing-schema/index.spec.ts +0 -121
  246. package/src/checks/app-block-missing-schema/index.ts +0 -46
  247. package/src/checks/app-block-valid-tags/index.spec.ts +0 -96
  248. package/src/checks/app-block-valid-tags/index.ts +0 -54
  249. package/src/checks/asset-preload/index.spec.ts +0 -78
  250. package/src/checks/asset-preload/index.ts +0 -65
  251. package/src/checks/asset-size-app-block-css/index.spec.ts +0 -88
  252. package/src/checks/asset-size-app-block-css/index.ts +0 -78
  253. package/src/checks/asset-size-app-block-javascript/index.spec.ts +0 -66
  254. package/src/checks/asset-size-app-block-javascript/index.ts +0 -78
  255. package/src/checks/asset-size-css/index.spec.ts +0 -166
  256. package/src/checks/asset-size-css/index.ts +0 -160
  257. package/src/checks/asset-size-javascript/index.spec.ts +0 -184
  258. package/src/checks/asset-size-javascript/index.ts +0 -144
  259. package/src/checks/block-id-usage/index.spec.ts +0 -76
  260. package/src/checks/block-id-usage/index.ts +0 -72
  261. package/src/checks/cdn-preconnect/index.spec.ts +0 -40
  262. package/src/checks/cdn-preconnect/index.ts +0 -43
  263. package/src/checks/content-for-header-modification/index.spec.ts +0 -65
  264. package/src/checks/content-for-header-modification/index.ts +0 -72
  265. package/src/checks/deprecate-bgsizes/index.spec.ts +0 -41
  266. package/src/checks/deprecate-bgsizes/index.ts +0 -49
  267. package/src/checks/deprecate-lazysizes/index.spec.ts +0 -26
  268. package/src/checks/deprecate-lazysizes/index.ts +0 -58
  269. package/src/checks/deprecated-filter/fixes.ts +0 -264
  270. package/src/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.ts +0 -1343
  271. package/src/checks/deprecated-fonts-on-sections-and-blocks/index.spec.ts +0 -613
  272. package/src/checks/deprecated-fonts-on-sections-and-blocks/index.ts +0 -284
  273. package/src/checks/deprecated-fonts-on-settings-schema/index.spec.ts +0 -102
  274. package/src/checks/deprecated-fonts-on-settings-schema/index.ts +0 -66
  275. package/src/checks/duplicate-content-for-arguments/index.spec.ts +0 -98
  276. package/src/checks/duplicate-content-for-arguments/index.ts +0 -43
  277. package/src/checks/empty-block-content/index.spec.ts +0 -117
  278. package/src/checks/empty-block-content/index.ts +0 -60
  279. package/src/checks/hardcoded-routes/index.spec.ts +0 -58
  280. package/src/checks/hardcoded-routes/index.ts +0 -100
  281. package/src/checks/json-missing-block/index.spec.ts +0 -435
  282. package/src/checks/json-missing-block/index.ts +0 -56
  283. package/src/checks/json-missing-block/missing-block-utils.ts +0 -147
  284. package/src/checks/liquid-free-settings/index.spec.ts +0 -180
  285. package/src/checks/liquid-free-settings/index.ts +0 -79
  286. package/src/checks/missing-content-for-arguments/index.spec.ts +0 -144
  287. package/src/checks/missing-content-for-arguments/index.ts +0 -46
  288. package/src/checks/pagination-size/index.spec.ts +0 -158
  289. package/src/checks/pagination-size/index.ts +0 -104
  290. package/src/checks/remote-asset/index.spec.ts +0 -280
  291. package/src/checks/remote-asset/index.ts +0 -238
  292. package/src/checks/reserved-doc-param-names/index.spec.ts +0 -62
  293. package/src/checks/reserved-doc-param-names/index.ts +0 -57
  294. package/src/checks/schema-presets-block-order/index.spec.ts +0 -344
  295. package/src/checks/schema-presets-block-order/index.ts +0 -154
  296. package/src/checks/schema-presets-static-blocks/index.spec.ts +0 -145
  297. package/src/checks/schema-presets-static-blocks/index.ts +0 -126
  298. package/src/checks/static-stylesheet-and-javascript-tags/index.spec.ts +0 -257
  299. package/src/checks/static-stylesheet-and-javascript-tags/index.ts +0 -48
  300. package/src/checks/unique-settings-id/index.spec.ts +0 -24
  301. package/src/checks/unique-settings-id/index.ts +0 -84
  302. package/src/checks/unique-settings-id/test-data.ts +0 -1191
  303. package/src/checks/unique-static-block-id/index.spec.ts +0 -55
  304. package/src/checks/unique-static-block-id/index.ts +0 -60
  305. package/src/checks/unrecognized-content-for-arguments/index.spec.ts +0 -145
  306. package/src/checks/unrecognized-content-for-arguments/index.ts +0 -55
  307. package/src/checks/valid-block-target/index.spec.ts +0 -1396
  308. package/src/checks/valid-block-target/index.ts +0 -142
  309. package/src/checks/valid-content-for-argument-types/index.spec.ts +0 -382
  310. package/src/checks/valid-content-for-argument-types/index.ts +0 -42
  311. package/src/checks/valid-content-for-arguments/index.spec.ts +0 -107
  312. package/src/checks/valid-content-for-arguments/index.ts +0 -98
  313. package/src/checks/valid-local-blocks/index.spec.ts +0 -286
  314. package/src/checks/valid-local-blocks/index.ts +0 -100
  315. package/src/checks/valid-local-blocks/valid-block-utils.ts +0 -97
  316. package/src/checks/valid-schema/index.spec.ts +0 -174
  317. package/src/checks/valid-schema/index.ts +0 -41
  318. package/src/checks/valid-schema-name/index.spec.ts +0 -112
  319. package/src/checks/valid-schema-name/index.ts +0 -75
  320. package/src/checks/valid-settings-key/index.spec.ts +0 -321
  321. package/src/checks/valid-settings-key/index.ts +0 -144
  322. package/src/checks/valid-static-block-type/index.spec.ts +0 -38
  323. package/src/checks/valid-static-block-type/index.ts +0 -58
  324. package/src/checks/valid-visible-if/index.spec.ts +0 -619
  325. package/src/checks/valid-visible-if/index.ts +0 -184
  326. package/src/checks/valid-visible-if/visible-if-utils.ts +0 -158
  327. package/src/tags/content-for.ts +0 -25
  328. package/src/to-schema.ts +0 -231
  329. package/src/types/schemas/index.ts +0 -5
  330. package/src/types/schemas/preset.ts +0 -52
  331. package/src/types/schemas/section.ts +0 -86
  332. package/src/types/schemas/setting.ts +0 -320
  333. package/src/types/schemas/template.ts +0 -34
  334. package/src/types/schemas/theme-block.ts +0 -34
  335. package/src/types/theme-schemas.ts +0 -80
  336. package/src/utils/block.ts +0 -300
  337. package/src/utils/markup.ts +0 -10
@@ -1,86 +0,0 @@
1
- import { Setting } from './setting';
2
- import { Preset } from './preset';
3
-
4
- export declare namespace Section {
5
- /** {% schema %} */
6
- export interface Schema {
7
- name?: string;
8
- tag?: 'article' | 'aside' | 'div' | 'footer' | 'header' | 'section';
9
- class?: string;
10
- limit?: number;
11
- settings?: Setting.Any[];
12
- max_blocks?: number;
13
- blocks?: Block[];
14
- presets?: Preset.Preset[];
15
- default?: Default;
16
- locales?: Record<string, Record<string, string>>;
17
- enabled_on?: SectionToggle;
18
- disabled_on?: SectionToggle;
19
- }
20
-
21
- // Block definitions
22
- export type Block = ThemeBlock | AppBlock | SpecificThemeBlock | LocalBlock;
23
-
24
- export type ThemeBlock = {
25
- type: '@theme';
26
- };
27
-
28
- export type AppBlock = {
29
- type: '@app';
30
- };
31
-
32
- export type SpecificThemeBlock = {
33
- type: string;
34
- limit?: number;
35
- template?: string;
36
- };
37
-
38
- export type LocalBlock = {
39
- type: string;
40
- name: string;
41
- settings?: Setting.Any[];
42
- };
43
-
44
- export type DefaultBlock = {
45
- type: string;
46
- settings?: Record<string, string | number | boolean | string[]>;
47
- };
48
-
49
- // Default section configuration (kind of like presets)
50
- export interface Default {
51
- settings?: Record<string, string | number | boolean | string[]>;
52
- blocks?: Array<DefaultBlock>;
53
- }
54
-
55
- // Section toggle interface
56
- export interface SectionToggle {
57
- templates?: TemplateType[];
58
- groups?: string[];
59
- }
60
-
61
- // Template types for section toggle
62
- export type TemplateType =
63
- | '*'
64
- | '404'
65
- | 'article'
66
- | 'blog'
67
- | 'captcha'
68
- | 'cart'
69
- | 'collection'
70
- | 'customers/account'
71
- | 'customers/activate_account'
72
- | 'customers/addresses'
73
- | 'customers/login'
74
- | 'customers/order'
75
- | 'customers/register'
76
- | 'customers/reset_password'
77
- | 'gift_card'
78
- | 'index'
79
- | 'list-collections'
80
- | 'metaobject'
81
- | 'page'
82
- | 'password'
83
- | 'policy'
84
- | 'product'
85
- | 'search';
86
- }
@@ -1,320 +0,0 @@
1
- export declare namespace Setting {
2
- /** Setting values are */
3
- export type Values = Record<string, string | number | boolean | string[]>;
4
-
5
- /** Union type of all setting types */
6
- export type Any = InputSetting | SideBarSetting;
7
-
8
- /** Settings used for display */
9
- export type SideBarSetting = Header | Paragraph;
10
-
11
- /** Settings with data */
12
- export type InputSetting =
13
- | Article
14
- | Blog
15
- | Collection
16
- | Page
17
- | Product
18
- | CollectionList
19
- | ProductList
20
- | MetaobjectList
21
- | Text
22
- | Textarea
23
- | Richtext
24
- | InlineRichtext
25
- | Html
26
- | Url
27
- | TextAlignment
28
- | Number
29
- | Range
30
- | Checkbox
31
- | Radio
32
- | Select
33
- | Color
34
- | ColorBackground
35
- | ColorScheme
36
- | ColorSchemeGroup
37
- | ImagePicker
38
- | Video
39
- | VideoUrl
40
- | FontPicker
41
- | LinkList
42
- | Liquid
43
- | Metaobject
44
- | StyleLayoutPanel
45
- | StyleSizePanel
46
- | StyleSpacingPanel;
47
-
48
- export enum Type {
49
- // Resource Settings
50
- Article = 'article',
51
- Blog = 'blog',
52
- Collection = 'collection',
53
- Page = 'page',
54
- Product = 'product',
55
-
56
- // Resource List Settings
57
- CollectionList = 'collection_list',
58
- ProductList = 'product_list',
59
- MetaobjectList = 'metaobject_list',
60
-
61
- // Text Settings
62
- Text = 'text',
63
- Textarea = 'textarea',
64
- Richtext = 'richtext',
65
- InlineRichtext = 'inline_richtext',
66
- Html = 'html',
67
- Url = 'url',
68
- TextAlignment = 'text_alignment',
69
-
70
- // Number Settings
71
- Number = 'number',
72
- Range = 'range',
73
-
74
- // Choice Settings
75
- Checkbox = 'checkbox',
76
- Radio = 'radio',
77
- Select = 'select',
78
-
79
- // Color Settings
80
- Color = 'color',
81
- ColorBackground = 'color_background',
82
- ColorScheme = 'color_scheme',
83
- ColorSchemeGroup = 'color_scheme_group',
84
-
85
- // Media Settings
86
- ImagePicker = 'image_picker',
87
- Video = 'video',
88
- VideoUrl = 'video_url',
89
-
90
- // Special Settings
91
- FontPicker = 'font_picker',
92
- LinkList = 'link_list',
93
- Liquid = 'liquid',
94
- Metaobject = 'metaobject',
95
-
96
- // Style Panel Settings
97
- StyleLayoutPanel = 'style.layout_panel',
98
- StyleSizePanel = 'style.size_panel',
99
- StyleSpacingPanel = 'style.spacing_panel',
100
-
101
- // Sidebar Settings
102
- Header = 'header',
103
- Paragraph = 'paragraph',
104
- }
105
-
106
- // Base Setting Interface
107
- export interface Base<T extends Type> {
108
- type: T;
109
- id: string;
110
- label?: string;
111
- info?: string;
112
- }
113
-
114
- // Sidebar Settings
115
- export interface Header extends Base<Type.Header> {
116
- content: string;
117
- }
118
-
119
- export interface Paragraph extends Base<Type.Paragraph> {
120
- content: string;
121
- }
122
-
123
- // Resource Settings
124
- export interface Resource<T extends Type> extends Base<T> {
125
- default?: string;
126
- }
127
-
128
- export interface Article extends Resource<Type.Article> {}
129
- export interface Blog extends Resource<Type.Blog> {}
130
- export interface Collection extends Resource<Type.Collection> {}
131
- export interface Page extends Resource<Type.Page> {}
132
- export interface Product extends Resource<Type.Product> {}
133
-
134
- // Resource List Settings
135
- export interface ResourceList<T extends Type> extends Base<T> {
136
- limit?: number;
137
- }
138
-
139
- export interface CollectionList extends ResourceList<Type.CollectionList> {}
140
- export interface ProductList extends ResourceList<Type.ProductList> {}
141
- export interface MetaobjectList extends ResourceList<Type.MetaobjectList> {
142
- metaobject_type: string;
143
- }
144
-
145
- // Text Settings
146
- export interface TextBase<T extends Type> extends Base<T> {
147
- default?: string;
148
- placeholder?: string;
149
- }
150
-
151
- export interface Text extends TextBase<Type.Text> {}
152
- export interface Textarea extends TextBase<Type.Textarea> {}
153
- export interface Richtext extends TextBase<Type.Richtext> {}
154
- export interface InlineRichtext extends TextBase<Type.InlineRichtext> {}
155
- export interface Html extends TextBase<Type.Html> {}
156
- export interface Url extends TextBase<Type.Url> {}
157
-
158
- export interface TextAlignment extends Base<Type.TextAlignment> {
159
- default?: 'left' | 'center' | 'right' | 'justify';
160
- }
161
-
162
- // Number Settings
163
- export interface NumberBase<T extends Type> extends Base<T> {
164
- default?: number;
165
- min?: number;
166
- max?: number;
167
- step?: number;
168
- unit?: string;
169
- }
170
-
171
- export interface Number extends NumberBase<Type.Number> {}
172
- export interface Range extends NumberBase<Type.Range> {}
173
-
174
- // Choice Settings
175
- export interface Checkbox extends Base<Type.Checkbox> {
176
- default?: boolean;
177
- }
178
-
179
- export interface ChoiceOption {
180
- value: string;
181
- label: string;
182
- }
183
-
184
- export interface ChoiceBase<T extends Type> extends Base<T> {
185
- options: ChoiceOption[];
186
- default?: string;
187
- }
188
-
189
- export interface Radio extends ChoiceBase<Type.Radio> {}
190
- export interface Select extends ChoiceBase<Type.Select> {}
191
-
192
- // Color Settings
193
- export interface ColorBase<T extends Type> extends Base<T> {
194
- default?: string;
195
- }
196
-
197
- export interface Color extends ColorBase<Type.Color> {}
198
- export interface ColorBackground extends ColorBase<Type.ColorBackground> {}
199
- export interface ColorScheme extends Base<Type.ColorScheme> {
200
- default?: string;
201
- }
202
- export interface ColorSchemeGroup extends Base<Type.ColorSchemeGroup> {}
203
-
204
- // Media Settings
205
- export interface ImagePicker extends Base<Type.ImagePicker> {
206
- default?: string;
207
- }
208
-
209
- export interface Video extends Base<Type.Video> {
210
- default?: string;
211
- }
212
-
213
- export interface VideoUrl extends Base<Type.VideoUrl> {
214
- default?: string;
215
- accept: Array<'youtube' | 'vimeo'>;
216
- }
217
-
218
- // Special Settings
219
- export interface FontPicker extends Base<Type.FontPicker> {
220
- default?: string;
221
- }
222
-
223
- export interface LinkList extends Base<Type.LinkList> {
224
- default?: string;
225
- }
226
-
227
- export interface Liquid extends Base<Type.Liquid> {
228
- default?: string;
229
- }
230
-
231
- export interface Metaobject extends Base<Type.Metaobject> {
232
- metaobject_type: string;
233
- }
234
-
235
- // Style Panel Settings
236
- export interface StyleLayoutPanel extends Base<Type.StyleLayoutPanel> {
237
- default?: {
238
- 'flex-direction'?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
239
- 'flex-wrap'?: 'nowrap' | 'wrap' | 'wrap-reverse';
240
- 'justify-content'?:
241
- | 'flex-start'
242
- | 'flex-end'
243
- | 'start'
244
- | 'end'
245
- | 'left'
246
- | 'right'
247
- | 'center'
248
- | 'space-between'
249
- | 'space-around'
250
- | 'space-evenly';
251
- 'align-items'?:
252
- | 'stretch'
253
- | 'flex-start'
254
- | 'start'
255
- | 'self-start'
256
- | 'flex-end'
257
- | 'end'
258
- | 'self-end'
259
- | 'center'
260
- | 'baseline';
261
- 'align-content'?:
262
- | 'stretch'
263
- | 'flex-start'
264
- | 'start'
265
- | 'flex-end'
266
- | 'end'
267
- | 'center'
268
- | 'space-between'
269
- | 'space-around'
270
- | 'space-evenly';
271
- gap?: string;
272
- 'row-gap'?: string;
273
- 'column-gap'?: string;
274
- '@media (--mobile)'?: Partial<StyleLayoutPanel['default']>;
275
- };
276
- }
277
-
278
- export interface StyleSizePanel extends Base<Type.StyleSizePanel> {
279
- default?: {
280
- width?: string;
281
- 'min-width'?: string;
282
- 'max-width'?: string;
283
- height?: string;
284
- 'min-height'?: string;
285
- 'max-height'?: string;
286
- 'flex-grow'?: string;
287
- 'flex-shrink'?: string;
288
- 'flex-basis'?: string;
289
- '@media (--mobile)'?: Partial<StyleSizePanel['default']>;
290
- };
291
- }
292
-
293
- export interface StyleSpacingPanel extends Base<Type.StyleSpacingPanel> {
294
- default?: {
295
- padding?: string;
296
- 'padding-top'?: string;
297
- 'padding-right'?: string;
298
- 'padding-bottom'?: string;
299
- 'padding-left'?: string;
300
- 'padding-block'?: string;
301
- 'padding-block-start'?: string;
302
- 'padding-block-end'?: string;
303
- 'padding-inline'?: string;
304
- 'padding-inline-start'?: string;
305
- 'padding-inline-end'?: string;
306
- margin?: string;
307
- 'margin-top'?: string;
308
- 'margin-right'?: string;
309
- 'margin-bottom'?: string;
310
- 'margin-left'?: string;
311
- 'margin-block'?: string;
312
- 'margin-block-start'?: string;
313
- 'margin-block-end'?: string;
314
- 'margin-inline'?: string;
315
- 'margin-inline-start'?: string;
316
- 'margin-inline-end'?: string;
317
- '@media (--mobile)'?: Partial<StyleSpacingPanel['default']>;
318
- };
319
- }
320
- }
@@ -1,34 +0,0 @@
1
- import { Setting } from './setting';
2
-
3
- export namespace Template {
4
- export interface Template {
5
- layout?: string | false;
6
- wrapper?: string;
7
- sections: Record<string, Template.Section>;
8
- order: string[];
9
- }
10
-
11
- export interface Section {
12
- type: string;
13
- settings?: Setting.Values;
14
- disabled?: boolean;
15
- blocks?: Record<string, Template.Block>;
16
- block_order?: string[];
17
- }
18
-
19
- export interface Block {
20
- type: string;
21
- settings?: Setting.Values;
22
- disabled?: boolean;
23
- blocks?: Record<string, Template.Block>;
24
- block_order?: string[];
25
- static?: boolean;
26
- }
27
-
28
- export interface SectionGroup {
29
- type: string;
30
- name: string;
31
- sections: Record<string, Template.Section>;
32
- order: string[];
33
- }
34
- }
@@ -1,34 +0,0 @@
1
- import { Setting } from './setting';
2
- import { Preset } from './preset';
3
-
4
- export declare namespace ThemeBlock {
5
- /** Typed content of {% schema %} after passing validation */
6
- export interface Schema {
7
- name?: string;
8
- settings?: Setting.Any[];
9
- blocks?: Block[];
10
- presets?: Preset.Preset[];
11
- class?: string;
12
- tag?: string | null;
13
- }
14
-
15
- export type ThemeBlock = {
16
- type: '@theme';
17
- };
18
-
19
- export type AppBlock = {
20
- type: '@app';
21
- };
22
-
23
- export type SpecificThemeBlock = {
24
- /** blocks/{type}.liquid */
25
- type: string;
26
- };
27
-
28
- // prettier-ignore
29
- export type Block = (
30
- | ThemeBlock
31
- | AppBlock
32
- | SpecificThemeBlock
33
- );
34
- }
@@ -1,80 +0,0 @@
1
- import { SourceCode, SourceCodeType } from '../types';
2
- import { Section, ThemeBlock } from './schemas';
3
-
4
- export * from './schemas';
5
-
6
- export enum ThemeSchemaType {
7
- AppBlock = 'app-block',
8
- Block = 'block',
9
- Section = 'section',
10
- }
11
-
12
- /** {% content_for 'block', type: type, id: id %}*/
13
- export type StaticBlockDef = { type: string; id: string };
14
-
15
- /**
16
- * A ThemeSchema represents the `{% schema %}` contents of a block or section file.
17
- *
18
- * `ast` and `parsed` will be instances of `Error` if there was an error parsing
19
- * the Liquid file or the JSON.
20
- *
21
- * There is no guarantee that the `ast` or `parsed` fields are backend-valid.
22
- */
23
- export interface ThemeSchema<T extends ThemeSchemaType> {
24
- /** section or block */
25
- type: T;
26
-
27
- /** `section/${name}.liquid` */
28
- name: string;
29
-
30
- /** Parsed as an AST (with position information) or an Error */
31
- ast: SourceCode<SourceCodeType.JSON>['ast'] | Error;
32
-
33
- /** Parsed as a JavaScript object or an Error */
34
- parsed: any | Error;
35
-
36
- /** 0-based index of the start of JSON object in the document */
37
- offset: number;
38
-
39
- /** schema node value */
40
- value: string;
41
- }
42
-
43
- /** See {@link ThemeSchema} */
44
- export interface ThemeBlockSchema extends ThemeSchema<ThemeSchemaType.Block> {
45
- /**
46
- * @example
47
- * const schema = await context.getBlockSchema('product');
48
- * const validSchema = schema?.validSchema;
49
- * if (!validSchema || validSchema instanceof Error) return;
50
- *
51
- * for (const block of validSchema.blocks ?? []) {
52
- * // do something
53
- * }
54
- */
55
- validSchema: ThemeBlock.Schema | Error;
56
-
57
- /** type/id pairs found in the body of the file */
58
- staticBlockDefs: StaticBlockDef[];
59
- }
60
-
61
- /** See {@link ThemeSchema} */
62
- export interface SectionSchema extends ThemeSchema<ThemeSchemaType.Section> {
63
- /**
64
- * @example
65
- * const schema = await context.getSectionSchema('product');
66
- * const validSchema = schema?.validSchema;
67
- * if (!validSchema || validSchema instanceof Error) return;
68
- *
69
- * for (const block of validSchema.blocks ?? []) {
70
- * // do something
71
- * }
72
- */
73
- validSchema: Section.Schema | Error;
74
-
75
- /** type/id pairs found in the body of the file */
76
- staticBlockDefs: StaticBlockDef[];
77
- }
78
-
79
- /** TODO setup validSchema like the other ones. */
80
- export interface AppBlockSchema extends ThemeSchema<ThemeSchemaType.AppBlock> {}