@tinacms/schema-tools 0.0.0-ef282d9-20241024212433 → 0.0.0-f608f48-20250617065117

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.
@@ -1,4 +1,8 @@
1
- /**
2
-
3
- */
4
- export declare function addNamespaceToSchema<T extends object | string>(maybeNode: T, namespace?: string[]): T;
1
+ type Node = {
2
+ name?: string;
3
+ value?: string;
4
+ namespace?: string[];
5
+ [key: string]: any;
6
+ };
7
+ export declare function addNamespaceToSchema<T extends Node | string>(maybeNode: T, namespace?: string[]): T;
8
+ export {};
@@ -1,5 +1,23 @@
1
1
  import type { FC } from 'react';
2
2
  import type React from 'react';
3
+ export declare const CONTENT_FORMATS: readonly ["mdx", "md", "markdown", "json", "yaml", "yml", "toml"];
4
+ export type ContentFormat = (typeof CONTENT_FORMATS)[number];
5
+ export type ContentFrontmatterFormat = 'yaml' | 'toml' | 'json';
6
+ export type Parser = {
7
+ type: 'mdx';
8
+ } | {
9
+ type: 'markdown';
10
+ /**
11
+ * Tina will escape entities like `<` and `[` by default. You can choose to turn
12
+ * off all escaping, or specify HTML, so `<div>` will not be turned into `\<div>`
13
+ */
14
+ skipEscaping?: 'all' | 'html' | 'none';
15
+ } | {
16
+ /**
17
+ * Experimental: Returns the native Slate.js document as JSON. Ideal to retain the pure editor content structure.
18
+ */
19
+ type: 'slatejson';
20
+ };
3
21
  type Meta = {
4
22
  active?: boolean;
5
23
  dirty?: boolean;
@@ -185,7 +203,7 @@ export type ReferenceField = (FieldGeneric<string, undefined, ReferenceFieldOpti
185
203
  export type PasswordField = (FieldGeneric<string, undefined> | FieldGeneric<string, false>) & BaseField & {
186
204
  type: 'password';
187
205
  };
188
- type toolbarItemName = 'heading' | 'link' | 'image' | 'quote' | 'ul' | 'ol' | 'code' | 'codeBlock' | 'bold' | 'italic' | 'raw' | 'embed' | 'mermaid';
206
+ type ToolbarOverrideType = 'heading' | 'link' | 'image' | 'quote' | 'ul' | 'ol' | 'code' | 'codeBlock' | 'bold' | 'italic' | 'raw' | 'embed' | 'mermaid' | 'table';
189
207
  type RichTextAst = {
190
208
  type: 'root';
191
209
  children: Record<string, unknown>[];
@@ -198,24 +216,21 @@ export type RichTextField<WithNamespace extends boolean = false> = (FieldGeneric
198
216
  * will be stored as frontmatter
199
217
  */
200
218
  isBody?: boolean;
201
- toolbarOverride?: toolbarItemName[];
219
+ /**@deprecated use overrides.toolbar */
220
+ toolbarOverride?: ToolbarOverrideType[];
202
221
  templates?: RichTextTemplate<WithNamespace>[];
222
+ overrides?: {
223
+ toolbar?: ToolbarOverrideType[];
224
+ /**Default set to true */
225
+ showFloatingToolbar?: boolean;
226
+ };
203
227
  /**
204
228
  * By default, Tina parses markdown with MDX, this is a more strict parser
205
229
  * that allows you to use structured content inside markdown (via `templates`).
206
230
  *
207
231
  * Specify `"markdown"` if you're having problems with Tina parsing your content.
208
232
  */
209
- parser?: {
210
- type: 'markdown';
211
- /**
212
- * Tina will escape entities like `<` and `[` by default. You can choose to turn
213
- * off all escaping, or specify HTML, so `<div>` will not be turned into `\<div>`
214
- */
215
- skipEscaping?: 'all' | 'html' | 'none';
216
- } | {
217
- type: 'mdx';
218
- };
233
+ parser?: Parser;
219
234
  };
220
235
  export type RichTextTemplate<WithNamespace extends boolean = false> = Template<WithNamespace> & {
221
236
  inline?: boolean;
@@ -394,7 +409,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
394
409
  token?: string | null;
395
410
  ui?: {
396
411
  /**
397
- * When using Tina Cloud's branching feature, provide the URL for your given branch
412
+ * When using TinaCloud's branching feature, provide the URL for your given branch
398
413
  *
399
414
  * Eg. If you're deplying to Vercel, and your repo name is 'my-app',
400
415
  * Vercel's preview URL would be based on the branch:
@@ -521,7 +536,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
521
536
  } | {
522
537
  searchClient?: never;
523
538
  /**
524
- * Use the Tina Cloud search index
539
+ * Use the TinaCloud search index
525
540
  */
526
541
  tina: {
527
542
  /**
@@ -548,7 +563,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
548
563
  maxSearchIndexFieldLength?: number;
549
564
  };
550
565
  /**
551
- * Used to override the default Tina Cloud API URL
566
+ * Used to override the default TinaCloud API URL
552
567
  *
553
568
  * [mostly for internal use only]
554
569
  */
@@ -581,7 +596,7 @@ interface BaseCollection {
581
596
  name: string;
582
597
  path: string;
583
598
  indexes?: IndexType[];
584
- format?: 'json' | 'md' | 'markdown' | 'mdx' | 'yaml' | 'yml' | 'toml';
599
+ format?: ContentFormat;
585
600
  ui?: UICollection;
586
601
  /**
587
602
  * @deprecated - use `ui.defaultItem` on the each `template` instead
@@ -590,7 +605,7 @@ interface BaseCollection {
590
605
  /**
591
606
  * This format will be used to parse the markdown frontmatter
592
607
  */
593
- frontmatterFormat?: 'yaml' | 'toml' | 'json';
608
+ frontmatterFormat?: ContentFrontmatterFormat;
594
609
  /**
595
610
  * The delimiters used to parse the frontmatter.
596
611
  */
@@ -630,6 +645,7 @@ type Document = {
630
645
  relativePath: string;
631
646
  filename: string;
632
647
  extension: string;
648
+ hasReferences?: boolean;
633
649
  };
634
650
  };
635
651
  export interface UICollection<Form = any, CMS = any, TinaForm = any> {
@@ -1 +1,9 @@
1
1
  export declare const normalizePath: (filepath: string) => string;
2
+ /**
3
+ * Returns the given path such that:
4
+ * - The path separator is converted from '\' to '/' if necessary.
5
+ * - Duplicate '/' are removed
6
+ * - Leading and trailing '/' are cleared
7
+ * @param filepath Filepath to convert to its canonical form
8
+ */
9
+ export declare const canonicalPath: (filepath: string) => string;
@@ -1,6 +1,3 @@
1
- /**
2
-
3
- */
4
1
  import { z } from 'zod';
5
2
  import type { TinaField as TinaFieldType } from '../types/index';
6
3
  export declare const TinaFieldZod: z.ZodType<TinaFieldType>;
@@ -1,26 +1,23 @@
1
- /**
2
-
3
- */
4
1
  import { z } from 'zod';
5
2
  export declare const CollectionBaseSchema: z.ZodObject<{
6
3
  label: z.ZodOptional<z.ZodString>;
7
4
  name: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
8
5
  path: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
9
- format: z.ZodOptional<z.ZodEnum<["json", "md", "markdown", "mdx", "toml", "yaml", "yml"]>>;
6
+ format: z.ZodOptional<z.ZodEnum<["mdx", "md", "markdown", "json", "yaml", "yml", "toml"]>>;
10
7
  isAuthCollection: z.ZodOptional<z.ZodBoolean>;
11
8
  isDetached: z.ZodOptional<z.ZodBoolean>;
12
9
  }, "strip", z.ZodTypeAny, {
13
10
  name?: string;
14
11
  label?: string;
15
12
  path?: string;
16
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
13
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
17
14
  isDetached?: boolean;
18
15
  isAuthCollection?: boolean;
19
16
  }, {
20
17
  name?: string;
21
18
  label?: string;
22
19
  path?: string;
23
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
20
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
24
21
  isDetached?: boolean;
25
22
  isAuthCollection?: boolean;
26
23
  }>;
@@ -29,90 +26,90 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
29
26
  label: z.ZodOptional<z.ZodString>;
30
27
  name: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
31
28
  path: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
32
- format: z.ZodOptional<z.ZodEnum<["json", "md", "markdown", "mdx", "toml", "yaml", "yml"]>>;
29
+ format: z.ZodOptional<z.ZodEnum<["mdx", "md", "markdown", "json", "yaml", "yml", "toml"]>>;
33
30
  isAuthCollection: z.ZodOptional<z.ZodBoolean>;
34
31
  isDetached: z.ZodOptional<z.ZodBoolean>;
35
32
  }, {
36
- fields: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodType<import("..").TinaField, z.ZodTypeDef, import("..").TinaField>, "many">>, import("..").TinaField[], import("..").TinaField[]>, import("..").TinaField[], import("..").TinaField[]>, import("..").TinaField[], import("..").TinaField[]>, import("..").TinaField[], import("..").TinaField[]>;
33
+ fields: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodType<import("../types/index").TinaField, z.ZodTypeDef, import("../types/index").TinaField>, "many">>, import("../types/index").TinaField[], import("../types/index").TinaField[]>, import("../types/index").TinaField[], import("../types/index").TinaField[]>, import("../types/index").TinaField[], import("../types/index").TinaField[]>, import("../types/index").TinaField[], import("../types/index").TinaField[]>;
37
34
  templates: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
38
35
  label: z.ZodString;
39
36
  name: z.ZodEffects<z.ZodString, string, string>;
40
- fields: z.ZodArray<z.ZodType<import("..").TinaField, z.ZodTypeDef, import("..").TinaField>, "many">;
37
+ fields: z.ZodArray<z.ZodType<import("../types/index").TinaField, z.ZodTypeDef, import("../types/index").TinaField>, "many">;
41
38
  }, "strip", z.ZodTypeAny, {
42
39
  name?: string;
43
- fields?: import("..").TinaField[];
40
+ fields?: import("../types/index").TinaField[];
44
41
  label?: string;
45
42
  }, {
46
43
  name?: string;
47
- fields?: import("..").TinaField[];
44
+ fields?: import("../types/index").TinaField[];
48
45
  label?: string;
49
46
  }>, {
50
47
  name?: string;
51
- fields?: import("..").TinaField[];
48
+ fields?: import("../types/index").TinaField[];
52
49
  label?: string;
53
50
  }, {
54
51
  name?: string;
55
- fields?: import("..").TinaField[];
52
+ fields?: import("../types/index").TinaField[];
56
53
  label?: string;
57
54
  }>, "many">>, {
58
55
  name?: string;
59
- fields?: import("..").TinaField[];
56
+ fields?: import("../types/index").TinaField[];
60
57
  label?: string;
61
58
  }[], {
62
59
  name?: string;
63
- fields?: import("..").TinaField[];
60
+ fields?: import("../types/index").TinaField[];
64
61
  label?: string;
65
62
  }[]>;
66
63
  }>, "strip", z.ZodTypeAny, {
67
64
  name?: string;
68
65
  templates?: {
69
66
  name?: string;
70
- fields?: import("..").TinaField[];
67
+ fields?: import("../types/index").TinaField[];
71
68
  label?: string;
72
69
  }[];
73
- fields?: import("..").TinaField[];
70
+ fields?: import("../types/index").TinaField[];
74
71
  label?: string;
75
72
  path?: string;
76
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
73
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
77
74
  isDetached?: boolean;
78
75
  isAuthCollection?: boolean;
79
76
  }, {
80
77
  name?: string;
81
78
  templates?: {
82
79
  name?: string;
83
- fields?: import("..").TinaField[];
80
+ fields?: import("../types/index").TinaField[];
84
81
  label?: string;
85
82
  }[];
86
- fields?: import("..").TinaField[];
83
+ fields?: import("../types/index").TinaField[];
87
84
  label?: string;
88
85
  path?: string;
89
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
86
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
90
87
  isDetached?: boolean;
91
88
  isAuthCollection?: boolean;
92
89
  }>, {
93
90
  name?: string;
94
91
  templates?: {
95
92
  name?: string;
96
- fields?: import("..").TinaField[];
93
+ fields?: import("../types/index").TinaField[];
97
94
  label?: string;
98
95
  }[];
99
- fields?: import("..").TinaField[];
96
+ fields?: import("../types/index").TinaField[];
100
97
  label?: string;
101
98
  path?: string;
102
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
99
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
103
100
  isDetached?: boolean;
104
101
  isAuthCollection?: boolean;
105
102
  }, {
106
103
  name?: string;
107
104
  templates?: {
108
105
  name?: string;
109
- fields?: import("..").TinaField[];
106
+ fields?: import("../types/index").TinaField[];
110
107
  label?: string;
111
108
  }[];
112
- fields?: import("..").TinaField[];
109
+ fields?: import("../types/index").TinaField[];
113
110
  label?: string;
114
111
  path?: string;
115
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
112
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
116
113
  isDetached?: boolean;
117
114
  isAuthCollection?: boolean;
118
115
  }>, "many">;
@@ -240,13 +237,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
240
237
  name?: string;
241
238
  templates?: {
242
239
  name?: string;
243
- fields?: import("..").TinaField[];
240
+ fields?: import("../types/index").TinaField[];
244
241
  label?: string;
245
242
  }[];
246
- fields?: import("..").TinaField[];
243
+ fields?: import("../types/index").TinaField[];
247
244
  label?: string;
248
245
  path?: string;
249
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
246
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
250
247
  isDetached?: boolean;
251
248
  isAuthCollection?: boolean;
252
249
  }[];
@@ -278,13 +275,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
278
275
  name?: string;
279
276
  templates?: {
280
277
  name?: string;
281
- fields?: import("..").TinaField[];
278
+ fields?: import("../types/index").TinaField[];
282
279
  label?: string;
283
280
  }[];
284
- fields?: import("..").TinaField[];
281
+ fields?: import("../types/index").TinaField[];
285
282
  label?: string;
286
283
  path?: string;
287
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
284
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
288
285
  isDetached?: boolean;
289
286
  isAuthCollection?: boolean;
290
287
  }[];
@@ -316,13 +313,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
316
313
  name?: string;
317
314
  templates?: {
318
315
  name?: string;
319
- fields?: import("..").TinaField[];
316
+ fields?: import("../types/index").TinaField[];
320
317
  label?: string;
321
318
  }[];
322
- fields?: import("..").TinaField[];
319
+ fields?: import("../types/index").TinaField[];
323
320
  label?: string;
324
321
  path?: string;
325
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
322
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
326
323
  isDetached?: boolean;
327
324
  isAuthCollection?: boolean;
328
325
  }[];
@@ -354,13 +351,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
354
351
  name?: string;
355
352
  templates?: {
356
353
  name?: string;
357
- fields?: import("..").TinaField[];
354
+ fields?: import("../types/index").TinaField[];
358
355
  label?: string;
359
356
  }[];
360
- fields?: import("..").TinaField[];
357
+ fields?: import("../types/index").TinaField[];
361
358
  label?: string;
362
359
  path?: string;
363
- format?: "markdown" | "mdx" | "json" | "md" | "yaml" | "yml" | "toml";
360
+ format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
364
361
  isDetached?: boolean;
365
362
  isAuthCollection?: boolean;
366
363
  }[];
@@ -0,0 +1,3 @@
1
+ export declare const duplicateFieldErrorMessage: (fields: string) => string;
2
+ export declare const duplicateTemplateErrorMessage: (templates: string) => string;
3
+ export declare const duplicateCollectionErrorMessage: (collection: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinacms/schema-tools",
3
- "version": "0.0.0-ef282d9-20241024212433",
3
+ "version": "0.0.0-f608f48-20250617065117",
4
4
  "main": "dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "exports": {
@@ -23,16 +23,16 @@
23
23
  ]
24
24
  },
25
25
  "devDependencies": {
26
- "@types/jest": "^29.5.13",
26
+ "@types/jest": "^29.5.14",
27
27
  "@types/micromatch": "^4.0.9",
28
- "@types/react": "^18.3.10",
28
+ "@types/react": "^18.3.18",
29
29
  "@types/yup": "^0.29.14",
30
30
  "jest": "^29.7.0",
31
31
  "react": "^18.3.1",
32
32
  "ts-jest": "^29.2.5",
33
- "typescript": "^5.6.2",
33
+ "typescript": "^5.7.3",
34
34
  "yup": "^0.32.11",
35
- "@tinacms/scripts": "1.3.0"
35
+ "@tinacms/scripts": "0.0.0-f608f48-20250617065117"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "react": ">=16.14.0",
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "picomatch-browser": "2.2.6",
50
50
  "url-pattern": "^1.0.3",
51
- "zod": "^3.23.8"
51
+ "zod": "^3.24.2"
52
52
  },
53
53
  "scripts": {
54
54
  "build": "tinacms-scripts build",