@mintlify/validation 0.1.120 → 0.1.122

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 (40) hide show
  1. package/dist/index.d.ts +333 -8
  2. package/dist/index.js +18 -54
  3. package/dist/mint-config/flattenNavigationVersions.d.ts +2 -0
  4. package/dist/mint-config/flattenNavigationVersions.js +10 -0
  5. package/dist/mint-config/refinements/refineMissingVersions.d.ts +6 -0
  6. package/dist/mint-config/refinements/refineMissingVersions.js +13 -0
  7. package/dist/mint-config/schemas/anchorColors.js +5 -20
  8. package/dist/mint-config/schemas/anchors.d.ts +4 -4
  9. package/dist/mint-config/schemas/colors.js +6 -25
  10. package/dist/mint-config/schemas/config.d.ts +16 -11
  11. package/dist/mint-config/schemas/config.js +1 -1
  12. package/dist/mint-config/schemas/hexColor.d.ts +2 -0
  13. package/dist/mint-config/schemas/hexColor.js +5 -0
  14. package/dist/mint-config/schemas/navigation.d.ts +2 -2
  15. package/dist/mint-config/schemas/tabs.d.ts +3 -0
  16. package/dist/mint-config/schemas/tabs.js +5 -0
  17. package/dist/mint-config/warnings/aggregateWarnings.d.ts +4 -0
  18. package/dist/mint-config/warnings/aggregateWarnings.js +4 -0
  19. package/dist/mint-config/warnings/warnAnchorUrls.d.ts +2 -0
  20. package/dist/mint-config/warnings/warnAnchorUrls.js +20 -0
  21. package/dist/mint-config/warnings/warnUnusedVersions.d.ts +2 -0
  22. package/dist/mint-config/warnings/warnUnusedVersions.js +17 -0
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/package.json +3 -3
  25. package/dist/any.d.ts +0 -20
  26. package/dist/any.js +0 -27
  27. package/dist/mint-config/common.d.ts +0 -6
  28. package/dist/mint-config/common.js +0 -7
  29. package/dist/mint-config/hexadecimalPattern.d.ts +0 -1
  30. package/dist/mint-config/hexadecimalPattern.js +0 -1
  31. package/dist/mint-config/validateAnchorsWarnings.d.ts +0 -3
  32. package/dist/mint-config/validateAnchorsWarnings.js +0 -35
  33. package/dist/mint-config/validateVersionsInNavigation.d.ts +0 -4
  34. package/dist/mint-config/validateVersionsInNavigation.js +0 -52
  35. package/dist/sort.d.ts +0 -47
  36. package/dist/sort.js +0 -72
  37. package/dist/sortable/Sortable.d.ts +0 -28
  38. package/dist/sortable/Sortable.js +0 -117
  39. package/dist/sortable/isSortable.d.ts +0 -2
  40. package/dist/sortable/isSortable.js +0 -7
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const configSchema: z.ZodObject<{
2
+ export declare const mintConfigSchema: z.ZodObject<{
3
3
  $schema: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4
4
  mintlify: z.ZodOptional<z.ZodString>;
5
5
  name: z.ZodString;
@@ -231,11 +231,11 @@ export declare const configSchema: z.ZodObject<{
231
231
  }, "strict", z.ZodTypeAny, {
232
232
  name: string;
233
233
  icon?: string | undefined;
234
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
234
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
235
235
  }, {
236
236
  name: string;
237
237
  icon?: string | undefined;
238
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
238
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
239
239
  }>>;
240
240
  anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
241
241
  name: z.ZodString;
@@ -261,7 +261,7 @@ export declare const configSchema: z.ZodObject<{
261
261
  name: string;
262
262
  url: string;
263
263
  icon?: string | undefined;
264
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
264
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
265
265
  color?: string | {
266
266
  from: string;
267
267
  to: string;
@@ -273,7 +273,7 @@ export declare const configSchema: z.ZodObject<{
273
273
  name: string;
274
274
  url: string;
275
275
  icon?: string | undefined;
276
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
276
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
277
277
  color?: string | {
278
278
  from: string;
279
279
  to: string;
@@ -285,12 +285,15 @@ export declare const configSchema: z.ZodObject<{
285
285
  tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
286
286
  name: z.ZodString;
287
287
  url: z.ZodString;
288
+ version: z.ZodOptional<z.ZodString>;
288
289
  }, "strip", z.ZodTypeAny, {
289
290
  name: string;
290
291
  url: string;
292
+ version?: string | undefined;
291
293
  }, {
292
294
  name: string;
293
295
  url: string;
296
+ version?: string | undefined;
294
297
  }>, "many">>;
295
298
  footerSocials: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodObject<{
296
299
  type: z.ZodString;
@@ -528,6 +531,7 @@ export declare const configSchema: z.ZodObject<{
528
531
  indexHiddenPages?: boolean | undefined;
529
532
  }>>;
530
533
  }, "strip", z.ZodTypeAny, {
534
+ navigation: import("@mintlify/models").NavigationGroup[];
531
535
  name: string;
532
536
  $schema: string;
533
537
  favicon: string;
@@ -547,7 +551,6 @@ export declare const configSchema: z.ZodObject<{
547
551
  ultraLight?: any;
548
552
  ultraDark?: any;
549
553
  };
550
- navigation: import("@mintlify/models").NavigationGroup[];
551
554
  mintlify?: string | undefined;
552
555
  logo?: string | {
553
556
  light: string;
@@ -603,13 +606,13 @@ export declare const configSchema: z.ZodObject<{
603
606
  topAnchor?: {
604
607
  name: string;
605
608
  icon?: string | undefined;
606
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
609
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
607
610
  } | undefined;
608
611
  anchors?: {
609
612
  name: string;
610
613
  url: string;
611
614
  icon?: string | undefined;
612
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
615
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
613
616
  color?: string | {
614
617
  from: string;
615
618
  to: string;
@@ -621,6 +624,7 @@ export declare const configSchema: z.ZodObject<{
621
624
  tabs?: {
622
625
  name: string;
623
626
  url: string;
627
+ version?: string | undefined;
624
628
  }[] | undefined;
625
629
  footerSocials?: {
626
630
  type: string;
@@ -688,6 +692,7 @@ export declare const configSchema: z.ZodObject<{
688
692
  indexHiddenPages?: boolean | undefined;
689
693
  } | undefined;
690
694
  }, {
695
+ navigation: import("@mintlify/models").NavigationGroup[];
691
696
  name: string;
692
697
  favicon: string;
693
698
  colors: {
@@ -706,7 +711,6 @@ export declare const configSchema: z.ZodObject<{
706
711
  ultraLight?: any;
707
712
  ultraDark?: any;
708
713
  };
709
- navigation: import("@mintlify/models").NavigationGroup[];
710
714
  $schema?: string | undefined;
711
715
  mintlify?: string | undefined;
712
716
  logo?: string | {
@@ -763,13 +767,13 @@ export declare const configSchema: z.ZodObject<{
763
767
  topAnchor?: {
764
768
  name: string;
765
769
  icon?: string | undefined;
766
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
770
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
767
771
  } | undefined;
768
772
  anchors?: {
769
773
  name: string;
770
774
  url: string;
771
775
  icon?: string | undefined;
772
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
776
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
773
777
  color?: string | {
774
778
  from: string;
775
779
  to: string;
@@ -781,6 +785,7 @@ export declare const configSchema: z.ZodObject<{
781
785
  tabs?: {
782
786
  name: string;
783
787
  url: string;
788
+ version?: string | undefined;
784
789
  }[] | undefined;
785
790
  footerSocials?: {
786
791
  type: string;
@@ -10,7 +10,7 @@ import { navigationSchema } from './navigation.js';
10
10
  import { seoSchema } from './seo.js';
11
11
  import { tabsSchema, primaryTabSchema } from './tabs.js';
12
12
  import { versionsSchema } from './versions.js';
13
- export const configSchema = z.object({
13
+ export const mintConfigSchema = z.object({
14
14
  $schema: z.string().url().optional().default('https://mintlify.com/schema.json'),
15
15
  mintlify: z.string().optional(),
16
16
  name: nameSchema,
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export declare const hexColor: (name: string) => z.ZodString;
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ const hexColorRegex = /^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
3
+ export const hexColor = (name) => z
4
+ .string({ invalid_type_error: `${name} must be a string` })
5
+ .regex(hexColorRegex, `${name} must be a hex color string, with a leading #`);
@@ -8,12 +8,12 @@ export declare const baseNavigationGroupSchema: z.ZodObject<{
8
8
  }, "strict", z.ZodTypeAny, {
9
9
  group: string;
10
10
  icon?: string | undefined;
11
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
11
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
12
12
  version?: string | undefined;
13
13
  }, {
14
14
  group: string;
15
15
  icon?: string | undefined;
16
- iconType?: "brands" | "duotone" | "light" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
16
+ iconType?: "light" | "brands" | "duotone" | "regular" | "sharp-solid" | "solid" | "thin" | undefined;
17
17
  version?: string | undefined;
18
18
  }>;
19
19
  export declare const navigationSchema: z.ZodArray<z.ZodType<NavigationGroup, z.ZodTypeDef, NavigationGroup>, "many">;
@@ -2,12 +2,15 @@ import { z } from 'zod';
2
2
  export declare const tabsSchema: z.ZodArray<z.ZodObject<{
3
3
  name: z.ZodString;
4
4
  url: z.ZodString;
5
+ version: z.ZodOptional<z.ZodString>;
5
6
  }, "strip", z.ZodTypeAny, {
6
7
  name: string;
7
8
  url: string;
9
+ version?: string | undefined;
8
10
  }, {
9
11
  name: string;
10
12
  url: string;
13
+ version?: string | undefined;
11
14
  }>, "many">;
12
15
  export declare const primaryTabSchema: z.ZodObject<{
13
16
  name: z.ZodString;
@@ -14,6 +14,11 @@ const tabSchema = z.object({
14
14
  })
15
15
  .trim()
16
16
  .min(1, 'Tab URL is missing.'),
17
+ version: z
18
+ .string({
19
+ invalid_type_error: 'Version must be a string in the versions array.',
20
+ })
21
+ .optional(),
17
22
  });
18
23
  export const tabsSchema = tabSchema.array();
19
24
  export const primaryTabSchema = z
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import { mintConfigSchema } from '../schemas/config.js';
3
+ export type WarningGenerator = (config: z.infer<typeof mintConfigSchema>) => z.ZodIssue[];
4
+ export declare const aggregateWarnings: WarningGenerator;
@@ -0,0 +1,4 @@
1
+ import { warnAnchorUrls } from './warnAnchorUrls.js';
2
+ import { warnUnusedVersions } from './warnUnusedVersions.js';
3
+ const warnings = [warnAnchorUrls, warnUnusedVersions];
4
+ export const aggregateWarnings = (config) => warnings.flatMap((generator) => generator(config));
@@ -0,0 +1,2 @@
1
+ import { WarningGenerator } from './aggregateWarnings.js';
2
+ export declare const warnAnchorUrls: WarningGenerator;
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export const warnAnchorUrls = ({ anchors, navigation }) => {
3
+ var _a;
4
+ return ((_a = anchors === null || anchors === void 0 ? void 0 : anchors.filter((anchor) => !anchor.url.startsWith('mailto:') &&
5
+ !anchor.url.startsWith('http://') &&
6
+ !anchor.url.startsWith('https://') &&
7
+ !navigation.some((nav) => pageStartsWith(nav, anchor.url))).map((anchor, i) => ({
8
+ code: z.ZodIssueCode.custom,
9
+ message: `No pages in the navigation match anchor ${anchor.url}`,
10
+ path: ['anchors', i, 'url'],
11
+ }))) !== null && _a !== void 0 ? _a : []);
12
+ };
13
+ function pageStartsWith(navEntry, prefix) {
14
+ if (typeof navEntry === 'string') {
15
+ return navEntry.startsWith(prefix);
16
+ }
17
+ else {
18
+ return navEntry.pages.some((entry) => pageStartsWith(entry, prefix));
19
+ }
20
+ }
@@ -0,0 +1,2 @@
1
+ import { WarningGenerator } from './aggregateWarnings.js';
2
+ export declare const warnUnusedVersions: WarningGenerator;
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { flattenNavigationVersions } from '../flattenNavigationVersions.js';
3
+ export const warnUnusedVersions = ({ navigation, versions }) => {
4
+ if (versions === undefined || versions.length === 0)
5
+ return [];
6
+ const versionsFromNavigation = flattenNavigationVersions(navigation);
7
+ if (versionsFromNavigation.length === 0) {
8
+ return [
9
+ {
10
+ code: z.ZodIssueCode.custom,
11
+ message: 'Versions are defined in the config, but no versions are used in the navigation',
12
+ path: ['versions'],
13
+ },
14
+ ];
15
+ }
16
+ return [];
17
+ };