@tinacms/graphql 0.0.0-db8aa8e-20250228034006 → 0.0.0-dced6ab-20250611061422
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 +144 -0
- package/dist/builder/index.d.ts +2 -2
- package/dist/database/bridge/filesystem.d.ts +1 -1
- package/dist/database/util.d.ts +5 -8
- package/dist/index.js +327 -247
- package/dist/index.mjs +207 -101
- package/dist/resolver/index.d.ts +8 -5
- package/dist/resolver/media-utils.d.ts +3 -3
- package/dist/schema/createSchema.d.ts +0 -3
- package/dist/schema/validate.d.ts +0 -3
- package/package.json +5 -7
- package/readme.md +0 -194
package/dist/index.mjs
CHANGED
|
@@ -1847,7 +1847,7 @@ var Builder = class {
|
|
|
1847
1847
|
* ```
|
|
1848
1848
|
*
|
|
1849
1849
|
* @public
|
|
1850
|
-
* @param collection a
|
|
1850
|
+
* @param collection a TinaCloud collection
|
|
1851
1851
|
*/
|
|
1852
1852
|
this.collectionFragment = async (collection) => {
|
|
1853
1853
|
const name = NAMER.dataTypeName(collection.namespace);
|
|
@@ -3019,7 +3019,7 @@ var validateField = async (field) => {
|
|
|
3019
3019
|
// package.json
|
|
3020
3020
|
var package_default = {
|
|
3021
3021
|
name: "@tinacms/graphql",
|
|
3022
|
-
version: "1.5.
|
|
3022
|
+
version: "1.5.18",
|
|
3023
3023
|
main: "dist/index.js",
|
|
3024
3024
|
module: "dist/index.mjs",
|
|
3025
3025
|
typings: "dist/index.d.ts",
|
|
@@ -3045,33 +3045,32 @@ var package_default = {
|
|
|
3045
3045
|
types: "pnpm tsc",
|
|
3046
3046
|
build: "tinacms-scripts build",
|
|
3047
3047
|
docs: "pnpm typedoc",
|
|
3048
|
-
serve: "pnpm nodemon dist/server.js",
|
|
3049
3048
|
test: "vitest run",
|
|
3050
3049
|
"test-watch": "vitest"
|
|
3051
3050
|
},
|
|
3052
3051
|
dependencies: {
|
|
3053
|
-
"@iarna/toml": "
|
|
3052
|
+
"@iarna/toml": "catalog:",
|
|
3054
3053
|
"@tinacms/mdx": "workspace:*",
|
|
3055
3054
|
"@tinacms/schema-tools": "workspace:*",
|
|
3056
|
-
"abstract-level": "
|
|
3055
|
+
"abstract-level": "catalog:",
|
|
3057
3056
|
"date-fns": "^2.30.0",
|
|
3058
|
-
"fast-glob": "
|
|
3059
|
-
"fs-extra": "
|
|
3060
|
-
"glob-parent": "
|
|
3057
|
+
"fast-glob": "catalog:",
|
|
3058
|
+
"fs-extra": "catalog:",
|
|
3059
|
+
"glob-parent": "catalog:",
|
|
3061
3060
|
graphql: "15.8.0",
|
|
3062
|
-
"gray-matter": "
|
|
3063
|
-
"isomorphic-git": "
|
|
3064
|
-
"js-sha1": "
|
|
3061
|
+
"gray-matter": "catalog:",
|
|
3062
|
+
"isomorphic-git": "catalog:",
|
|
3063
|
+
"js-sha1": "catalog:",
|
|
3065
3064
|
"js-yaml": "^3.14.1",
|
|
3066
|
-
"jsonpath-plus": "
|
|
3067
|
-
"lodash.clonedeep": "
|
|
3068
|
-
"lodash.set": "
|
|
3069
|
-
"lodash.uniqby": "
|
|
3070
|
-
"many-level": "
|
|
3071
|
-
micromatch: "
|
|
3072
|
-
"normalize-path": "
|
|
3073
|
-
"readable-stream": "
|
|
3074
|
-
scmp: "
|
|
3065
|
+
"jsonpath-plus": "catalog:",
|
|
3066
|
+
"lodash.clonedeep": "catalog:",
|
|
3067
|
+
"lodash.set": "catalog:",
|
|
3068
|
+
"lodash.uniqby": "catalog:",
|
|
3069
|
+
"many-level": "catalog:",
|
|
3070
|
+
micromatch: "catalog:",
|
|
3071
|
+
"normalize-path": "catalog:",
|
|
3072
|
+
"readable-stream": "catalog:",
|
|
3073
|
+
scmp: "catalog:",
|
|
3075
3074
|
yup: "^0.32.11"
|
|
3076
3075
|
},
|
|
3077
3076
|
publishConfig: {
|
|
@@ -3086,21 +3085,20 @@ var package_default = {
|
|
|
3086
3085
|
"@tinacms/scripts": "workspace:*",
|
|
3087
3086
|
"@types/cors": "^2.8.17",
|
|
3088
3087
|
"@types/estree": "^0.0.50",
|
|
3089
|
-
"@types/express": "
|
|
3088
|
+
"@types/express": "catalog:",
|
|
3090
3089
|
"@types/fs-extra": "^9.0.13",
|
|
3091
3090
|
"@types/js-yaml": "^3.12.10",
|
|
3092
|
-
"@types/lodash.camelcase": "
|
|
3093
|
-
"@types/lodash.upperfirst": "
|
|
3094
|
-
"@types/lru-cache": "
|
|
3095
|
-
"@types/mdast": "
|
|
3096
|
-
"@types/micromatch": "
|
|
3091
|
+
"@types/lodash.camelcase": "catalog:",
|
|
3092
|
+
"@types/lodash.upperfirst": "catalog:",
|
|
3093
|
+
"@types/lru-cache": "catalog:",
|
|
3094
|
+
"@types/mdast": "catalog:",
|
|
3095
|
+
"@types/micromatch": "catalog:",
|
|
3097
3096
|
"@types/node": "^22.13.1",
|
|
3098
|
-
"@types/normalize-path": "
|
|
3099
|
-
"@types/ws": "
|
|
3097
|
+
"@types/normalize-path": "catalog:",
|
|
3098
|
+
"@types/ws": "catalog:",
|
|
3100
3099
|
"@types/yup": "^0.29.14",
|
|
3101
3100
|
"jest-file-snapshot": "^0.5.0",
|
|
3102
|
-
"memory-level": "
|
|
3103
|
-
nodemon: "3.1.4",
|
|
3101
|
+
"memory-level": "catalog:",
|
|
3104
3102
|
typescript: "^5.7.3",
|
|
3105
3103
|
vite: "^4.5.9",
|
|
3106
3104
|
vitest: "^0.32.4",
|
|
@@ -3260,7 +3258,9 @@ var _buildSchema = async (builder, tinaSchema) => {
|
|
|
3260
3258
|
await builder.buildCreateCollectionFolderMutation()
|
|
3261
3259
|
);
|
|
3262
3260
|
await sequential(collections, async (collection) => {
|
|
3263
|
-
queryTypeDefinitionFields.push(
|
|
3261
|
+
queryTypeDefinitionFields.push(
|
|
3262
|
+
await builder.collectionDocument(collection)
|
|
3263
|
+
);
|
|
3264
3264
|
if (collection.isAuthCollection) {
|
|
3265
3265
|
queryTypeDefinitionFields.push(
|
|
3266
3266
|
await builder.authenticationCollectionDocument(collection)
|
|
@@ -3575,7 +3575,9 @@ var LevelProxyHandler = {
|
|
|
3575
3575
|
throw new Error(`The property, ${property.toString()}, doesn't exist`);
|
|
3576
3576
|
}
|
|
3577
3577
|
if (typeof target[property] !== "function") {
|
|
3578
|
-
throw new Error(
|
|
3578
|
+
throw new Error(
|
|
3579
|
+
`The property, ${property.toString()}, is not a function`
|
|
3580
|
+
);
|
|
3579
3581
|
}
|
|
3580
3582
|
if (property === "get") {
|
|
3581
3583
|
return async (...args) => {
|
|
@@ -4551,8 +4553,14 @@ var makeRefOpsForDocument = (filepath, collection, references, data, opType, lev
|
|
|
4551
4553
|
const references2 = {};
|
|
4552
4554
|
for (const path7 of referencePaths) {
|
|
4553
4555
|
const ref = JSONPath({ path: path7, json: data });
|
|
4556
|
+
if (!ref) {
|
|
4557
|
+
continue;
|
|
4558
|
+
}
|
|
4554
4559
|
if (Array.isArray(ref)) {
|
|
4555
4560
|
for (const r of ref) {
|
|
4561
|
+
if (!r) {
|
|
4562
|
+
continue;
|
|
4563
|
+
}
|
|
4556
4564
|
if (references2[r]) {
|
|
4557
4565
|
references2[r].push(path7);
|
|
4558
4566
|
} else {
|
|
@@ -4802,25 +4810,32 @@ var transformDocumentIntoPayload = async (fullPath, rawData, tinaSchema, config,
|
|
|
4802
4810
|
}
|
|
4803
4811
|
};
|
|
4804
4812
|
var updateObjectWithJsonPath = (obj, path7, oldValue, newValue) => {
|
|
4813
|
+
let updated = false;
|
|
4805
4814
|
if (!path7.includes(".") && !path7.includes("[")) {
|
|
4806
4815
|
if (path7 in obj && obj[path7] === oldValue) {
|
|
4807
4816
|
obj[path7] = newValue;
|
|
4817
|
+
updated = true;
|
|
4808
4818
|
}
|
|
4809
|
-
return obj;
|
|
4819
|
+
return { object: obj, updated };
|
|
4810
4820
|
}
|
|
4811
4821
|
const parentPath = path7.replace(/\.[^.\[\]]+$/, "");
|
|
4812
4822
|
const keyToUpdate = path7.match(/[^.\[\]]+$/)[0];
|
|
4813
|
-
const parents = JSONPath2({
|
|
4823
|
+
const parents = JSONPath2({
|
|
4824
|
+
path: parentPath,
|
|
4825
|
+
json: obj,
|
|
4826
|
+
resultType: "value"
|
|
4827
|
+
});
|
|
4814
4828
|
if (parents.length > 0) {
|
|
4815
4829
|
parents.forEach((parent) => {
|
|
4816
4830
|
if (parent && typeof parent === "object" && keyToUpdate in parent) {
|
|
4817
4831
|
if (parent[keyToUpdate] === oldValue) {
|
|
4818
4832
|
parent[keyToUpdate] = newValue;
|
|
4833
|
+
updated = true;
|
|
4819
4834
|
}
|
|
4820
4835
|
}
|
|
4821
4836
|
});
|
|
4822
4837
|
}
|
|
4823
|
-
return obj;
|
|
4838
|
+
return { object: obj, updated };
|
|
4824
4839
|
};
|
|
4825
4840
|
var Resolver = class {
|
|
4826
4841
|
constructor(init) {
|
|
@@ -4837,7 +4852,9 @@ var Resolver = class {
|
|
|
4837
4852
|
};
|
|
4838
4853
|
this.getRaw = async (fullPath) => {
|
|
4839
4854
|
if (typeof fullPath !== "string") {
|
|
4840
|
-
throw new Error(
|
|
4855
|
+
throw new Error(
|
|
4856
|
+
`fullPath must be of type string for getDocument request`
|
|
4857
|
+
);
|
|
4841
4858
|
}
|
|
4842
4859
|
return this.database.get(fullPath);
|
|
4843
4860
|
};
|
|
@@ -4866,7 +4883,9 @@ var Resolver = class {
|
|
|
4866
4883
|
};
|
|
4867
4884
|
this.getDocument = async (fullPath, opts = {}) => {
|
|
4868
4885
|
if (typeof fullPath !== "string") {
|
|
4869
|
-
throw new Error(
|
|
4886
|
+
throw new Error(
|
|
4887
|
+
`fullPath must be of type string for getDocument request`
|
|
4888
|
+
);
|
|
4870
4889
|
}
|
|
4871
4890
|
const rawData = await this.getRaw(fullPath);
|
|
4872
4891
|
const hasReferences = opts?.checkReferences ? await this.hasReferences(fullPath, opts.collection) : void 0;
|
|
@@ -4881,7 +4900,9 @@ var Resolver = class {
|
|
|
4881
4900
|
};
|
|
4882
4901
|
this.deleteDocument = async (fullPath) => {
|
|
4883
4902
|
if (typeof fullPath !== "string") {
|
|
4884
|
-
throw new Error(
|
|
4903
|
+
throw new Error(
|
|
4904
|
+
`fullPath must be of type string for getDocument request`
|
|
4905
|
+
);
|
|
4885
4906
|
}
|
|
4886
4907
|
await this.database.delete(fullPath);
|
|
4887
4908
|
};
|
|
@@ -5085,7 +5106,11 @@ var Resolver = class {
|
|
|
5085
5106
|
collection,
|
|
5086
5107
|
doc?._rawData
|
|
5087
5108
|
);
|
|
5088
|
-
await this.database.put(
|
|
5109
|
+
await this.database.put(
|
|
5110
|
+
realPath,
|
|
5111
|
+
{ ...oldDoc, ...params },
|
|
5112
|
+
collection.name
|
|
5113
|
+
);
|
|
5089
5114
|
return this.getDocument(realPath);
|
|
5090
5115
|
};
|
|
5091
5116
|
/**
|
|
@@ -5203,10 +5228,30 @@ var Resolver = class {
|
|
|
5203
5228
|
docsWithRefs
|
|
5204
5229
|
)) {
|
|
5205
5230
|
let refDoc = await this.getRaw(pathToDocWithRef);
|
|
5231
|
+
let hasUpdate = false;
|
|
5206
5232
|
for (const path7 of referencePaths) {
|
|
5207
|
-
|
|
5233
|
+
const { object: object2, updated } = updateObjectWithJsonPath(
|
|
5234
|
+
refDoc,
|
|
5235
|
+
path7,
|
|
5236
|
+
realPath,
|
|
5237
|
+
null
|
|
5238
|
+
);
|
|
5239
|
+
refDoc = object2;
|
|
5240
|
+
hasUpdate = updated || hasUpdate;
|
|
5241
|
+
}
|
|
5242
|
+
if (hasUpdate) {
|
|
5243
|
+
const collectionWithRef = this.tinaSchema.getCollectionByFullPath(pathToDocWithRef);
|
|
5244
|
+
if (!collectionWithRef) {
|
|
5245
|
+
throw new Error(
|
|
5246
|
+
`Unable to find collection for ${pathToDocWithRef}`
|
|
5247
|
+
);
|
|
5248
|
+
}
|
|
5249
|
+
await this.database.put(
|
|
5250
|
+
pathToDocWithRef,
|
|
5251
|
+
refDoc,
|
|
5252
|
+
collectionWithRef.name
|
|
5253
|
+
);
|
|
5208
5254
|
}
|
|
5209
|
-
await this.database.put(pathToDocWithRef, refDoc, collection2);
|
|
5210
5255
|
}
|
|
5211
5256
|
}
|
|
5212
5257
|
}
|
|
@@ -5237,21 +5282,38 @@ var Resolver = class {
|
|
|
5237
5282
|
docsWithRefs
|
|
5238
5283
|
)) {
|
|
5239
5284
|
let docWithRef = await this.getRaw(pathToDocWithRef);
|
|
5285
|
+
let hasUpdate = false;
|
|
5240
5286
|
for (const path7 of referencePaths) {
|
|
5241
|
-
|
|
5287
|
+
const { object: object2, updated } = updateObjectWithJsonPath(
|
|
5242
5288
|
docWithRef,
|
|
5243
5289
|
path7,
|
|
5244
5290
|
realPath,
|
|
5245
5291
|
newRealPath
|
|
5246
5292
|
);
|
|
5293
|
+
docWithRef = object2;
|
|
5294
|
+
hasUpdate = updated || hasUpdate;
|
|
5295
|
+
}
|
|
5296
|
+
if (hasUpdate) {
|
|
5297
|
+
const collectionWithRef = this.tinaSchema.getCollectionByFullPath(pathToDocWithRef);
|
|
5298
|
+
if (!collectionWithRef) {
|
|
5299
|
+
throw new Error(
|
|
5300
|
+
`Unable to find collection for ${pathToDocWithRef}`
|
|
5301
|
+
);
|
|
5302
|
+
}
|
|
5303
|
+
await this.database.put(
|
|
5304
|
+
pathToDocWithRef,
|
|
5305
|
+
docWithRef,
|
|
5306
|
+
collectionWithRef.name
|
|
5307
|
+
);
|
|
5247
5308
|
}
|
|
5248
|
-
await this.database.put(pathToDocWithRef, docWithRef, collection2);
|
|
5249
5309
|
}
|
|
5250
5310
|
}
|
|
5251
5311
|
return this.getDocument(newRealPath);
|
|
5252
5312
|
}
|
|
5253
5313
|
if (alreadyExists === false) {
|
|
5254
|
-
throw new Error(
|
|
5314
|
+
throw new Error(
|
|
5315
|
+
`Unable to update document, ${realPath} does not exist`
|
|
5316
|
+
);
|
|
5255
5317
|
}
|
|
5256
5318
|
return this.updateResolveDocument({
|
|
5257
5319
|
collection,
|
|
@@ -6593,8 +6655,35 @@ var Database = class {
|
|
|
6593
6655
|
]
|
|
6594
6656
|
}
|
|
6595
6657
|
};
|
|
6596
|
-
|
|
6597
|
-
|
|
6658
|
+
let fields = [];
|
|
6659
|
+
if (collection.templates) {
|
|
6660
|
+
const templateFieldMap = {};
|
|
6661
|
+
const conflictedFields = /* @__PURE__ */ new Set();
|
|
6662
|
+
for (const template of collection.templates) {
|
|
6663
|
+
for (const field of template.fields) {
|
|
6664
|
+
if (!templateFieldMap[field.name]) {
|
|
6665
|
+
templateFieldMap[field.name] = field;
|
|
6666
|
+
} else {
|
|
6667
|
+
if (templateFieldMap[field.name].type !== field.type) {
|
|
6668
|
+
console.warn(
|
|
6669
|
+
`Field ${field.name} has conflicting types in templates - skipping index`
|
|
6670
|
+
);
|
|
6671
|
+
conflictedFields.add(field.name);
|
|
6672
|
+
}
|
|
6673
|
+
}
|
|
6674
|
+
}
|
|
6675
|
+
}
|
|
6676
|
+
for (const conflictedField in conflictedFields) {
|
|
6677
|
+
delete templateFieldMap[conflictedField];
|
|
6678
|
+
}
|
|
6679
|
+
for (const field of Object.values(templateFieldMap)) {
|
|
6680
|
+
fields.push(field);
|
|
6681
|
+
}
|
|
6682
|
+
} else if (collection.fields) {
|
|
6683
|
+
fields = collection.fields;
|
|
6684
|
+
}
|
|
6685
|
+
if (fields) {
|
|
6686
|
+
for (const field of fields) {
|
|
6598
6687
|
if (field.indexed !== void 0 && field.indexed === false || field.type === "object") {
|
|
6599
6688
|
continue;
|
|
6600
6689
|
}
|
|
@@ -6895,13 +6984,14 @@ var Database = class {
|
|
|
6895
6984
|
documentPaths,
|
|
6896
6985
|
async (collection, documentPaths2) => {
|
|
6897
6986
|
if (collection && !collection.isDetached) {
|
|
6898
|
-
await _indexContent(
|
|
6899
|
-
this,
|
|
6900
|
-
this.contentLevel,
|
|
6901
|
-
documentPaths2,
|
|
6987
|
+
await _indexContent({
|
|
6988
|
+
database: this,
|
|
6989
|
+
level: this.contentLevel,
|
|
6990
|
+
documentPaths: documentPaths2,
|
|
6902
6991
|
enqueueOps,
|
|
6903
|
-
collection
|
|
6904
|
-
|
|
6992
|
+
collection,
|
|
6993
|
+
isPartialReindex: true
|
|
6994
|
+
});
|
|
6905
6995
|
}
|
|
6906
6996
|
}
|
|
6907
6997
|
);
|
|
@@ -7008,20 +7098,26 @@ var Database = class {
|
|
|
7008
7098
|
);
|
|
7009
7099
|
const doc = await level2.keys({ limit: 1 }).next();
|
|
7010
7100
|
if (!doc) {
|
|
7011
|
-
await _indexContent(
|
|
7012
|
-
this,
|
|
7013
|
-
level2,
|
|
7014
|
-
contentPaths,
|
|
7101
|
+
await _indexContent({
|
|
7102
|
+
database: this,
|
|
7103
|
+
level: level2,
|
|
7104
|
+
documentPaths: contentPaths,
|
|
7015
7105
|
enqueueOps,
|
|
7016
7106
|
collection,
|
|
7017
|
-
userFields.map((field) => [
|
|
7107
|
+
passwordFields: userFields.map((field) => [
|
|
7018
7108
|
...field.path,
|
|
7019
7109
|
field.passwordFieldName
|
|
7020
7110
|
])
|
|
7021
|
-
);
|
|
7111
|
+
});
|
|
7022
7112
|
}
|
|
7023
7113
|
} else {
|
|
7024
|
-
await _indexContent(
|
|
7114
|
+
await _indexContent({
|
|
7115
|
+
database: this,
|
|
7116
|
+
level,
|
|
7117
|
+
documentPaths: contentPaths,
|
|
7118
|
+
enqueueOps,
|
|
7119
|
+
collection
|
|
7120
|
+
});
|
|
7025
7121
|
}
|
|
7026
7122
|
}
|
|
7027
7123
|
);
|
|
@@ -7160,7 +7256,15 @@ var hashPasswordValues = async (data, passwordFields) => Promise.all(
|
|
|
7160
7256
|
)
|
|
7161
7257
|
);
|
|
7162
7258
|
var isGitKeep = (filepath, collection) => filepath.endsWith(`.gitkeep.${collection?.format || "md"}`);
|
|
7163
|
-
var _indexContent = async (
|
|
7259
|
+
var _indexContent = async ({
|
|
7260
|
+
database,
|
|
7261
|
+
level,
|
|
7262
|
+
documentPaths,
|
|
7263
|
+
enqueueOps,
|
|
7264
|
+
collection,
|
|
7265
|
+
passwordFields,
|
|
7266
|
+
isPartialReindex
|
|
7267
|
+
}) => {
|
|
7164
7268
|
let collectionIndexDefinitions;
|
|
7165
7269
|
let collectionPath;
|
|
7166
7270
|
if (collection) {
|
|
@@ -7201,40 +7305,42 @@ var _indexContent = async (database, level, documentPaths, enqueueOps, collectio
|
|
|
7201
7305
|
normalizedPath,
|
|
7202
7306
|
collectionPath || ""
|
|
7203
7307
|
);
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
|
|
7232
|
-
|
|
7233
|
-
|
|
7234
|
-
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7308
|
+
if (isPartialReindex) {
|
|
7309
|
+
const item = await rootSublevel.get(normalizedPath);
|
|
7310
|
+
if (item) {
|
|
7311
|
+
await database.contentLevel.batch([
|
|
7312
|
+
...makeRefOpsForDocument(
|
|
7313
|
+
normalizedPath,
|
|
7314
|
+
collection?.name,
|
|
7315
|
+
collectionReferences,
|
|
7316
|
+
item,
|
|
7317
|
+
"del",
|
|
7318
|
+
level
|
|
7319
|
+
),
|
|
7320
|
+
...makeIndexOpsForDocument(
|
|
7321
|
+
normalizedPath,
|
|
7322
|
+
collection.name,
|
|
7323
|
+
collectionIndexDefinitions,
|
|
7324
|
+
item,
|
|
7325
|
+
"del",
|
|
7326
|
+
level
|
|
7327
|
+
),
|
|
7328
|
+
// folder indices
|
|
7329
|
+
...makeIndexOpsForDocument(
|
|
7330
|
+
normalizedPath,
|
|
7331
|
+
`${collection.name}_${folderKey}`,
|
|
7332
|
+
collectionIndexDefinitions,
|
|
7333
|
+
item,
|
|
7334
|
+
"del",
|
|
7335
|
+
level
|
|
7336
|
+
),
|
|
7337
|
+
{
|
|
7338
|
+
type: "del",
|
|
7339
|
+
key: normalizedPath,
|
|
7340
|
+
sublevel: rootSublevel
|
|
7341
|
+
}
|
|
7342
|
+
]);
|
|
7343
|
+
}
|
|
7238
7344
|
}
|
|
7239
7345
|
if (!isGitKeep(filepath, collection)) {
|
|
7240
7346
|
await enqueueOps([
|
|
@@ -7470,8 +7576,8 @@ import path6 from "path";
|
|
|
7470
7576
|
import normalize from "normalize-path";
|
|
7471
7577
|
var FilesystemBridge = class {
|
|
7472
7578
|
constructor(rootPath, outputPath) {
|
|
7473
|
-
this.rootPath = rootPath
|
|
7474
|
-
this.outputPath = outputPath
|
|
7579
|
+
this.rootPath = path6.resolve(rootPath);
|
|
7580
|
+
this.outputPath = outputPath ? path6.resolve(outputPath) : this.rootPath;
|
|
7475
7581
|
}
|
|
7476
7582
|
async glob(pattern, extension) {
|
|
7477
7583
|
const basePath = path6.join(this.outputPath, ...pattern.split("/"));
|
|
@@ -7483,19 +7589,19 @@ var FilesystemBridge = class {
|
|
|
7483
7589
|
}
|
|
7484
7590
|
);
|
|
7485
7591
|
const posixRootPath = normalize(this.outputPath);
|
|
7486
|
-
return items.map(
|
|
7487
|
-
|
|
7488
|
-
|
|
7592
|
+
return items.map(
|
|
7593
|
+
(item) => item.substring(posixRootPath.length).replace(/^\/|\/$/g, "")
|
|
7594
|
+
);
|
|
7489
7595
|
}
|
|
7490
7596
|
async delete(filepath) {
|
|
7491
7597
|
await fs2.remove(path6.join(this.outputPath, filepath));
|
|
7492
7598
|
}
|
|
7493
7599
|
async get(filepath) {
|
|
7494
|
-
return fs2.
|
|
7600
|
+
return (await fs2.readFile(path6.join(this.outputPath, filepath))).toString();
|
|
7495
7601
|
}
|
|
7496
7602
|
async put(filepath, data, basePathOverride) {
|
|
7497
7603
|
const basePath = basePathOverride || this.outputPath;
|
|
7498
|
-
await fs2.
|
|
7604
|
+
await fs2.outputFile(path6.join(basePath, filepath), data);
|
|
7499
7605
|
}
|
|
7500
7606
|
};
|
|
7501
7607
|
var AuditFileSystemBridge = class extends FilesystemBridge {
|
package/dist/resolver/index.d.ts
CHANGED
|
@@ -47,7 +47,10 @@ export declare const transformDocumentIntoPayload: (fullPath: string, rawData: {
|
|
|
47
47
|
* @param newValue - The new value to set at the specified path.
|
|
48
48
|
* @returns the updated object.
|
|
49
49
|
*/
|
|
50
|
-
export declare const updateObjectWithJsonPath: (obj: any, path: string, oldValue: any, newValue: any) =>
|
|
50
|
+
export declare const updateObjectWithJsonPath: (obj: any, path: string, oldValue: any, newValue: any) => {
|
|
51
|
+
object: any;
|
|
52
|
+
updated: boolean;
|
|
53
|
+
};
|
|
51
54
|
/**
|
|
52
55
|
* The resolver provides functions for all possible types of lookup
|
|
53
56
|
* values and retrieves them from the database
|
|
@@ -71,10 +74,10 @@ export declare class Resolver {
|
|
|
71
74
|
name: string;
|
|
72
75
|
}[];
|
|
73
76
|
}[];
|
|
74
|
-
format?: "
|
|
77
|
+
format?: import("@tinacms/schema-tools").ContentFormat;
|
|
75
78
|
ui?: import("@tinacms/schema-tools").UICollection;
|
|
76
79
|
defaultItem?: import("@tinacms/schema-tools").DefaultItem<Record<string, any>>;
|
|
77
|
-
frontmatterFormat?: "
|
|
80
|
+
frontmatterFormat?: import("@tinacms/schema-tools").ContentFrontmatterFormat;
|
|
78
81
|
frontmatterDelimiters?: [string, string] | string;
|
|
79
82
|
match?: {
|
|
80
83
|
include?: string;
|
|
@@ -99,10 +102,10 @@ export declare class Resolver {
|
|
|
99
102
|
name: string;
|
|
100
103
|
}[];
|
|
101
104
|
}[];
|
|
102
|
-
format?: "
|
|
105
|
+
format?: import("@tinacms/schema-tools").ContentFormat;
|
|
103
106
|
ui?: import("@tinacms/schema-tools").UICollection;
|
|
104
107
|
defaultItem?: import("@tinacms/schema-tools").DefaultItem<Record<string, any>>;
|
|
105
|
-
frontmatterFormat?: "
|
|
108
|
+
frontmatterFormat?: import("@tinacms/schema-tools").ContentFrontmatterFormat;
|
|
106
109
|
frontmatterDelimiters?: [string, string] | string;
|
|
107
110
|
match?: {
|
|
108
111
|
include?: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
|
|
3
3
|
*/
|
|
4
|
-
import type { GraphQLConfig } from '../types';
|
|
5
4
|
import type { Schema } from '@tinacms/schema-tools';
|
|
5
|
+
import type { GraphQLConfig } from '../types';
|
|
6
6
|
/**
|
|
7
|
-
* Strips away the
|
|
7
|
+
* Strips away the TinaCloud Asset URL from an `image` value
|
|
8
8
|
*
|
|
9
9
|
* @param {string | string[]} value
|
|
10
10
|
* @param {GraphQLConfig} config
|
|
@@ -12,7 +12,7 @@ import type { Schema } from '@tinacms/schema-tools';
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const resolveMediaCloudToRelative: (value: string | string[], config: GraphQLConfig, schema: Schema<true>) => string | string[];
|
|
14
14
|
/**
|
|
15
|
-
* Adds
|
|
15
|
+
* Adds TinaCloud Asset URL to an `image` value
|
|
16
16
|
*
|
|
17
17
|
* @param {string | string[]} value
|
|
18
18
|
* @param {GraphQLConfig} config
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinacms/graphql",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-dced6ab-20250611061422",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"readable-stream": "^4.7.0",
|
|
45
45
|
"scmp": "^2.1.0",
|
|
46
46
|
"yup": "^0.32.11",
|
|
47
|
-
"@tinacms/mdx": "0.0.0-
|
|
48
|
-
"@tinacms/schema-tools": "0.0.0-
|
|
47
|
+
"@tinacms/mdx": "0.0.0-dced6ab-20250611061422",
|
|
48
|
+
"@tinacms/schema-tools": "0.0.0-dced6ab-20250611061422"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"registry": "https://registry.npmjs.org"
|
|
@@ -71,19 +71,17 @@
|
|
|
71
71
|
"@types/yup": "^0.29.14",
|
|
72
72
|
"jest-file-snapshot": "^0.5.0",
|
|
73
73
|
"memory-level": "^1.0.0",
|
|
74
|
-
"nodemon": "3.1.4",
|
|
75
74
|
"typescript": "^5.7.3",
|
|
76
75
|
"vite": "^4.5.9",
|
|
77
76
|
"vitest": "^0.32.4",
|
|
78
77
|
"zod": "^3.24.2",
|
|
79
|
-
"@tinacms/schema-tools": "0.0.0-
|
|
80
|
-
"@tinacms/scripts": "0.0.0-
|
|
78
|
+
"@tinacms/schema-tools": "0.0.0-dced6ab-20250611061422",
|
|
79
|
+
"@tinacms/scripts": "0.0.0-dced6ab-20250611061422"
|
|
81
80
|
},
|
|
82
81
|
"scripts": {
|
|
83
82
|
"types": "pnpm tsc",
|
|
84
83
|
"build": "tinacms-scripts build",
|
|
85
84
|
"docs": "pnpm typedoc",
|
|
86
|
-
"serve": "pnpm nodemon dist/server.js",
|
|
87
85
|
"test": "vitest run",
|
|
88
86
|
"test-watch": "vitest"
|
|
89
87
|
}
|