@kensio/colophon 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -798
- package/dist/background/gradient.d.ts +12 -0
- package/dist/background/gradient.d.ts.map +1 -0
- package/dist/background/gradient.js +21 -0
- package/dist/background/gradient.js.map +1 -0
- package/dist/background/image.d.ts +14 -0
- package/dist/background/image.d.ts.map +1 -0
- package/dist/background/image.js +36 -0
- package/dist/background/image.js.map +1 -0
- package/dist/background/index.d.ts +13 -0
- package/dist/background/index.d.ts.map +1 -0
- package/dist/background/index.js +27 -0
- package/dist/background/index.js.map +1 -0
- package/dist/background/mesh.d.ts +12 -0
- package/dist/background/mesh.d.ts.map +1 -0
- package/dist/background/mesh.js +43 -0
- package/dist/background/mesh.js.map +1 -0
- package/dist/background.d.ts +7 -2
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +44 -1
- package/dist/background.js.map +1 -1
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/config.d.ts +1 -1
- package/dist/cli/config.js +1 -1
- package/dist/config/defaults.d.ts +8 -7
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +8 -8
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +14 -5
- package/dist/config/index.js.map +1 -1
- package/dist/config/resolve.d.ts +7 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +16 -0
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/size.d.ts +7 -1
- package/dist/config/size.d.ts.map +1 -1
- package/dist/config/size.js +22 -9
- package/dist/config/size.js.map +1 -1
- package/dist/content/props.d.ts +2 -2
- package/dist/content/props.js +2 -2
- package/dist/content/slug.d.ts +5 -5
- package/dist/content/slug.js +6 -6
- package/dist/content/slug.js.map +1 -1
- package/dist/content/walk.d.ts +1 -1
- package/dist/content/walk.js +1 -1
- package/dist/fonts/index.d.ts +3 -2
- package/dist/fonts/index.d.ts.map +1 -1
- package/dist/fonts/index.js +3 -2
- package/dist/fonts/index.js.map +1 -1
- package/dist/fonts/resolve.js +1 -1
- package/dist/generate/extra.js +4 -4
- package/dist/generate/extra.js.map +1 -1
- package/dist/generate/options.d.ts +1 -1
- package/dist/generate/outputs.d.ts +4 -4
- package/dist/generate/outputs.js +4 -4
- package/dist/highlight/language.d.ts +2 -3
- package/dist/highlight/language.d.ts.map +1 -1
- package/dist/highlight/language.js +3 -4
- package/dist/highlight/language.js.map +1 -1
- package/dist/highlight/normalise.d.ts +2 -2
- package/dist/highlight/normalise.js +2 -2
- package/dist/image/index.d.ts +18 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +42 -0
- package/dist/image/index.js.map +1 -0
- package/dist/image/jpeg.d.ts +10 -0
- package/dist/image/jpeg.d.ts.map +1 -0
- package/dist/image/jpeg.js +57 -0
- package/dist/image/jpeg.js.map +1 -0
- package/dist/image/load.d.ts +4 -0
- package/dist/image/load.d.ts.map +1 -0
- package/dist/image/load.js +60 -0
- package/dist/image/load.js.map +1 -0
- package/dist/image/media.d.ts +10 -0
- package/dist/image/media.d.ts.map +1 -0
- package/dist/image/media.js +37 -0
- package/dist/image/media.js.map +1 -0
- package/dist/image/resolve.d.ts +13 -0
- package/dist/image/resolve.d.ts.map +1 -0
- package/dist/image/resolve.js +38 -0
- package/dist/image/resolve.js.map +1 -0
- package/dist/image/size.d.ts +22 -0
- package/dist/image/size.d.ts.map +1 -0
- package/dist/image/size.js +60 -0
- package/dist/image/size.js.map +1 -0
- package/dist/image/svg.d.ts +12 -0
- package/dist/image/svg.d.ts.map +1 -0
- package/dist/image/svg.js +61 -0
- package/dist/image/svg.js.map +1 -0
- package/dist/image/uri.d.ts +9 -0
- package/dist/image/uri.d.ts.map +1 -0
- package/dist/image/uri.js +22 -0
- package/dist/image/uri.js.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/layout/block.d.ts +37 -0
- package/dist/layout/block.d.ts.map +1 -0
- package/dist/layout/block.js +26 -0
- package/dist/layout/block.js.map +1 -0
- package/dist/layout/box.d.ts +20 -0
- package/dist/layout/box.d.ts.map +1 -0
- package/dist/layout/box.js +61 -0
- package/dist/layout/box.js.map +1 -0
- package/dist/layout/distribute.d.ts +15 -0
- package/dist/layout/distribute.d.ts.map +1 -0
- package/dist/layout/distribute.js +30 -0
- package/dist/layout/distribute.js.map +1 -0
- package/dist/layout/image.d.ts +42 -0
- package/dist/layout/image.d.ts.map +1 -0
- package/dist/layout/image.js +34 -0
- package/dist/layout/image.js.map +1 -0
- package/dist/layout/index.d.ts +40 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +30 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/lines.d.ts +45 -0
- package/dist/layout/lines.d.ts.map +1 -0
- package/dist/layout/lines.js +71 -0
- package/dist/layout/lines.js.map +1 -0
- package/dist/layout/measure.d.ts +11 -0
- package/dist/layout/measure.d.ts.map +1 -0
- package/dist/layout/measure.js +11 -0
- package/dist/layout/measure.js.map +1 -0
- package/dist/layout/panel.d.ts +20 -0
- package/dist/layout/panel.d.ts.map +1 -0
- package/dist/layout/panel.js +22 -0
- package/dist/layout/panel.js.map +1 -0
- package/dist/layout/row.d.ts +15 -0
- package/dist/layout/row.d.ts.map +1 -0
- package/dist/layout/row.js +20 -0
- package/dist/layout/row.js.map +1 -0
- package/dist/layout/scrim.d.ts +23 -0
- package/dist/layout/scrim.d.ts.map +1 -0
- package/dist/layout/scrim.js +38 -0
- package/dist/layout/scrim.js.map +1 -0
- package/dist/layout/stack.d.ts +14 -0
- package/dist/layout/stack.d.ts.map +1 -0
- package/dist/layout/stack.js +19 -0
- package/dist/layout/stack.js.map +1 -0
- package/dist/layout/types.d.ts +49 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +2 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/manifest/build.d.ts +1 -1
- package/dist/manifest/build.js +1 -1
- package/dist/manifest/index.d.ts +1 -1
- package/dist/manifest/index.js +1 -1
- package/dist/manifest/order.d.ts +1 -1
- package/dist/manifest/order.js +1 -1
- package/dist/manifest/page.d.ts +2 -2
- package/dist/manifest/page.js +3 -3
- package/dist/measure/estimate.d.ts +10 -0
- package/dist/measure/estimate.d.ts.map +1 -0
- package/dist/measure/estimate.js +58 -0
- package/dist/measure/estimate.js.map +1 -0
- package/dist/measure/faces.d.ts +15 -0
- package/dist/measure/faces.d.ts.map +1 -0
- package/dist/measure/faces.js +70 -0
- package/dist/measure/faces.js.map +1 -0
- package/dist/measure/index.d.ts +16 -0
- package/dist/measure/index.d.ts.map +1 -0
- package/dist/measure/index.js +0 -0
- package/dist/measure/index.js.map +1 -0
- package/dist/measure/runs.d.ts +17 -0
- package/dist/measure/runs.d.ts.map +1 -0
- package/dist/measure/runs.js +39 -0
- package/dist/measure/runs.js.map +1 -0
- package/dist/measure/select.d.ts +13 -0
- package/dist/measure/select.d.ts.map +1 -0
- package/dist/measure/select.js +47 -0
- package/dist/measure/select.js.map +1 -0
- package/dist/meta/tags.d.ts +6 -6
- package/dist/meta/tags.js +6 -6
- package/dist/meta/url.d.ts +4 -4
- package/dist/meta/url.js +4 -4
- package/dist/placement/check.d.ts +1 -1
- package/dist/placement/check.js +1 -1
- package/dist/placement/index.js +1 -1
- package/dist/placement/relative.d.ts +3 -3
- package/dist/placement/relative.js +3 -3
- package/dist/pool.d.ts +2 -2
- package/dist/pool.js +3 -3
- package/dist/pool.js.map +1 -1
- package/dist/props.d.ts +7 -0
- package/dist/props.d.ts.map +1 -0
- package/dist/props.js +17 -0
- package/dist/props.js.map +1 -0
- package/dist/render/svg.d.ts +4 -2
- package/dist/render/svg.d.ts.map +1 -1
- package/dist/render/svg.js +28 -6
- package/dist/render/svg.js.map +1 -1
- package/dist/stamp/config-digest.d.ts.map +1 -1
- package/dist/stamp/config-digest.js +21 -1
- package/dist/stamp/config-digest.js.map +1 -1
- package/dist/stamp/index.js +2 -2
- package/dist/stamp/index.js.map +1 -1
- package/dist/stamp/read.d.ts +1 -1
- package/dist/stamp/read.js +4 -4
- package/dist/templates/attribution.d.ts +17 -0
- package/dist/templates/attribution.d.ts.map +1 -0
- package/dist/templates/attribution.js +39 -0
- package/dist/templates/attribution.js.map +1 -0
- package/dist/templates/banner/badge-props.d.ts +16 -0
- package/dist/templates/banner/badge-props.d.ts.map +1 -0
- package/dist/templates/banner/badge-props.js +58 -0
- package/dist/templates/banner/badge-props.js.map +1 -0
- package/dist/templates/banner/badge.d.ts.map +1 -1
- package/dist/templates/banner/badge.js +3 -6
- package/dist/templates/banner/badge.js.map +1 -1
- package/dist/templates/banner/index.d.ts +3 -0
- package/dist/templates/banner/index.d.ts.map +1 -1
- package/dist/templates/banner/index.js +41 -37
- package/dist/templates/banner/index.js.map +1 -1
- package/dist/templates/banner/lines.d.ts +7 -12
- package/dist/templates/banner/lines.d.ts.map +1 -1
- package/dist/templates/banner/lines.js +23 -34
- package/dist/templates/banner/lines.js.map +1 -1
- package/dist/templates/banner/version.d.ts +9 -0
- package/dist/templates/banner/version.d.ts.map +1 -0
- package/dist/templates/banner/version.js +21 -0
- package/dist/templates/banner/version.js.map +1 -0
- package/dist/templates/card/index.d.ts +4 -1
- package/dist/templates/card/index.d.ts.map +1 -1
- package/dist/templates/card/index.js +37 -25
- package/dist/templates/card/index.js.map +1 -1
- package/dist/templates/card/lines.d.ts +17 -13
- package/dist/templates/card/lines.d.ts.map +1 -1
- package/dist/templates/card/lines.js +24 -20
- package/dist/templates/card/lines.js.map +1 -1
- package/dist/templates/code/chrome.d.ts +7 -3
- package/dist/templates/code/chrome.d.ts.map +1 -1
- package/dist/templates/code/chrome.js +12 -11
- package/dist/templates/code/chrome.js.map +1 -1
- package/dist/templates/code/clip.d.ts +1 -1
- package/dist/templates/code/clip.js +1 -1
- package/dist/templates/code/fit.d.ts +2 -2
- package/dist/templates/code/fit.d.ts.map +1 -1
- package/dist/templates/code/fit.js +4 -4
- package/dist/templates/code/fit.js.map +1 -1
- package/dist/templates/code/index.d.ts.map +1 -1
- package/dist/templates/code/index.js +7 -6
- package/dist/templates/code/index.js.map +1 -1
- package/dist/templates/code/layout.d.ts +1 -1
- package/dist/templates/code/layout.d.ts.map +1 -1
- package/dist/templates/code/layout.js +6 -6
- package/dist/templates/code/layout.js.map +1 -1
- package/dist/templates/code/panel.d.ts +13 -0
- package/dist/templates/code/panel.d.ts.map +1 -1
- package/dist/templates/code/panel.js +34 -2
- package/dist/templates/code/panel.js.map +1 -1
- package/dist/templates/code/plate.d.ts +3 -1
- package/dist/templates/code/plate.d.ts.map +1 -1
- package/dist/templates/code/plate.js +11 -9
- package/dist/templates/code/plate.js.map +1 -1
- package/dist/templates/code/spans.js +1 -1
- package/dist/templates/code/spans.js.map +1 -1
- package/dist/templates/code/width.d.ts +10 -0
- package/dist/templates/code/width.d.ts.map +1 -0
- package/dist/templates/code/width.js +26 -0
- package/dist/templates/code/width.js.map +1 -0
- package/dist/templates/footer.d.ts +8 -0
- package/dist/templates/footer.d.ts.map +1 -1
- package/dist/templates/footer.js +11 -1
- package/dist/templates/footer.js.map +1 -1
- package/dist/templates/index.d.ts +1 -1
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +1 -1
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/logo.d.ts +15 -0
- package/dist/templates/logo.d.ts.map +1 -0
- package/dist/templates/logo.js +30 -0
- package/dist/templates/logo.js.map +1 -0
- package/dist/templates/measure.d.ts +11 -0
- package/dist/templates/measure.d.ts.map +1 -0
- package/dist/templates/measure.js +11 -0
- package/dist/templates/measure.js.map +1 -0
- package/dist/templates/props.d.ts +2 -2
- package/dist/templates/props.js +2 -2
- package/dist/templates/text.d.ts +37 -0
- package/dist/templates/text.d.ts.map +1 -0
- package/dist/templates/text.js +26 -0
- package/dist/templates/text.js.map +1 -0
- package/dist/text/break.d.ts +11 -0
- package/dist/text/break.d.ts.map +1 -0
- package/dist/text/break.js +30 -0
- package/dist/text/break.js.map +1 -0
- package/dist/text/fit.d.ts +30 -0
- package/dist/text/fit.d.ts.map +1 -0
- package/dist/text/fit.js +29 -0
- package/dist/text/fit.js.map +1 -0
- package/dist/text/index.d.ts +5 -3
- package/dist/text/index.d.ts.map +1 -1
- package/dist/text/index.js +3 -2
- package/dist/text/index.js.map +1 -1
- package/dist/text/wrap.d.ts +17 -7
- package/dist/text/wrap.d.ts.map +1 -1
- package/dist/text/wrap.js +25 -17
- package/dist/text/wrap.js.map +1 -1
- package/dist/texture/grain.d.ts +17 -0
- package/dist/texture/grain.d.ts.map +1 -0
- package/dist/texture/grain.js +29 -0
- package/dist/texture/grain.js.map +1 -0
- package/dist/texture/index.d.ts +11 -0
- package/dist/texture/index.d.ts.map +1 -0
- package/dist/texture/index.js +20 -0
- package/dist/texture/index.js.map +1 -0
- package/dist/texture/pattern.d.ts +17 -0
- package/dist/texture/pattern.d.ts.map +1 -0
- package/dist/texture/pattern.js +45 -0
- package/dist/texture/pattern.js.map +1 -0
- package/dist/texture/resolve.d.ts +16 -0
- package/dist/texture/resolve.d.ts.map +1 -0
- package/dist/texture/resolve.js +20 -0
- package/dist/texture/resolve.js.map +1 -0
- package/dist/theme/index.d.ts +27 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +41 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/presets.d.ts +38 -0
- package/dist/theme/presets.d.ts.map +1 -0
- package/dist/theme/presets.js +150 -0
- package/dist/theme/presets.js.map +1 -0
- package/dist/types.d.ts +281 -46
- package/dist/types.d.ts.map +1 -1
- package/dist/validate/background.d.ts +12 -0
- package/dist/validate/background.d.ts.map +1 -0
- package/dist/validate/background.js +53 -0
- package/dist/validate/background.js.map +1 -0
- package/dist/validate/collect.d.ts +9 -0
- package/dist/validate/collect.d.ts.map +1 -0
- package/dist/validate/collect.js +34 -0
- package/dist/validate/collect.js.map +1 -0
- package/dist/validate/index.d.ts +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +3 -20
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/keys.d.ts +35 -2
- package/dist/validate/keys.d.ts.map +1 -1
- package/dist/validate/keys.js +92 -3
- package/dist/validate/keys.js.map +1 -1
- package/dist/validate/overrides.d.ts.map +1 -1
- package/dist/validate/overrides.js +5 -1
- package/dist/validate/overrides.js.map +1 -1
- package/dist/validate/suggest.d.ts.map +1 -1
- package/dist/validate/suggest.js +21 -3
- package/dist/validate/suggest.js.map +1 -1
- package/dist/validate/texture.d.ts +11 -0
- package/dist/validate/texture.d.ts.map +1 -0
- package/dist/validate/texture.js +34 -0
- package/dist/validate/texture.js.map +1 -0
- package/dist/validate/values.d.ts +10 -10
- package/dist/validate/values.d.ts.map +1 -1
- package/dist/validate/values.js +21 -31
- package/dist/validate/values.js.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { checkBackground } from "./background.js";
|
|
2
|
+
import { checkEach, checkKeys } from "./check.js";
|
|
3
|
+
import { badgeKeys, codeKeys, colorKeys, configKeys, contentKeys, fontKeys, imageSourceKeys, } from "./keys.js";
|
|
4
|
+
import { checkExtras, checkSizes } from "./overrides.js";
|
|
5
|
+
import { checkPlacement } from "./placement.js";
|
|
6
|
+
import { checkTexture } from "./texture.js";
|
|
7
|
+
import { checkSlugStrategy, checkTheme } from "./values.js";
|
|
8
|
+
/**
|
|
9
|
+
* Everything wrong with a config, in the order the config declares it.
|
|
10
|
+
*
|
|
11
|
+
* Collecting rather than throwing at the first problem is the point: a config
|
|
12
|
+
* with three typos in it should take one run to fix rather than three.
|
|
13
|
+
*/
|
|
14
|
+
export function collectProblems(config) {
|
|
15
|
+
// The types say what should be here; validation exists for when it is not.
|
|
16
|
+
const raw = config;
|
|
17
|
+
const problems = [];
|
|
18
|
+
checkKeys(config, "", configKeys, problems);
|
|
19
|
+
checkKeys(raw.colors, "colors", colorKeys, problems);
|
|
20
|
+
checkKeys(raw.badge, "badge", badgeKeys, problems);
|
|
21
|
+
checkKeys(raw.logo, "logo", imageSourceKeys, problems);
|
|
22
|
+
checkKeys(raw.code, "code", codeKeys, problems);
|
|
23
|
+
checkKeys(raw.content, "content", contentKeys, problems);
|
|
24
|
+
checkSlugStrategy(raw.content, problems);
|
|
25
|
+
checkSizes(raw.sizes, problems);
|
|
26
|
+
checkExtras(raw.extra, problems);
|
|
27
|
+
checkEach(raw.fonts, "fonts", fontKeys, problems);
|
|
28
|
+
checkTheme(raw.theme, problems);
|
|
29
|
+
checkBackground(raw.background, "background", problems);
|
|
30
|
+
checkTexture(raw.texture, "texture", problems);
|
|
31
|
+
checkPlacement(raw.placement, problems);
|
|
32
|
+
return problems;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=collect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect.js","sourceRoot":"","sources":["../../src/validate/collect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,2EAA2E;IAC3E,MAAM,GAAG,GAAG,MAaX,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/C,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAExC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/validate/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { ColophonConfig } from "../types.js";
|
|
|
8
8
|
* correctly is describing images nobody is rendering.
|
|
9
9
|
*
|
|
10
10
|
* Only the closed parts of the config are checked. The names in `templates`
|
|
11
|
-
* are the project's own, and a post's props are open by design
|
|
11
|
+
* are the project's own, and a post's props are open by design, so a template
|
|
12
12
|
* reads whatever fields it understands.
|
|
13
13
|
*/
|
|
14
14
|
export declare function validateConfig(config: ColophonConfig): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAa3D"}
|
package/dist/validate/index.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { badgeKeys, codeKeys, colorKeys, configKeys, contentKeys, fontKeys, } from "./keys.js";
|
|
3
|
-
import { checkExtras, checkSizes } from "./overrides.js";
|
|
4
|
-
import { checkPlacement } from "./placement.js";
|
|
5
|
-
import { checkBackground, checkSlugStrategy } from "./values.js";
|
|
1
|
+
import { collectProblems } from "./collect.js";
|
|
6
2
|
/**
|
|
7
3
|
* Reject a config carrying options Colophon does not know.
|
|
8
4
|
*
|
|
@@ -12,24 +8,11 @@ import { checkBackground, checkSlugStrategy } from "./values.js";
|
|
|
12
8
|
* correctly is describing images nobody is rendering.
|
|
13
9
|
*
|
|
14
10
|
* Only the closed parts of the config are checked. The names in `templates`
|
|
15
|
-
* are the project's own, and a post's props are open by design
|
|
11
|
+
* are the project's own, and a post's props are open by design, so a template
|
|
16
12
|
* reads whatever fields it understands.
|
|
17
13
|
*/
|
|
18
14
|
export function validateConfig(config) {
|
|
19
|
-
|
|
20
|
-
const raw = config;
|
|
21
|
-
const problems = [];
|
|
22
|
-
checkKeys(config, "", configKeys, problems);
|
|
23
|
-
checkKeys(raw.colors, "colors", colorKeys, problems);
|
|
24
|
-
checkKeys(raw.badge, "badge", badgeKeys, problems);
|
|
25
|
-
checkKeys(raw.code, "code", codeKeys, problems);
|
|
26
|
-
checkKeys(raw.content, "content", contentKeys, problems);
|
|
27
|
-
checkSlugStrategy(raw.content, problems);
|
|
28
|
-
checkSizes(raw.sizes, problems);
|
|
29
|
-
checkExtras(raw.extra, problems);
|
|
30
|
-
checkEach(raw.fonts, "fonts", fontKeys, problems);
|
|
31
|
-
checkBackground(raw.background, "background", problems);
|
|
32
|
-
checkPlacement(raw.placement, problems);
|
|
15
|
+
const problems = collectProblems(config);
|
|
33
16
|
const [first, ...rest] = problems;
|
|
34
17
|
if (first === undefined) {
|
|
35
18
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validate/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;IAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,MAAM,KAAK,CAAC;QACf,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,oBAAoB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CAAC;AACJ,CAAC"}
|
package/dist/validate/keys.d.ts
CHANGED
|
@@ -12,8 +12,9 @@ export declare const customPlacementKeys: readonly string[];
|
|
|
12
12
|
* variant it was guessed to be.
|
|
13
13
|
*
|
|
14
14
|
* Two of the names are hyphenated because they are values a user writes in a
|
|
15
|
-
* config
|
|
16
|
-
* as keys is what keeps the list exhaustive, which is the whole
|
|
15
|
+
* config rather than identifiers, and the casing rule is about identifiers.
|
|
16
|
+
* Keeping them as keys is what keeps the list exhaustive, which is the whole
|
|
17
|
+
* point of it.
|
|
17
18
|
*/
|
|
18
19
|
export declare const placementStrategies: readonly string[];
|
|
19
20
|
/** One ad hoc image declared in config. */
|
|
@@ -36,12 +37,32 @@ export declare const sizeKeys: readonly string[];
|
|
|
36
37
|
export declare const fontKeys: string[];
|
|
37
38
|
/** Keys of a solid background. */
|
|
38
39
|
export declare const solidBackgroundKeys: readonly string[];
|
|
40
|
+
/** Keys of a background that draws a picture. */
|
|
41
|
+
export declare const imageBackgroundKeys: readonly string[];
|
|
42
|
+
/**
|
|
43
|
+
* The fits an image background accepts, as values rather than keys. `image`
|
|
44
|
+
* draws anything that is not `cover` as `contain`, so a mistyped `crop` would
|
|
45
|
+
* quietly change how every image in the build is cropped.
|
|
46
|
+
*/
|
|
47
|
+
export declare const backgroundFits: readonly string[];
|
|
48
|
+
/** Keys of the wash over a background image. */
|
|
49
|
+
export declare const scrimKeys: readonly string[];
|
|
50
|
+
/**
|
|
51
|
+
* Both image-source variants at once, for the same reason {@link fontKeys}
|
|
52
|
+
* takes both: which of `path` and `data` a source may carry is a question
|
|
53
|
+
* `image/resolve.ts` has a better message for than a key list does.
|
|
54
|
+
*/
|
|
55
|
+
export declare const imageSourceKeys: string[];
|
|
39
56
|
/** Keys of a gradient background. */
|
|
40
57
|
export declare const gradientBackgroundKeys: readonly string[];
|
|
41
58
|
/** Keys of one gradient stop. */
|
|
42
59
|
export declare const gradientStopKeys: readonly string[];
|
|
43
60
|
/** Keys of a gradient's `from` and `to` points. */
|
|
44
61
|
export declare const gradientPointKeys: readonly string[];
|
|
62
|
+
/** Keys of a mesh background. */
|
|
63
|
+
export declare const meshBackgroundKeys: readonly string[];
|
|
64
|
+
/** Keys of one blob of a mesh. */
|
|
65
|
+
export declare const meshBlobKeys: readonly string[];
|
|
45
66
|
/**
|
|
46
67
|
* The background variants, as values to check a declared `type` against. Typed
|
|
47
68
|
* against the union for the same reason the key lists are: a variant added to
|
|
@@ -49,6 +70,18 @@ export declare const gradientPointKeys: readonly string[];
|
|
|
49
70
|
* type, rejecting a config that is perfectly valid.
|
|
50
71
|
*/
|
|
51
72
|
export declare const backgroundTypes: readonly string[];
|
|
73
|
+
/** Keys of film grain. */
|
|
74
|
+
export declare const grainTextureKeys: readonly string[];
|
|
75
|
+
/** Keys of a dot grid. */
|
|
76
|
+
export declare const dotsTextureKeys: readonly string[];
|
|
77
|
+
/** Keys of ruled lines. */
|
|
78
|
+
export declare const rulesTextureKeys: readonly string[];
|
|
79
|
+
/**
|
|
80
|
+
* The texture variants, as values, for the reason {@link backgroundTypes} are:
|
|
81
|
+
* the three have different keys, so a mistyped `type` has to be reported as
|
|
82
|
+
* itself rather than as a list of keys that do not apply.
|
|
83
|
+
*/
|
|
84
|
+
export declare const textureTypes: readonly string[];
|
|
52
85
|
/**
|
|
53
86
|
* The slug strategies, for the same reason as {@link backgroundTypes}:
|
|
54
87
|
* `slugFromPath` treats anything that is not `basename` as a route, so a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/validate/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/validate/keys.ts"],"names":[],"mappings":"AAqDA,gCAAgC;AAChC,eAAO,MAAM,UAAU,mBAmBrB,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,mBAI5B,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,aAAa,mBAKxB,CAAC;AAEH,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,mBAI9B,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,mBAQ9B,CAAC;AAEH,2CAA2C;AAC3C,eAAO,MAAM,SAAS,mBAIpB,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,WAAW,mBAQtB,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,SAAS,mBAKpB,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,SAAS,mBAIpB,CAAC;AAEH,uCAAuC;AACvC,eAAO,MAAM,QAAQ,mBAQnB,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,mBAanB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,QAAQ,UAKpB,CAAC;AAEF,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,mBAG9B,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,mBAM9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAKzB,CAAC;AAEH,gDAAgD;AAChD,eAAO,MAAM,SAAS,mBAIpB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAK3B,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,sBAAsB,mBAKjC,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,mBAG3B,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,mBAAiD,CAAC;AAEhF,iCAAiC;AACjC,eAAO,MAAM,kBAAkB,mBAI7B,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,YAAY,mBAMvB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mBAK1B,CAAC;AAEH,0BAA0B;AAC1B,eAAO,MAAM,gBAAgB,mBAI3B,CAAC;AAEH,0BAA0B;AAC1B,eAAO,MAAM,eAAe,mBAM1B,CAAC;AAEH,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,mBAO3B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,mBAIvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAGzB,CAAC"}
|
package/dist/validate/keys.js
CHANGED
|
@@ -11,13 +11,16 @@ function knownKeys(shape) {
|
|
|
11
11
|
}
|
|
12
12
|
/** Top-level config options. */
|
|
13
13
|
export const configKeys = knownKeys({
|
|
14
|
+
theme: true,
|
|
14
15
|
colors: true,
|
|
15
16
|
background: true,
|
|
17
|
+
texture: true,
|
|
16
18
|
fonts: true,
|
|
17
19
|
systemFonts: true,
|
|
18
20
|
fontFamily: true,
|
|
19
21
|
footer: true,
|
|
20
22
|
badge: true,
|
|
23
|
+
logo: true,
|
|
21
24
|
code: true,
|
|
22
25
|
onWarning: true,
|
|
23
26
|
sizes: true,
|
|
@@ -52,8 +55,9 @@ export const customPlacementKeys = knownKeys({
|
|
|
52
55
|
* variant it was guessed to be.
|
|
53
56
|
*
|
|
54
57
|
* Two of the names are hyphenated because they are values a user writes in a
|
|
55
|
-
* config
|
|
56
|
-
* as keys is what keeps the list exhaustive, which is the whole
|
|
58
|
+
* config rather than identifiers, and the casing rule is about identifiers.
|
|
59
|
+
* Keeping them as keys is what keeps the list exhaustive, which is the whole
|
|
60
|
+
* point of it.
|
|
57
61
|
*/
|
|
58
62
|
export const placementStrategies = knownKeys({
|
|
59
63
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -95,7 +99,6 @@ export const badgeKeys = knownKeys({
|
|
|
95
99
|
export const codeKeys = knownKeys({
|
|
96
100
|
theme: true,
|
|
97
101
|
fontFamily: true,
|
|
98
|
-
charWidthRatio: true,
|
|
99
102
|
lineHeight: true,
|
|
100
103
|
tabSize: true,
|
|
101
104
|
cornerScale: true,
|
|
@@ -107,11 +110,14 @@ export const sizeKeys = knownKeys({
|
|
|
107
110
|
name: true,
|
|
108
111
|
width: true,
|
|
109
112
|
height: true,
|
|
113
|
+
theme: true,
|
|
110
114
|
colors: true,
|
|
111
115
|
background: true,
|
|
116
|
+
texture: true,
|
|
112
117
|
fontFamily: true,
|
|
113
118
|
footer: true,
|
|
114
119
|
badge: true,
|
|
120
|
+
logo: true,
|
|
115
121
|
code: true,
|
|
116
122
|
});
|
|
117
123
|
/**
|
|
@@ -130,6 +136,40 @@ export const solidBackgroundKeys = knownKeys({
|
|
|
130
136
|
type: true,
|
|
131
137
|
color: true,
|
|
132
138
|
});
|
|
139
|
+
/** Keys of a background that draws a picture. */
|
|
140
|
+
export const imageBackgroundKeys = knownKeys({
|
|
141
|
+
type: true,
|
|
142
|
+
source: true,
|
|
143
|
+
fit: true,
|
|
144
|
+
color: true,
|
|
145
|
+
scrim: true,
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* The fits an image background accepts, as values rather than keys. `image`
|
|
149
|
+
* draws anything that is not `cover` as `contain`, so a mistyped `crop` would
|
|
150
|
+
* quietly change how every image in the build is cropped.
|
|
151
|
+
*/
|
|
152
|
+
export const backgroundFits = knownKeys({
|
|
153
|
+
cover: true,
|
|
154
|
+
contain: true,
|
|
155
|
+
});
|
|
156
|
+
/** Keys of the wash over a background image. */
|
|
157
|
+
export const scrimKeys = knownKeys({
|
|
158
|
+
color: true,
|
|
159
|
+
from: true,
|
|
160
|
+
to: true,
|
|
161
|
+
});
|
|
162
|
+
/**
|
|
163
|
+
* Both image-source variants at once, for the same reason {@link fontKeys}
|
|
164
|
+
* takes both: which of `path` and `data` a source may carry is a question
|
|
165
|
+
* `image/resolve.ts` has a better message for than a key list does.
|
|
166
|
+
*/
|
|
167
|
+
export const imageSourceKeys = [
|
|
168
|
+
...new Set([
|
|
169
|
+
...knownKeys({ path: true }),
|
|
170
|
+
...knownKeys({ data: true }),
|
|
171
|
+
]),
|
|
172
|
+
];
|
|
133
173
|
/** Keys of a gradient background. */
|
|
134
174
|
export const gradientBackgroundKeys = knownKeys({
|
|
135
175
|
type: true,
|
|
@@ -144,6 +184,20 @@ export const gradientStopKeys = knownKeys({
|
|
|
144
184
|
});
|
|
145
185
|
/** Keys of a gradient's `from` and `to` points. */
|
|
146
186
|
export const gradientPointKeys = knownKeys({ x: true, y: true });
|
|
187
|
+
/** Keys of a mesh background. */
|
|
188
|
+
export const meshBackgroundKeys = knownKeys({
|
|
189
|
+
type: true,
|
|
190
|
+
color: true,
|
|
191
|
+
blobs: true,
|
|
192
|
+
});
|
|
193
|
+
/** Keys of one blob of a mesh. */
|
|
194
|
+
export const meshBlobKeys = knownKeys({
|
|
195
|
+
color: true,
|
|
196
|
+
x: true,
|
|
197
|
+
y: true,
|
|
198
|
+
radius: true,
|
|
199
|
+
opacity: true,
|
|
200
|
+
});
|
|
147
201
|
/**
|
|
148
202
|
* The background variants, as values to check a declared `type` against. Typed
|
|
149
203
|
* against the union for the same reason the key lists are: a variant added to
|
|
@@ -153,6 +207,41 @@ export const gradientPointKeys = knownKeys({ x: true, y: true });
|
|
|
153
207
|
export const backgroundTypes = knownKeys({
|
|
154
208
|
solid: true,
|
|
155
209
|
gradient: true,
|
|
210
|
+
mesh: true,
|
|
211
|
+
image: true,
|
|
212
|
+
});
|
|
213
|
+
/** Keys of film grain. */
|
|
214
|
+
export const grainTextureKeys = knownKeys({
|
|
215
|
+
type: true,
|
|
216
|
+
opacity: true,
|
|
217
|
+
scale: true,
|
|
218
|
+
});
|
|
219
|
+
/** Keys of a dot grid. */
|
|
220
|
+
export const dotsTextureKeys = knownKeys({
|
|
221
|
+
type: true,
|
|
222
|
+
color: true,
|
|
223
|
+
opacity: true,
|
|
224
|
+
size: true,
|
|
225
|
+
gap: true,
|
|
226
|
+
});
|
|
227
|
+
/** Keys of ruled lines. */
|
|
228
|
+
export const rulesTextureKeys = knownKeys({
|
|
229
|
+
type: true,
|
|
230
|
+
color: true,
|
|
231
|
+
opacity: true,
|
|
232
|
+
width: true,
|
|
233
|
+
gap: true,
|
|
234
|
+
angle: true,
|
|
235
|
+
});
|
|
236
|
+
/**
|
|
237
|
+
* The texture variants, as values, for the reason {@link backgroundTypes} are:
|
|
238
|
+
* the three have different keys, so a mistyped `type` has to be reported as
|
|
239
|
+
* itself rather than as a list of keys that do not apply.
|
|
240
|
+
*/
|
|
241
|
+
export const textureTypes = knownKeys({
|
|
242
|
+
grain: true,
|
|
243
|
+
dots: true,
|
|
244
|
+
rules: true,
|
|
156
245
|
});
|
|
157
246
|
/**
|
|
158
247
|
* The slug strategies, for the same reason as {@link backgroundTypes}:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/validate/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/validate/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"AA4BA,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAQnE;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAarE"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { checkBackground } from "./background.js";
|
|
1
2
|
import { checkKeys, isList, isRecord } from "./check.js";
|
|
2
3
|
import { badgeKeys, codeKeys, colorKeys, extraKeys, sizeKeys } from "./keys.js";
|
|
3
|
-
import {
|
|
4
|
+
import { checkTexture } from "./texture.js";
|
|
5
|
+
import { checkTheme } from "./values.js";
|
|
4
6
|
/**
|
|
5
7
|
* Check one output size, and the overrides it carries.
|
|
6
8
|
*
|
|
@@ -16,7 +18,9 @@ function checkSize(size, path, problems) {
|
|
|
16
18
|
checkKeys(size["colors"], `${path}.colors`, colorKeys, problems);
|
|
17
19
|
checkKeys(size["badge"], `${path}.badge`, badgeKeys, problems);
|
|
18
20
|
checkKeys(size["code"], `${path}.code`, codeKeys, problems);
|
|
21
|
+
checkTheme(size["theme"], problems);
|
|
19
22
|
checkBackground(size["background"], `${path}.background`, problems);
|
|
23
|
+
checkTexture(size["texture"], `${path}.texture`, problems);
|
|
20
24
|
}
|
|
21
25
|
/** Check each output size, and the overrides it carries. */
|
|
22
26
|
export function checkSizes(sizes, problems) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/validate/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAa,EAAE,IAAY,EAAE,QAAkB;IAChE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAkB;IAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,MAAe,EAAE,QAAkB;IAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACvC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE5C,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/validate/suggest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/validate/suggest.ts"],"names":[],"mappings":"AAqDA;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,GAAG,SAAS,CAmBpB;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAcR"}
|
package/dist/validate/suggest.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Options that have been renamed, keyed by where the old name turns up.
|
|
3
|
-
* Edit distance cannot connect a rename that changed the word
|
|
4
|
-
*
|
|
5
|
-
* where a bare "unknown option" helps least.
|
|
3
|
+
* Edit distance cannot connect a rename that changed the word, such as
|
|
4
|
+
* `dimensions` becoming `sizes`, and a config carried over from an older
|
|
5
|
+
* version is exactly where a bare "unknown option" helps least.
|
|
6
6
|
*/
|
|
7
7
|
const renamedOptions = new Map([["dimensions", "sizes"]]);
|
|
8
|
+
/**
|
|
9
|
+
* Options that have gone, and what to say instead of suggesting a name.
|
|
10
|
+
*
|
|
11
|
+
* A removal has no replacement to point at, so edit distance answers it with
|
|
12
|
+
* whichever surviving option happens to look similar, which is worse than
|
|
13
|
+
* saying plainly that the option is gone and why.
|
|
14
|
+
*/
|
|
15
|
+
const removedOptions = new Map([
|
|
16
|
+
[
|
|
17
|
+
"code.charWidthRatio",
|
|
18
|
+
"character width is measured from the font now. Supply the monospace face" +
|
|
19
|
+
" under `fonts` to have it measured exactly.",
|
|
20
|
+
],
|
|
21
|
+
]);
|
|
8
22
|
/**
|
|
9
23
|
* Levenshtein distance between two strings, used to work out which option a
|
|
10
24
|
* typo was aiming at. Both strings are option names and the lists are a
|
|
@@ -46,6 +60,10 @@ export function nearestName(name, known) {
|
|
|
46
60
|
}
|
|
47
61
|
/** Report one unknown option, naming the likeliest thing it was meant to be. */
|
|
48
62
|
export function describeUnknownOption(path, key, known) {
|
|
63
|
+
const removed = removedOptions.get(path);
|
|
64
|
+
if (removed !== undefined) {
|
|
65
|
+
return `Option "${path}" has been removed: ${removed}`;
|
|
66
|
+
}
|
|
49
67
|
const suggestion = renamedOptions.get(path) ?? nearestName(key, known);
|
|
50
68
|
if (suggestion !== undefined) {
|
|
51
69
|
return `Unknown option "${path}". Did you mean "${suggestion}"?`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/validate/suggest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAiB,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1E;;;;GAIG;AACH,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAEzE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,wEAAwE;YACxE,sEAAsE;YACtE,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,GAAG,CACN,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAClC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAC3B,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC/B,CACF,CAAC;QACJ,CAAC;QAED,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,KAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CACxC,CAAC;IACF,IAAI,OAA2B,CAAC;IAChC,IAAI,QAAQ,GAAG,QAAQ,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,wEAAwE;QACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3E,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;YACxB,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,GAAW,EACX,KAAwB;IAExB,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEvE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,mBAAmB,IAAI,oBAAoB,UAAU,IAAI,CAAC;IACnE,CAAC;IAED,OAAO,mBAAmB,IAAI,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9E,CAAC"}
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/validate/suggest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check a texture against the keys of whichever treatment it declares.
|
|
3
|
+
*
|
|
4
|
+
* The same reasoning as a background's: `textureSvg` draws anything it does
|
|
5
|
+
* not recognise as the last variant it checks for, so an unknown `type` would
|
|
6
|
+
* come out as a set of ruled lines nobody asked for. A texture with no `type`
|
|
7
|
+
* is left to the type checker, since without one there is no telling which
|
|
8
|
+
* keys were meant.
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkTexture(texture: unknown, path: string, problems: string[]): void;
|
|
11
|
+
//# sourceMappingURL=texture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../src/validate/texture.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAAE,GACjB,IAAI,CA2BN"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { checkKeys, isRecord } from "./check.js";
|
|
2
|
+
import { dotsTextureKeys, grainTextureKeys, rulesTextureKeys, textureTypes, } from "./keys.js";
|
|
3
|
+
import { describeUnknownValue } from "./values.js";
|
|
4
|
+
/**
|
|
5
|
+
* Check a texture against the keys of whichever treatment it declares.
|
|
6
|
+
*
|
|
7
|
+
* The same reasoning as a background's: `textureSvg` draws anything it does
|
|
8
|
+
* not recognise as the last variant it checks for, so an unknown `type` would
|
|
9
|
+
* come out as a set of ruled lines nobody asked for. A texture with no `type`
|
|
10
|
+
* is left to the type checker, since without one there is no telling which
|
|
11
|
+
* keys were meant.
|
|
12
|
+
*/
|
|
13
|
+
export function checkTexture(texture, path, problems) {
|
|
14
|
+
if (!isRecord(texture)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const { type } = texture;
|
|
18
|
+
if (type === "grain") {
|
|
19
|
+
checkKeys(texture, path, grainTextureKeys, problems);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (type === "dots") {
|
|
23
|
+
checkKeys(texture, path, dotsTextureKeys, problems);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (type === "rules") {
|
|
27
|
+
checkKeys(texture, path, rulesTextureKeys, problems);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (typeof type === "string") {
|
|
31
|
+
problems.push(describeUnknownValue("texture type", "types", type, textureTypes));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/validate/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,IAAY,EACZ,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
* the field, `plural` heads the list of what it does accept.
|
|
4
4
|
*/
|
|
5
5
|
export declare function describeUnknownValue(noun: string, plural: string, value: string, known: readonly string[]): string;
|
|
6
|
-
/**
|
|
7
|
-
* Check a background against the keys of whichever variant it declares.
|
|
8
|
-
*
|
|
9
|
-
* A misspelt `type` is worth reporting on its own: `backgroundSvg` treats
|
|
10
|
-
* anything that is not `solid` as a gradient, so `gradiant` silently becomes
|
|
11
|
-
* one and then falls over on the stops it does not have. A background with no
|
|
12
|
-
* `type` at all is left alone — the type is what says which keys apply, and
|
|
13
|
-
* guessing would report the keys rather than the omission.
|
|
14
|
-
*/
|
|
15
|
-
export declare function checkBackground(background: unknown, path: string, problems: string[]): void;
|
|
16
6
|
/**
|
|
17
7
|
* Check the slug strategy names a real one. Only a string can be a strategy;
|
|
18
8
|
* anything else is a shape the type checker already covers, as elsewhere here.
|
|
19
9
|
*/
|
|
20
10
|
export declare function checkSlugStrategy(content: unknown, problems: string[]): void;
|
|
11
|
+
/**
|
|
12
|
+
* Check a theme names one of the curated set.
|
|
13
|
+
*
|
|
14
|
+
* A theme that does not exist is nothing at all: the config resolves as though
|
|
15
|
+
* it had never been named and the images come out in the neutral default
|
|
16
|
+
* palette. Every unknown value here is worth reporting, but this one more than
|
|
17
|
+
* most, because a theme is the one field whose whole purpose is to be the
|
|
18
|
+
* look.
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkTheme(theme: unknown, problems: string[]): void;
|
|
21
21
|
//# sourceMappingURL=values.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAmB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAUnE"}
|
package/dist/validate/values.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { themeNames } from "../theme/index.js";
|
|
2
|
+
import { isRecord } from "./check.js";
|
|
3
|
+
import { slugStrategies } from "./keys.js";
|
|
3
4
|
import { nearestName } from "./suggest.js";
|
|
4
5
|
/**
|
|
5
6
|
* Report a value that is not one of the names a field accepts. `noun` names
|
|
@@ -11,35 +12,6 @@ export function describeUnknownValue(noun, plural, value, known) {
|
|
|
11
12
|
? `Unknown ${noun} "${value}". Valid ${plural}: ${known.join(", ")}.`
|
|
12
13
|
: `Unknown ${noun} "${value}". Did you mean "${suggestion}"?`;
|
|
13
14
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Check a background against the keys of whichever variant it declares.
|
|
16
|
-
*
|
|
17
|
-
* A misspelt `type` is worth reporting on its own: `backgroundSvg` treats
|
|
18
|
-
* anything that is not `solid` as a gradient, so `gradiant` silently becomes
|
|
19
|
-
* one and then falls over on the stops it does not have. A background with no
|
|
20
|
-
* `type` at all is left alone — the type is what says which keys apply, and
|
|
21
|
-
* guessing would report the keys rather than the omission.
|
|
22
|
-
*/
|
|
23
|
-
export function checkBackground(background, path, problems) {
|
|
24
|
-
if (!isRecord(background)) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const { type, stops, from, to } = background;
|
|
28
|
-
if (type === "solid") {
|
|
29
|
-
checkKeys(background, path, solidBackgroundKeys, problems);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (type === "gradient") {
|
|
33
|
-
checkKeys(background, path, gradientBackgroundKeys, problems);
|
|
34
|
-
checkEach(stops, `${path}.stops`, gradientStopKeys, problems);
|
|
35
|
-
checkKeys(from, `${path}.from`, gradientPointKeys, problems);
|
|
36
|
-
checkKeys(to, `${path}.to`, gradientPointKeys, problems);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (typeof type === "string") {
|
|
40
|
-
problems.push(describeUnknownValue("background type", "types", type, backgroundTypes));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
15
|
/**
|
|
44
16
|
* Check the slug strategy names a real one. Only a string can be a strategy;
|
|
45
17
|
* anything else is a shape the type checker already covers, as elsewhere here.
|
|
@@ -54,4 +26,22 @@ export function checkSlugStrategy(content, problems) {
|
|
|
54
26
|
}
|
|
55
27
|
problems.push(describeUnknownValue("slug strategy", "strategies", strategy, slugStrategies));
|
|
56
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Check a theme names one of the curated set.
|
|
31
|
+
*
|
|
32
|
+
* A theme that does not exist is nothing at all: the config resolves as though
|
|
33
|
+
* it had never been named and the images come out in the neutral default
|
|
34
|
+
* palette. Every unknown value here is worth reporting, but this one more than
|
|
35
|
+
* most, because a theme is the one field whose whole purpose is to be the
|
|
36
|
+
* look.
|
|
37
|
+
*/
|
|
38
|
+
export function checkTheme(theme, problems) {
|
|
39
|
+
// Widened on the way in: the names are typed as the union everywhere else,
|
|
40
|
+
// and what is being checked here is a string that may well not be one.
|
|
41
|
+
const known = themeNames;
|
|
42
|
+
if (typeof theme !== "string" || known.includes(theme)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
problems.push(describeUnknownValue("theme", "themes", theme, known));
|
|
46
|
+
}
|
|
57
47
|
//# sourceMappingURL=values.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAAc,EACd,KAAa,EACb,KAAwB;IAExB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,YAAY,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrE,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,oBAAoB,UAAU,IAAI,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,QAAkB;IACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAClB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,cAAc,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAkB;IAC3D,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,KAAK,GAAsB,UAAU,CAAC;IAE5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC"}
|