@tinacms/schema-tools 0.0.0-d9672bc-20250218033222 → 0.0.0-df15996-20250420014759
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.d.ts +1 -6
- package/dist/index.js +38 -1
- package/dist/index.mjs +38 -1
- package/dist/schema/TinaSchema.d.ts +19 -1
- package/dist/types/index.d.ts +4 -3
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1945,8 +1945,29 @@
|
|
|
1945
1945
|
}
|
|
1946
1946
|
}
|
|
1947
1947
|
};
|
|
1948
|
+
this.legacyWalkFields = (cb) => {
|
|
1949
|
+
const walk = (collectionOrObject, collection, path) => {
|
|
1950
|
+
if (collectionOrObject.templates) {
|
|
1951
|
+
collectionOrObject.templates.forEach((template) => {
|
|
1952
|
+
template.fields.forEach((field) => {
|
|
1953
|
+
cb({ field, collection, path: [...path, template.name] });
|
|
1954
|
+
});
|
|
1955
|
+
});
|
|
1956
|
+
}
|
|
1957
|
+
if (collectionOrObject.fields) {
|
|
1958
|
+
collectionOrObject.fields.forEach((field) => {
|
|
1959
|
+
cb({ field, collection, path: [...path, field.name] });
|
|
1960
|
+
if (field.type === "rich-text" || field.type === "object") {
|
|
1961
|
+
walk(field, collection, [...path, field.name]);
|
|
1962
|
+
}
|
|
1963
|
+
});
|
|
1964
|
+
}
|
|
1965
|
+
};
|
|
1966
|
+
const collections = this.getCollections();
|
|
1967
|
+
collections.forEach((collection) => walk(collection, collection, []));
|
|
1968
|
+
};
|
|
1948
1969
|
this.schema = config;
|
|
1949
|
-
this.
|
|
1970
|
+
this.legacyWalkFields(({ field, collection }) => {
|
|
1950
1971
|
if (!("searchable" in field)) {
|
|
1951
1972
|
if (field.type === "image") {
|
|
1952
1973
|
field.searchable = false;
|
|
@@ -1984,6 +2005,11 @@
|
|
|
1984
2005
|
});
|
|
1985
2006
|
return result;
|
|
1986
2007
|
}
|
|
2008
|
+
/**
|
|
2009
|
+
* Walk all fields in tina schema
|
|
2010
|
+
*
|
|
2011
|
+
* @param cb callback function invoked for each field
|
|
2012
|
+
*/
|
|
1987
2013
|
walkFields(cb) {
|
|
1988
2014
|
const walk = (collectionOrObject, collection, path = "$") => {
|
|
1989
2015
|
if (collectionOrObject.templates) {
|
|
@@ -2004,6 +2030,17 @@
|
|
|
2004
2030
|
cb({ field, collection, path: fieldPath });
|
|
2005
2031
|
if (field.type === "object" && field.fields) {
|
|
2006
2032
|
walk(field, collection, fieldPath);
|
|
2033
|
+
} else if (field.templates) {
|
|
2034
|
+
field.templates.forEach((template) => {
|
|
2035
|
+
const templatePath = `${fieldPath}.${template.name}`;
|
|
2036
|
+
template.fields.forEach((field2) => {
|
|
2037
|
+
const fieldPath2 = field2.list ? `${templatePath}[*].${field2.name}` : `${templatePath}.${field2.name}`;
|
|
2038
|
+
cb({ field: field2, collection, path: fieldPath2 });
|
|
2039
|
+
if (field2.type === "object") {
|
|
2040
|
+
walk(field2, collection, fieldPath2);
|
|
2041
|
+
}
|
|
2042
|
+
});
|
|
2043
|
+
});
|
|
2007
2044
|
}
|
|
2008
2045
|
});
|
|
2009
2046
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1927,8 +1927,29 @@ class TinaSchema {
|
|
|
1927
1927
|
}
|
|
1928
1928
|
}
|
|
1929
1929
|
};
|
|
1930
|
+
this.legacyWalkFields = (cb) => {
|
|
1931
|
+
const walk = (collectionOrObject, collection, path) => {
|
|
1932
|
+
if (collectionOrObject.templates) {
|
|
1933
|
+
collectionOrObject.templates.forEach((template) => {
|
|
1934
|
+
template.fields.forEach((field) => {
|
|
1935
|
+
cb({ field, collection, path: [...path, template.name] });
|
|
1936
|
+
});
|
|
1937
|
+
});
|
|
1938
|
+
}
|
|
1939
|
+
if (collectionOrObject.fields) {
|
|
1940
|
+
collectionOrObject.fields.forEach((field) => {
|
|
1941
|
+
cb({ field, collection, path: [...path, field.name] });
|
|
1942
|
+
if (field.type === "rich-text" || field.type === "object") {
|
|
1943
|
+
walk(field, collection, [...path, field.name]);
|
|
1944
|
+
}
|
|
1945
|
+
});
|
|
1946
|
+
}
|
|
1947
|
+
};
|
|
1948
|
+
const collections = this.getCollections();
|
|
1949
|
+
collections.forEach((collection) => walk(collection, collection, []));
|
|
1950
|
+
};
|
|
1930
1951
|
this.schema = config;
|
|
1931
|
-
this.
|
|
1952
|
+
this.legacyWalkFields(({ field, collection }) => {
|
|
1932
1953
|
if (!("searchable" in field)) {
|
|
1933
1954
|
if (field.type === "image") {
|
|
1934
1955
|
field.searchable = false;
|
|
@@ -1966,6 +1987,11 @@ class TinaSchema {
|
|
|
1966
1987
|
});
|
|
1967
1988
|
return result;
|
|
1968
1989
|
}
|
|
1990
|
+
/**
|
|
1991
|
+
* Walk all fields in tina schema
|
|
1992
|
+
*
|
|
1993
|
+
* @param cb callback function invoked for each field
|
|
1994
|
+
*/
|
|
1969
1995
|
walkFields(cb) {
|
|
1970
1996
|
const walk = (collectionOrObject, collection, path = "$") => {
|
|
1971
1997
|
if (collectionOrObject.templates) {
|
|
@@ -1986,6 +2012,17 @@ class TinaSchema {
|
|
|
1986
2012
|
cb({ field, collection, path: fieldPath });
|
|
1987
2013
|
if (field.type === "object" && field.fields) {
|
|
1988
2014
|
walk(field, collection, fieldPath);
|
|
2015
|
+
} else if (field.templates) {
|
|
2016
|
+
field.templates.forEach((template) => {
|
|
2017
|
+
const templatePath = `${fieldPath}.${template.name}`;
|
|
2018
|
+
template.fields.forEach((field2) => {
|
|
2019
|
+
const fieldPath2 = field2.list ? `${templatePath}[*].${field2.name}` : `${templatePath}.${field2.name}`;
|
|
2020
|
+
cb({ field: field2, collection, path: fieldPath2 });
|
|
2021
|
+
if (field2.type === "object") {
|
|
2022
|
+
walk(field2, collection, fieldPath2);
|
|
2023
|
+
}
|
|
2024
|
+
});
|
|
2025
|
+
});
|
|
1989
2026
|
}
|
|
1990
2027
|
});
|
|
1991
2028
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Schema, Collection, Template, Collectable, CollectionTemplateable } from '../types/index';
|
|
1
|
+
import type { Schema, Collection, Template, Collectable, CollectionTemplateable, TinaField } from '../types/index';
|
|
2
2
|
type Version = {
|
|
3
3
|
fullVersion: string;
|
|
4
4
|
major: string;
|
|
@@ -60,12 +60,30 @@ export declare class TinaSchema {
|
|
|
60
60
|
*
|
|
61
61
|
*/
|
|
62
62
|
getTemplatesForCollectable: (collection: Collectable) => CollectionTemplateable;
|
|
63
|
+
/**
|
|
64
|
+
* Walk all fields in tina schema
|
|
65
|
+
*
|
|
66
|
+
* @param cb callback function invoked for each field
|
|
67
|
+
*/
|
|
63
68
|
walkFields(cb: (args: {
|
|
64
69
|
field: any;
|
|
65
70
|
collection: any;
|
|
66
71
|
path: string;
|
|
67
72
|
isListItem?: boolean;
|
|
68
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: {
|
|
83
|
+
field: TinaField;
|
|
84
|
+
collection: Collection;
|
|
85
|
+
path: string[];
|
|
86
|
+
}) => void) => void;
|
|
69
87
|
/**
|
|
70
88
|
* This function returns an array of glob matches for a given collection.
|
|
71
89
|
*
|
package/dist/types/index.d.ts
CHANGED
|
@@ -363,6 +363,7 @@ interface AuthHooks {
|
|
|
363
363
|
type AuthOptions = AuthHooks & AuthProvider;
|
|
364
364
|
export interface Config<CMSCallback = undefined, FormifyCallback = undefined, DocumentCreatorCallback = undefined, Store = undefined, SearchClient = undefined> {
|
|
365
365
|
contentApiUrlOverride?: string;
|
|
366
|
+
oauth2?: boolean;
|
|
366
367
|
authProvider?: AuthProvider;
|
|
367
368
|
admin?: {
|
|
368
369
|
/**
|
|
@@ -400,7 +401,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
400
401
|
token?: string | null;
|
|
401
402
|
ui?: {
|
|
402
403
|
/**
|
|
403
|
-
* When using
|
|
404
|
+
* When using TinaCloud's branching feature, provide the URL for your given branch
|
|
404
405
|
*
|
|
405
406
|
* Eg. If you're deplying to Vercel, and your repo name is 'my-app',
|
|
406
407
|
* Vercel's preview URL would be based on the branch:
|
|
@@ -527,7 +528,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
527
528
|
} | {
|
|
528
529
|
searchClient?: never;
|
|
529
530
|
/**
|
|
530
|
-
* Use the
|
|
531
|
+
* Use the TinaCloud search index
|
|
531
532
|
*/
|
|
532
533
|
tina: {
|
|
533
534
|
/**
|
|
@@ -554,7 +555,7 @@ export interface Config<CMSCallback = undefined, FormifyCallback = undefined, Do
|
|
|
554
555
|
maxSearchIndexFieldLength?: number;
|
|
555
556
|
};
|
|
556
557
|
/**
|
|
557
|
-
* Used to override the default
|
|
558
|
+
* Used to override the default TinaCloud API URL
|
|
558
559
|
*
|
|
559
560
|
* [mostly for internal use only]
|
|
560
561
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinacms/schema-tools",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-df15996-20250420014759",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"exports": {
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/jest": "^29.5.14",
|
|
27
27
|
"@types/micromatch": "^4.0.9",
|
|
28
|
-
"@types/react": "^18.3.
|
|
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.
|
|
33
|
+
"typescript": "^5.7.3",
|
|
34
34
|
"yup": "^0.32.11",
|
|
35
|
-
"@tinacms/scripts": "1.3.
|
|
35
|
+
"@tinacms/scripts": "1.3.4"
|
|
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.
|
|
51
|
+
"zod": "^3.24.2"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"build": "tinacms-scripts build",
|