@tinacms/schema-tools 0.0.0-d7c5ec1-20250219020924 → 0.0.0-d813ac1-20251210222143
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/dist/index.js +2469 -2391
- package/dist/schema/TinaSchema.d.ts +21 -5
- package/dist/schema/resolveForm.d.ts +1 -1
- package/dist/types/index.d.ts +132 -23
- package/dist/util/normalizePath.d.ts +8 -0
- package/dist/validate/schema.d.ts +77 -12
- package/dist/validate/tinaCloudSchemaConfig.d.ts +37 -0
- package/package.json +6 -14
- package/dist/index.mjs +0 -2684
|
@@ -28,10 +28,7 @@ export declare class TinaSchema {
|
|
|
28
28
|
} & Schema);
|
|
29
29
|
getIsTitleFieldName: (collection: string) => string;
|
|
30
30
|
getCollectionsByName: (collectionNames: string[]) => Collection<true>[];
|
|
31
|
-
|
|
32
|
-
path: string[];
|
|
33
|
-
field: TinaField;
|
|
34
|
-
}[]>;
|
|
31
|
+
findReferencesFromCollection(name: string): Record<string, string[]>;
|
|
35
32
|
getCollection: (collectionName: string) => Collection<true>;
|
|
36
33
|
getCollections: () => Collection<true>[];
|
|
37
34
|
getCollectionByFullPath: (filepath: string) => Collection<true>;
|
|
@@ -63,7 +60,26 @@ export declare class TinaSchema {
|
|
|
63
60
|
*
|
|
64
61
|
*/
|
|
65
62
|
getTemplatesForCollectable: (collection: Collectable) => CollectionTemplateable;
|
|
66
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Walk all fields in tina schema
|
|
65
|
+
*
|
|
66
|
+
* @param cb callback function invoked for each field
|
|
67
|
+
*/
|
|
68
|
+
walkFields(cb: (args: {
|
|
69
|
+
field: any;
|
|
70
|
+
collection: any;
|
|
71
|
+
path: string;
|
|
72
|
+
isListItem?: boolean;
|
|
73
|
+
}) => void): void;
|
|
74
|
+
/**
|
|
75
|
+
* Walk all fields in Tina Schema
|
|
76
|
+
*
|
|
77
|
+
* This is a legacy version to preserve backwards compatibility for the tina generated schema. It does not
|
|
78
|
+
* traverse fields in object lists in rich-text templates.
|
|
79
|
+
*
|
|
80
|
+
* @param cb callback function invoked for each field
|
|
81
|
+
*/
|
|
82
|
+
legacyWalkFields: (cb: (args: {
|
|
67
83
|
field: TinaField;
|
|
68
84
|
collection: Collection;
|
|
69
85
|
path: string[];
|
|
@@ -13,7 +13,7 @@ export declare const resolveForm: ({ collection, basename, template, schema, }:
|
|
|
13
13
|
fields: {
|
|
14
14
|
[key: string]: unknown;
|
|
15
15
|
name: string;
|
|
16
|
-
component: NonNullable<import("
|
|
16
|
+
component: NonNullable<import("..").TinaField<true>["ui"]>["component"];
|
|
17
17
|
type: string;
|
|
18
18
|
}[];
|
|
19
19
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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;
|
|
@@ -107,10 +125,35 @@ export type UIField<Type, List extends boolean> = {
|
|
|
107
125
|
* @deprecated use `defaultItem` at the collection level instead
|
|
108
126
|
*/
|
|
109
127
|
defaultValue?: List extends true ? Type[] : Type;
|
|
128
|
+
/**
|
|
129
|
+
* The color format for the color picker component.
|
|
130
|
+
* Can be 'hex' or 'rgb'.
|
|
131
|
+
*/
|
|
132
|
+
colorFormat?: 'hex' | 'rgb';
|
|
133
|
+
/**
|
|
134
|
+
* The widget style for the color picker component.
|
|
135
|
+
* Can be 'sketch' or 'block'.
|
|
136
|
+
*/
|
|
137
|
+
widget?: 'sketch' | 'block';
|
|
138
|
+
/**
|
|
139
|
+
* The width of the color picker component.
|
|
140
|
+
* Accepts CSS width values (e.g., '350px').
|
|
141
|
+
*/
|
|
142
|
+
width?: string;
|
|
143
|
+
/**
|
|
144
|
+
* Preset colors for the color picker component.
|
|
145
|
+
* An array of color strings (e.g., ['#D0021B', '#F5A623']).
|
|
146
|
+
*/
|
|
147
|
+
colors?: string[];
|
|
110
148
|
};
|
|
111
149
|
type FieldGeneric<Type, List extends boolean | undefined, ExtraFieldUIProps = {}> = List extends true ? {
|
|
112
150
|
list: true;
|
|
113
151
|
ui?: UIField<Type, true> & ExtraFieldUIProps;
|
|
152
|
+
/**
|
|
153
|
+
* Defines where new items will be added in the list.
|
|
154
|
+
* If not specified, defaults to `append`.
|
|
155
|
+
*/
|
|
156
|
+
addItemBehavior?: 'append' | 'prepend';
|
|
114
157
|
} : List extends false ? {
|
|
115
158
|
list?: false;
|
|
116
159
|
ui?: UIField<Type, false> & ExtraFieldUIProps;
|
|
@@ -150,14 +193,24 @@ type DateFormatProps = {
|
|
|
150
193
|
* dateFormat: 'YYYY MM DD'
|
|
151
194
|
* ```
|
|
152
195
|
*/
|
|
153
|
-
dateFormat?: string;
|
|
154
|
-
timeFormat?: string;
|
|
196
|
+
dateFormat?: string | boolean;
|
|
197
|
+
timeFormat?: string | boolean;
|
|
155
198
|
};
|
|
156
199
|
export type DateTimeField = (FieldGeneric<string, undefined, DateFormatProps> | FieldGeneric<string, true, DateFormatProps> | FieldGeneric<string, false, DateFormatProps>) & BaseField & {
|
|
157
200
|
type: 'datetime';
|
|
158
201
|
};
|
|
159
202
|
export type ImageField = (FieldGeneric<string, undefined> | FieldGeneric<string, true> | FieldGeneric<string, false>) & BaseField & {
|
|
160
203
|
type: 'image';
|
|
204
|
+
/**
|
|
205
|
+
* A function that returns the upload directory path based on the form values.
|
|
206
|
+
* This is used to organize uploaded images into specific folders.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```ts
|
|
210
|
+
* uploadDir: (formValues) => `uploads/${formValues.category}`
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
uploadDir?: (formValues: Record<string, any>) => string;
|
|
161
214
|
};
|
|
162
215
|
type ReferenceFieldOptions = {
|
|
163
216
|
optionComponent?: OptionComponent;
|
|
@@ -212,16 +265,7 @@ export type RichTextField<WithNamespace extends boolean = false> = (FieldGeneric
|
|
|
212
265
|
*
|
|
213
266
|
* Specify `"markdown"` if you're having problems with Tina parsing your content.
|
|
214
267
|
*/
|
|
215
|
-
parser?:
|
|
216
|
-
type: 'markdown';
|
|
217
|
-
/**
|
|
218
|
-
* Tina will escape entities like `<` and `[` by default. You can choose to turn
|
|
219
|
-
* off all escaping, or specify HTML, so `<div>` will not be turned into `\<div>`
|
|
220
|
-
*/
|
|
221
|
-
skipEscaping?: 'all' | 'html' | 'none';
|
|
222
|
-
} | {
|
|
223
|
-
type: 'mdx';
|
|
224
|
-
};
|
|
268
|
+
parser?: Parser;
|
|
225
269
|
};
|
|
226
270
|
export type RichTextTemplate<WithNamespace extends boolean = false> = Template<WithNamespace> & {
|
|
227
271
|
inline?: boolean;
|
|
@@ -377,7 +421,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
377
421
|
/**
|
|
378
422
|
* The Schema is used to define the shape of the content.
|
|
379
423
|
*
|
|
380
|
-
* https://tina.io/docs/
|
|
424
|
+
* https://tina.io/docs/r/the-config-file/
|
|
381
425
|
*/
|
|
382
426
|
schema: Schema;
|
|
383
427
|
/**
|
|
@@ -400,7 +444,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
400
444
|
token?: string | null;
|
|
401
445
|
ui?: {
|
|
402
446
|
/**
|
|
403
|
-
* When using
|
|
447
|
+
* When using TinaCloud's branching feature, provide the URL for your given branch
|
|
404
448
|
*
|
|
405
449
|
* Eg. If you're deplying to Vercel, and your repo name is 'my-app',
|
|
406
450
|
* Vercel's preview URL would be based on the branch:
|
|
@@ -414,11 +458,27 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
414
458
|
* ```
|
|
415
459
|
* [more info](https://vercel.com/docs/concepts/deployments/generated-urls#url-with-git-branch)
|
|
416
460
|
*/
|
|
417
|
-
previewUrl
|
|
461
|
+
previewUrl?: (context: {
|
|
418
462
|
branch: string;
|
|
419
463
|
}) => {
|
|
420
464
|
url: string;
|
|
421
465
|
};
|
|
466
|
+
/**
|
|
467
|
+
* Opt out of update checks - this will prevent the CMS for checking for new versions
|
|
468
|
+
* If true, the CMS will not check for updates.
|
|
469
|
+
* Defaults to false if not specified.
|
|
470
|
+
*/
|
|
471
|
+
optOutOfUpdateCheck?: boolean;
|
|
472
|
+
/**
|
|
473
|
+
* Regular expression pattern that folder names must match when creating new folders.
|
|
474
|
+
* Only applies to newly created folders, not existing ones.
|
|
475
|
+
*
|
|
476
|
+
* @example "^[a-z0-9-]+$" - allows lowercase letters, numbers, and hyphens only
|
|
477
|
+
* @example "^[A-Za-z0-9_-]+$" - allows letters, numbers, underscores, and hyphens
|
|
478
|
+
*/
|
|
479
|
+
regexValidation?: {
|
|
480
|
+
folderNameRegex?: string;
|
|
481
|
+
};
|
|
422
482
|
};
|
|
423
483
|
/**
|
|
424
484
|
* Configurations for the autogenerated GraphQL HTTP client
|
|
@@ -498,7 +558,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
498
558
|
} | {
|
|
499
559
|
/**
|
|
500
560
|
* Use Git-backed assets for media, these values will
|
|
501
|
-
* [Learn more](https://tina.io/docs/
|
|
561
|
+
* [Learn more](https://tina.io/docs/r/repo-based-media/)
|
|
502
562
|
*/
|
|
503
563
|
tina: {
|
|
504
564
|
/**
|
|
@@ -518,6 +578,54 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
518
578
|
loadCustomStore?: never;
|
|
519
579
|
accept?: string | string[];
|
|
520
580
|
};
|
|
581
|
+
/**
|
|
582
|
+
* Configuration for repository-related UI features.
|
|
583
|
+
*
|
|
584
|
+
* This allows you to configure how the CMS displays repository information
|
|
585
|
+
* and generates links to view file history in your Git provider (e.g., GitHub, GitLab).
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
*
|
|
589
|
+
* repoProvider: {
|
|
590
|
+
* defaultBranchName: 'main',
|
|
591
|
+
* historyUrl: ({ relativePath, branch }) => ({
|
|
592
|
+
* url: `https://github.com/owner/repo/commits/${branch}/${relativePath}`
|
|
593
|
+
* })
|
|
594
|
+
* }
|
|
595
|
+
* */
|
|
596
|
+
repoProvider?: {
|
|
597
|
+
/**
|
|
598
|
+
* The default branch name to use when in local mode or when no branch is specified.
|
|
599
|
+
* When not in local mode, TinaCMS will use the branch selected in the editor.
|
|
600
|
+
*
|
|
601
|
+
* This is typically your main/master branch name (e.g., "main", "master").
|
|
602
|
+
*/
|
|
603
|
+
defaultBranchName?: string;
|
|
604
|
+
/**
|
|
605
|
+
* A function that generates a URL to view the commit history for a specific file.
|
|
606
|
+
*
|
|
607
|
+
* This URL is used to link to your Git provider's history view (e.g., GitHub's commits page).
|
|
608
|
+
* The function receives the file's relative path and current branch, and should return
|
|
609
|
+
* a URL object with the full URL to the history page.
|
|
610
|
+
*
|
|
611
|
+
* @param context - Context object containing file and branch information
|
|
612
|
+
* @param context.relativePath - The relative path of the file from the repository root
|
|
613
|
+
* @param context.branch - The current branch name
|
|
614
|
+
* @returns An object with a `url` property containing the full URL to the history page
|
|
615
|
+
*
|
|
616
|
+
* @example
|
|
617
|
+
*s
|
|
618
|
+
* historyUrl: ({ relativePath, branch }) => ({
|
|
619
|
+
* url: `https://github.com/tinacms/tinacms/commits/${branch}/examples/next-2024/${relativePath}`
|
|
620
|
+
* })
|
|
621
|
+
* */
|
|
622
|
+
historyUrl?: (context: {
|
|
623
|
+
relativePath: string;
|
|
624
|
+
branch: string;
|
|
625
|
+
}) => {
|
|
626
|
+
url: string;
|
|
627
|
+
};
|
|
628
|
+
};
|
|
521
629
|
search?: ({
|
|
522
630
|
/**
|
|
523
631
|
* An instance of a search client like Algolia
|
|
@@ -527,7 +635,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
527
635
|
} | {
|
|
528
636
|
searchClient?: never;
|
|
529
637
|
/**
|
|
530
|
-
* Use the
|
|
638
|
+
* Use the TinaCloud search index
|
|
531
639
|
*/
|
|
532
640
|
tina: {
|
|
533
641
|
/**
|
|
@@ -554,7 +662,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
554
662
|
maxSearchIndexFieldLength?: number;
|
|
555
663
|
};
|
|
556
664
|
/**
|
|
557
|
-
* Used to override the default
|
|
665
|
+
* Used to override the default TinaCloud API URL
|
|
558
666
|
*
|
|
559
667
|
* [mostly for internal use only]
|
|
560
668
|
*/
|
|
@@ -573,7 +681,7 @@ export interface Schema<WithNamespace extends boolean = false> {
|
|
|
573
681
|
/**
|
|
574
682
|
* Collections represent a type of content (EX, blog post, page, author, etc). We recommend using singular naming in a collection (Ex: use post and not posts).
|
|
575
683
|
*
|
|
576
|
-
* https://tina.io/docs/
|
|
684
|
+
* https://tina.io/docs/r/content-modelling-collections/
|
|
577
685
|
*/
|
|
578
686
|
collections: Collection<WithNamespace>[];
|
|
579
687
|
/**
|
|
@@ -587,7 +695,7 @@ interface BaseCollection {
|
|
|
587
695
|
name: string;
|
|
588
696
|
path: string;
|
|
589
697
|
indexes?: IndexType[];
|
|
590
|
-
format?:
|
|
698
|
+
format?: ContentFormat;
|
|
591
699
|
ui?: UICollection;
|
|
592
700
|
/**
|
|
593
701
|
* @deprecated - use `ui.defaultItem` on the each `template` instead
|
|
@@ -596,7 +704,7 @@ interface BaseCollection {
|
|
|
596
704
|
/**
|
|
597
705
|
* This format will be used to parse the markdown frontmatter
|
|
598
706
|
*/
|
|
599
|
-
frontmatterFormat?:
|
|
707
|
+
frontmatterFormat?: ContentFrontmatterFormat;
|
|
600
708
|
/**
|
|
601
709
|
* The delimiters used to parse the frontmatter.
|
|
602
710
|
*/
|
|
@@ -612,7 +720,7 @@ type TemplateCollection<WithNamespace extends boolean = false> = {
|
|
|
612
720
|
/**
|
|
613
721
|
* In most cases, just using fields is enough, however templates can be used when there are multiple variants of the same collection or object. For example in a "page" collection there might be a need for a marketing page template and a content page template, both under the collection "page".
|
|
614
722
|
*
|
|
615
|
-
* https://tina.io/docs/
|
|
723
|
+
* https://tina.io/docs/r/content-modelling-templates/
|
|
616
724
|
*/
|
|
617
725
|
templates: Template<WithNamespace>[];
|
|
618
726
|
fields?: undefined;
|
|
@@ -621,7 +729,7 @@ type FieldCollection<WithNamespace extends boolean = false> = {
|
|
|
621
729
|
/**
|
|
622
730
|
* Fields define the shape of the content and the user input.
|
|
623
731
|
*
|
|
624
|
-
* https://tina.io/docs/
|
|
732
|
+
* https://tina.io/docs/r/string-fields/
|
|
625
733
|
*/
|
|
626
734
|
fields: TinaField<WithNamespace>[];
|
|
627
735
|
templates?: undefined;
|
|
@@ -678,6 +786,7 @@ export interface UICollection<Form = any, CMS = any, TinaForm = any> {
|
|
|
678
786
|
allowedActions?: {
|
|
679
787
|
create?: boolean;
|
|
680
788
|
delete?: boolean;
|
|
789
|
+
createFolder?: boolean;
|
|
681
790
|
createNestedFolder?: boolean;
|
|
682
791
|
};
|
|
683
792
|
/**
|
|
@@ -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;
|
|
@@ -3,21 +3,21 @@ export declare const CollectionBaseSchema: z.ZodObject<{
|
|
|
3
3
|
label: z.ZodOptional<z.ZodString>;
|
|
4
4
|
name: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
5
5
|
path: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
6
|
-
format: z.ZodOptional<z.ZodEnum<["
|
|
6
|
+
format: z.ZodOptional<z.ZodEnum<["mdx", "md", "markdown", "json", "yaml", "yml", "toml"]>>;
|
|
7
7
|
isAuthCollection: z.ZodOptional<z.ZodBoolean>;
|
|
8
8
|
isDetached: z.ZodOptional<z.ZodBoolean>;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
10
|
name?: string;
|
|
11
11
|
label?: string;
|
|
12
12
|
path?: string;
|
|
13
|
-
format?: "
|
|
13
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
14
14
|
isDetached?: boolean;
|
|
15
15
|
isAuthCollection?: boolean;
|
|
16
16
|
}, {
|
|
17
17
|
name?: string;
|
|
18
18
|
label?: string;
|
|
19
19
|
path?: string;
|
|
20
|
-
format?: "
|
|
20
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
21
21
|
isDetached?: boolean;
|
|
22
22
|
isAuthCollection?: boolean;
|
|
23
23
|
}>;
|
|
@@ -26,7 +26,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
26
26
|
label: z.ZodOptional<z.ZodString>;
|
|
27
27
|
name: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
28
28
|
path: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
|
29
|
-
format: z.ZodOptional<z.ZodEnum<["
|
|
29
|
+
format: z.ZodOptional<z.ZodEnum<["mdx", "md", "markdown", "json", "yaml", "yml", "toml"]>>;
|
|
30
30
|
isAuthCollection: z.ZodOptional<z.ZodBoolean>;
|
|
31
31
|
isDetached: z.ZodOptional<z.ZodBoolean>;
|
|
32
32
|
}, {
|
|
@@ -70,7 +70,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
70
70
|
fields?: import("..").TinaField[];
|
|
71
71
|
label?: string;
|
|
72
72
|
path?: string;
|
|
73
|
-
format?: "
|
|
73
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
74
74
|
isDetached?: boolean;
|
|
75
75
|
isAuthCollection?: boolean;
|
|
76
76
|
}, {
|
|
@@ -83,7 +83,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
83
83
|
fields?: import("..").TinaField[];
|
|
84
84
|
label?: string;
|
|
85
85
|
path?: string;
|
|
86
|
-
format?: "
|
|
86
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
87
87
|
isDetached?: boolean;
|
|
88
88
|
isAuthCollection?: boolean;
|
|
89
89
|
}>, {
|
|
@@ -96,7 +96,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
96
96
|
fields?: import("..").TinaField[];
|
|
97
97
|
label?: string;
|
|
98
98
|
path?: string;
|
|
99
|
-
format?: "
|
|
99
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
100
100
|
isDetached?: boolean;
|
|
101
101
|
isAuthCollection?: boolean;
|
|
102
102
|
}, {
|
|
@@ -109,7 +109,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
109
109
|
fields?: import("..").TinaField[];
|
|
110
110
|
label?: string;
|
|
111
111
|
path?: string;
|
|
112
|
-
format?: "
|
|
112
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
113
113
|
isDetached?: boolean;
|
|
114
114
|
isAuthCollection?: boolean;
|
|
115
115
|
}>, "many">;
|
|
@@ -187,6 +187,29 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
187
187
|
searchClient?: any;
|
|
188
188
|
indexBatchSize?: number;
|
|
189
189
|
}>>;
|
|
190
|
+
ui: z.ZodOptional<z.ZodObject<{
|
|
191
|
+
previewUrl: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
192
|
+
optOutOfUpdateCheck: z.ZodOptional<z.ZodBoolean>;
|
|
193
|
+
regexValidation: z.ZodOptional<z.ZodObject<{
|
|
194
|
+
folderNameRegex: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
195
|
+
}, "strip", z.ZodTypeAny, {
|
|
196
|
+
folderNameRegex?: string;
|
|
197
|
+
}, {
|
|
198
|
+
folderNameRegex?: string;
|
|
199
|
+
}>>;
|
|
200
|
+
}, "strip", z.ZodTypeAny, {
|
|
201
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
202
|
+
optOutOfUpdateCheck?: boolean;
|
|
203
|
+
regexValidation?: {
|
|
204
|
+
folderNameRegex?: string;
|
|
205
|
+
};
|
|
206
|
+
}, {
|
|
207
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
208
|
+
optOutOfUpdateCheck?: boolean;
|
|
209
|
+
regexValidation?: {
|
|
210
|
+
folderNameRegex?: string;
|
|
211
|
+
};
|
|
212
|
+
}>>;
|
|
190
213
|
}, "strip", z.ZodTypeAny, {
|
|
191
214
|
search?: {
|
|
192
215
|
maxSearchIndexFieldLength?: number;
|
|
@@ -198,6 +221,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
198
221
|
searchClient?: any;
|
|
199
222
|
indexBatchSize?: number;
|
|
200
223
|
};
|
|
224
|
+
ui?: {
|
|
225
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
226
|
+
optOutOfUpdateCheck?: boolean;
|
|
227
|
+
regexValidation?: {
|
|
228
|
+
folderNameRegex?: string;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
201
231
|
client?: {
|
|
202
232
|
referenceDepth?: number;
|
|
203
233
|
};
|
|
@@ -220,6 +250,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
220
250
|
searchClient?: any;
|
|
221
251
|
indexBatchSize?: number;
|
|
222
252
|
};
|
|
253
|
+
ui?: {
|
|
254
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
255
|
+
optOutOfUpdateCheck?: boolean;
|
|
256
|
+
regexValidation?: {
|
|
257
|
+
folderNameRegex?: string;
|
|
258
|
+
};
|
|
259
|
+
};
|
|
223
260
|
client?: {
|
|
224
261
|
referenceDepth?: number;
|
|
225
262
|
};
|
|
@@ -243,7 +280,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
243
280
|
fields?: import("..").TinaField[];
|
|
244
281
|
label?: string;
|
|
245
282
|
path?: string;
|
|
246
|
-
format?: "
|
|
283
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
247
284
|
isDetached?: boolean;
|
|
248
285
|
isAuthCollection?: boolean;
|
|
249
286
|
}[];
|
|
@@ -258,6 +295,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
258
295
|
searchClient?: any;
|
|
259
296
|
indexBatchSize?: number;
|
|
260
297
|
};
|
|
298
|
+
ui?: {
|
|
299
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
300
|
+
optOutOfUpdateCheck?: boolean;
|
|
301
|
+
regexValidation?: {
|
|
302
|
+
folderNameRegex?: string;
|
|
303
|
+
};
|
|
304
|
+
};
|
|
261
305
|
client?: {
|
|
262
306
|
referenceDepth?: number;
|
|
263
307
|
};
|
|
@@ -281,7 +325,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
281
325
|
fields?: import("..").TinaField[];
|
|
282
326
|
label?: string;
|
|
283
327
|
path?: string;
|
|
284
|
-
format?: "
|
|
328
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
285
329
|
isDetached?: boolean;
|
|
286
330
|
isAuthCollection?: boolean;
|
|
287
331
|
}[];
|
|
@@ -296,6 +340,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
296
340
|
searchClient?: any;
|
|
297
341
|
indexBatchSize?: number;
|
|
298
342
|
};
|
|
343
|
+
ui?: {
|
|
344
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
345
|
+
optOutOfUpdateCheck?: boolean;
|
|
346
|
+
regexValidation?: {
|
|
347
|
+
folderNameRegex?: string;
|
|
348
|
+
};
|
|
349
|
+
};
|
|
299
350
|
client?: {
|
|
300
351
|
referenceDepth?: number;
|
|
301
352
|
};
|
|
@@ -319,7 +370,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
319
370
|
fields?: import("..").TinaField[];
|
|
320
371
|
label?: string;
|
|
321
372
|
path?: string;
|
|
322
|
-
format?: "
|
|
373
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
323
374
|
isDetached?: boolean;
|
|
324
375
|
isAuthCollection?: boolean;
|
|
325
376
|
}[];
|
|
@@ -334,6 +385,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
334
385
|
searchClient?: any;
|
|
335
386
|
indexBatchSize?: number;
|
|
336
387
|
};
|
|
388
|
+
ui?: {
|
|
389
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
390
|
+
optOutOfUpdateCheck?: boolean;
|
|
391
|
+
regexValidation?: {
|
|
392
|
+
folderNameRegex?: string;
|
|
393
|
+
};
|
|
394
|
+
};
|
|
337
395
|
client?: {
|
|
338
396
|
referenceDepth?: number;
|
|
339
397
|
};
|
|
@@ -357,7 +415,7 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
357
415
|
fields?: import("..").TinaField[];
|
|
358
416
|
label?: string;
|
|
359
417
|
path?: string;
|
|
360
|
-
format?: "
|
|
418
|
+
format?: "mdx" | "md" | "markdown" | "json" | "yaml" | "yml" | "toml";
|
|
361
419
|
isDetached?: boolean;
|
|
362
420
|
isAuthCollection?: boolean;
|
|
363
421
|
}[];
|
|
@@ -372,6 +430,13 @@ export declare const TinaCloudSchemaZod: z.ZodEffects<z.ZodObject<{
|
|
|
372
430
|
searchClient?: any;
|
|
373
431
|
indexBatchSize?: number;
|
|
374
432
|
};
|
|
433
|
+
ui?: {
|
|
434
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
435
|
+
optOutOfUpdateCheck?: boolean;
|
|
436
|
+
regexValidation?: {
|
|
437
|
+
folderNameRegex?: string;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
375
440
|
client?: {
|
|
376
441
|
referenceDepth?: number;
|
|
377
442
|
};
|
|
@@ -77,6 +77,29 @@ export declare const tinaConfigZod: z.ZodObject<{
|
|
|
77
77
|
searchClient?: any;
|
|
78
78
|
indexBatchSize?: number;
|
|
79
79
|
}>>;
|
|
80
|
+
ui: z.ZodOptional<z.ZodObject<{
|
|
81
|
+
previewUrl: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
82
|
+
optOutOfUpdateCheck: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
regexValidation: z.ZodOptional<z.ZodObject<{
|
|
84
|
+
folderNameRegex: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
85
|
+
}, "strip", z.ZodTypeAny, {
|
|
86
|
+
folderNameRegex?: string;
|
|
87
|
+
}, {
|
|
88
|
+
folderNameRegex?: string;
|
|
89
|
+
}>>;
|
|
90
|
+
}, "strip", z.ZodTypeAny, {
|
|
91
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
92
|
+
optOutOfUpdateCheck?: boolean;
|
|
93
|
+
regexValidation?: {
|
|
94
|
+
folderNameRegex?: string;
|
|
95
|
+
};
|
|
96
|
+
}, {
|
|
97
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
98
|
+
optOutOfUpdateCheck?: boolean;
|
|
99
|
+
regexValidation?: {
|
|
100
|
+
folderNameRegex?: string;
|
|
101
|
+
};
|
|
102
|
+
}>>;
|
|
80
103
|
}, "strip", z.ZodTypeAny, {
|
|
81
104
|
search?: {
|
|
82
105
|
maxSearchIndexFieldLength?: number;
|
|
@@ -88,6 +111,13 @@ export declare const tinaConfigZod: z.ZodObject<{
|
|
|
88
111
|
searchClient?: any;
|
|
89
112
|
indexBatchSize?: number;
|
|
90
113
|
};
|
|
114
|
+
ui?: {
|
|
115
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
116
|
+
optOutOfUpdateCheck?: boolean;
|
|
117
|
+
regexValidation?: {
|
|
118
|
+
folderNameRegex?: string;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
91
121
|
client?: {
|
|
92
122
|
referenceDepth?: number;
|
|
93
123
|
};
|
|
@@ -110,6 +140,13 @@ export declare const tinaConfigZod: z.ZodObject<{
|
|
|
110
140
|
searchClient?: any;
|
|
111
141
|
indexBatchSize?: number;
|
|
112
142
|
};
|
|
143
|
+
ui?: {
|
|
144
|
+
previewUrl?: (...args: unknown[]) => unknown;
|
|
145
|
+
optOutOfUpdateCheck?: boolean;
|
|
146
|
+
regexValidation?: {
|
|
147
|
+
folderNameRegex?: string;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
113
150
|
client?: {
|
|
114
151
|
referenceDepth?: number;
|
|
115
152
|
};
|
package/package.json
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinacms/schema-tools",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.0.0-d813ac1-20251210222143",
|
|
4
5
|
"main": "dist/index.js",
|
|
5
|
-
"
|
|
6
|
-
"exports": {
|
|
7
|
-
".": {
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"import": "./dist/index.mjs",
|
|
10
|
-
"require": "./dist/index.js"
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
"typings": "dist/index.d.ts",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
14
7
|
"files": [
|
|
15
8
|
"dist"
|
|
16
9
|
],
|
|
@@ -26,17 +19,16 @@
|
|
|
26
19
|
"@types/jest": "^29.5.14",
|
|
27
20
|
"@types/micromatch": "^4.0.9",
|
|
28
21
|
"@types/react": "^18.3.18",
|
|
29
|
-
"@types/yup": "^0.29.14",
|
|
30
22
|
"jest": "^29.7.0",
|
|
31
23
|
"react": "^18.3.1",
|
|
32
24
|
"ts-jest": "^29.2.5",
|
|
33
25
|
"typescript": "^5.7.3",
|
|
34
|
-
"yup": "^
|
|
35
|
-
"@tinacms/scripts": "
|
|
26
|
+
"yup": "^1.6.1",
|
|
27
|
+
"@tinacms/scripts": "1.4.2"
|
|
36
28
|
},
|
|
37
29
|
"peerDependencies": {
|
|
38
30
|
"react": ">=16.14.0",
|
|
39
|
-
"yup": "^0.
|
|
31
|
+
"yup": "^1.0.0"
|
|
40
32
|
},
|
|
41
33
|
"publishConfig": {
|
|
42
34
|
"registry": "https://registry.npmjs.org"
|