@tinacms/cli 0.0.0-c5dad82-20241009225242 → 0.0.0-c72bb45-20241118014046

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 CHANGED
@@ -31,12 +31,12 @@ module.exports = __toCommonJS(src_exports);
31
31
  var import_clipanion8 = require("clipanion");
32
32
 
33
33
  // package.json
34
- var version = "1.6.9";
34
+ var version = "1.6.11";
35
35
 
36
36
  // src/next/commands/dev-command/index.ts
37
37
  var import_clipanion2 = require("clipanion");
38
38
  var import_fs_extra6 = __toESM(require("fs-extra"));
39
- var import_path6 = __toESM(require("path"));
39
+ var import_path5 = __toESM(require("path"));
40
40
  var import_chokidar = __toESM(require("chokidar"));
41
41
  var import_graphql10 = require("@tinacms/graphql");
42
42
 
@@ -612,17 +612,19 @@ var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
612
612
  var import_vite3 = require("vite");
613
613
 
614
614
  // src/next/vite/index.ts
615
- var import_path2 = __toESM(require("path"));
615
+ var import_node_path2 = __toESM(require("path"));
616
+ var import_plugin_react = __toESM(require("@vitejs/plugin-react"));
616
617
  var import_fs_extra2 = __toESM(require("fs-extra"));
618
+ var import_normalize_path2 = __toESM(require("normalize-path"));
617
619
  var import_vite = require("vite");
618
- var import_plugin_react = __toESM(require("@vitejs/plugin-react"));
619
620
 
620
621
  // src/next/vite/tailwind.ts
622
+ var import_node_path = __toESM(require("path"));
623
+ var import_aspect_ratio = __toESM(require("@tailwindcss/aspect-ratio"));
624
+ var import_container_queries = __toESM(require("@tailwindcss/container-queries"));
625
+ var import_typography = __toESM(require("@tailwindcss/typography"));
621
626
  var import_tailwindcss = __toESM(require("tailwindcss"));
622
627
  var import_defaultTheme = __toESM(require("tailwindcss/defaultTheme.js"));
623
- var import_typography = __toESM(require("@tailwindcss/typography"));
624
- var import_aspect_ratio = __toESM(require("@tailwindcss/aspect-ratio"));
625
- var import_node_path = __toESM(require("path"));
626
628
  var tinaTailwind = (spaPath, prebuildFilePath) => {
627
629
  return {
628
630
  name: "vite-plugin-tina",
@@ -866,7 +868,11 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
866
868
  }
867
869
  },
868
870
  content,
869
- plugins: [(0, import_typography.default)({ className: "tina-prose" }), import_aspect_ratio.default]
871
+ plugins: [
872
+ (0, import_typography.default)({ className: "tina-prose" }),
873
+ import_aspect_ratio.default,
874
+ import_container_queries.default
875
+ ]
870
876
  });
871
877
  plugins.push(tw);
872
878
  return {
@@ -881,13 +887,12 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
881
887
  };
882
888
 
883
889
  // src/next/vite/index.ts
884
- var import_normalize_path2 = __toESM(require("normalize-path"));
885
890
  async function listFilesRecursively({
886
891
  directoryPath,
887
892
  config: config2,
888
893
  roothPath
889
894
  }) {
890
- const fullDirectoryPath = import_path2.default.join(
895
+ const fullDirectoryPath = import_node_path2.default.join(
891
896
  roothPath,
892
897
  config2.publicFolder,
893
898
  directoryPath
@@ -899,23 +904,23 @@ async function listFilesRecursively({
899
904
  const items = await import_fs_extra2.default.readdir(fullDirectoryPath);
900
905
  const staticMediaItems = [];
901
906
  for (const item of items) {
902
- const itemPath = import_path2.default.join(fullDirectoryPath, item);
907
+ const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
903
908
  const stats = await import_fs_extra2.default.promises.lstat(itemPath);
904
909
  const staticMediaItem = {
905
910
  id: item,
906
911
  filename: item,
907
912
  type: stats.isDirectory() ? "dir" : "file",
908
913
  directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
909
- src: `/${import_path2.default.join(directoryPath, item)}`,
914
+ src: `/${import_node_path2.default.join(directoryPath, item)}`,
910
915
  thumbnails: {
911
- "75x75": `/${import_path2.default.join(directoryPath, item)}`,
912
- "400x400": `/${import_path2.default.join(directoryPath, item)}`,
913
- "1000x1000": `/${import_path2.default.join(directoryPath, item)}`
916
+ "75x75": `/${import_node_path2.default.join(directoryPath, item)}`,
917
+ "400x400": `/${import_node_path2.default.join(directoryPath, item)}`,
918
+ "1000x1000": `/${import_node_path2.default.join(directoryPath, item)}`
914
919
  }
915
920
  };
916
921
  if (stats.isDirectory()) {
917
922
  staticMediaItem.children = await listFilesRecursively({
918
- directoryPath: import_path2.default.join(directoryPath, item),
923
+ directoryPath: import_node_path2.default.join(directoryPath, item),
919
924
  config: config2,
920
925
  roothPath
921
926
  });
@@ -958,7 +963,7 @@ var createConfig = async ({
958
963
  }
959
964
  }
960
965
  });
961
- const staticMediaPath = import_path2.default.join(
966
+ const staticMediaPath = import_node_path2.default.join(
962
967
  configManager.generatedFolderPath,
963
968
  "static-media.json"
964
969
  );
@@ -976,13 +981,13 @@ var createConfig = async ({
976
981
  TINA_IMPORT: configManager.prebuildFilePath,
977
982
  SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
978
983
  STATIC_MEDIA_IMPORT: staticMediaPath,
979
- crypto: import_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
980
- fs: import_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
981
- os: import_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
982
- path: import_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
984
+ crypto: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
985
+ fs: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
986
+ os: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
987
+ path: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
983
988
  };
984
989
  if (configManager.shouldSkipSDK()) {
985
- alias["CLIENT_IMPORT"] = import_path2.default.join(
990
+ alias["CLIENT_IMPORT"] = import_node_path2.default.join(
986
991
  configManager.spaRootPath,
987
992
  "src",
988
993
  "dummy-client.ts"
@@ -1054,17 +1059,17 @@ var import_pluginutils = require("@rollup/pluginutils");
1054
1059
  var import_fs = __toESM(require("fs"));
1055
1060
  var import_vite2 = require("vite");
1056
1061
  var import_esbuild = require("esbuild");
1057
- var import_path4 = __toESM(require("path"));
1062
+ var import_path3 = __toESM(require("path"));
1058
1063
  var import_body_parser = __toESM(require("body-parser"));
1059
1064
  var import_cors = __toESM(require("cors"));
1060
1065
  var import_graphql = require("@tinacms/graphql");
1061
1066
 
1062
1067
  // src/next/commands/dev-command/server/media.ts
1063
1068
  var import_fs_extra3 = __toESM(require("fs-extra"));
1064
- var import_path3 = __toESM(require("path"));
1069
+ var import_path2 = __toESM(require("path"));
1065
1070
  var import_busboy = __toESM(require("busboy"));
1066
1071
  var createMediaRouter = (config2) => {
1067
- const mediaFolder = import_path3.default.join(
1072
+ const mediaFolder = import_path2.default.join(
1068
1073
  config2.rootPath,
1069
1074
  config2.publicFolder,
1070
1075
  config2.mediaRoot
@@ -1092,8 +1097,8 @@ var createMediaRouter = (config2) => {
1092
1097
  bb.on("file", async (_name, file, _info) => {
1093
1098
  var _a;
1094
1099
  const fullPath = decodeURI((_a = req.url) == null ? void 0 : _a.slice("/media/upload/".length));
1095
- const saveTo = import_path3.default.join(mediaFolder, ...fullPath.split("/"));
1096
- await import_fs_extra3.default.ensureDir(import_path3.default.dirname(saveTo));
1100
+ const saveTo = import_path2.default.join(mediaFolder, ...fullPath.split("/"));
1101
+ await import_fs_extra3.default.ensureDir(import_path2.default.dirname(saveTo));
1097
1102
  file.pipe(import_fs_extra3.default.createWriteStream(saveTo));
1098
1103
  });
1099
1104
  bb.on("error", (error) => {
@@ -1128,7 +1133,7 @@ var MediaModel = class {
1128
1133
  }
1129
1134
  async listMedia(args) {
1130
1135
  try {
1131
- const folderPath = (0, import_path3.join)(
1136
+ const folderPath = (0, import_path2.join)(
1132
1137
  this.rootPath,
1133
1138
  this.publicFolder,
1134
1139
  this.mediaRoot,
@@ -1143,7 +1148,7 @@ var MediaModel = class {
1143
1148
  }
1144
1149
  const filesStr = await import_fs_extra3.default.readdir(folderPath);
1145
1150
  const filesProm = filesStr.map(async (file) => {
1146
- const filePath = (0, import_path3.join)(folderPath, file);
1151
+ const filePath = (0, import_path2.join)(folderPath, file);
1147
1152
  const stat = await import_fs_extra3.default.stat(filePath);
1148
1153
  let src = `/${file}`;
1149
1154
  const isFile = stat.isFile();
@@ -1200,7 +1205,7 @@ var MediaModel = class {
1200
1205
  }
1201
1206
  async deleteMedia(args) {
1202
1207
  try {
1203
- const file = (0, import_path3.join)(
1208
+ const file = (0, import_path2.join)(
1204
1209
  this.rootPath,
1205
1210
  this.publicFolder,
1206
1211
  this.mediaRoot,
@@ -1265,7 +1270,7 @@ var transformTsxPlugin = ({
1265
1270
  const plug = {
1266
1271
  name: "transform-tsx",
1267
1272
  async transform(code, id) {
1268
- const extName = import_path4.default.extname(id);
1273
+ const extName = import_path3.default.extname(id);
1269
1274
  if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
1270
1275
  const result = await (0, import_esbuild.transform)(code, { loader: "tsx" });
1271
1276
  return {
@@ -1417,7 +1422,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1417
1422
 
1418
1423
  // src/next/codegen/index.ts
1419
1424
  var import_fs_extra4 = __toESM(require("fs-extra"));
1420
- var import_path5 = __toESM(require("path"));
1425
+ var import_path4 = __toESM(require("path"));
1421
1426
  var import_graphql6 = require("graphql");
1422
1427
 
1423
1428
  // src/next/codegen/codegen/index.ts
@@ -1663,11 +1668,11 @@ var Codegen = class {
1663
1668
  this.noClientBuildCache = noClientBuildCache;
1664
1669
  }
1665
1670
  async writeConfigFile(fileName, data) {
1666
- const filePath = import_path5.default.join(this.configManager.generatedFolderPath, fileName);
1671
+ const filePath = import_path4.default.join(this.configManager.generatedFolderPath, fileName);
1667
1672
  await import_fs_extra4.default.ensureFile(filePath);
1668
1673
  await import_fs_extra4.default.outputFile(filePath, data);
1669
1674
  if (this.configManager.hasSeparateContentRoot()) {
1670
- const filePath2 = import_path5.default.join(
1675
+ const filePath2 = import_path4.default.join(
1671
1676
  this.configManager.generatedFolderPathContentRepo,
1672
1677
  fileName
1673
1678
  );
@@ -2204,7 +2209,7 @@ var BaseCommand = class extends import_clipanion.Command {
2204
2209
  pathFilter
2205
2210
  });
2206
2211
  const tinaPathUpdates = modified.filter(
2207
- (path13) => path13.startsWith(".tina/__generated__/_schema.json") || path13.startsWith("tina/tina-lock.json")
2212
+ (path14) => path14.startsWith(".tina/__generated__/_schema.json") || path14.startsWith("tina/tina-lock.json")
2208
2213
  );
2209
2214
  if (tinaPathUpdates.length > 0) {
2210
2215
  res = await database.indexContent({
@@ -2319,14 +2324,14 @@ var DevCommand = class extends BaseCommand {
2319
2324
  graphql: graphqlSchemaObject
2320
2325
  });
2321
2326
  import_fs_extra6.default.writeFileSync(
2322
- import_path6.default.join(configManager.tinaFolderPath, tinaLockFilename),
2327
+ import_path5.default.join(configManager.tinaFolderPath, tinaLockFilename),
2323
2328
  tinaLockContent
2324
2329
  );
2325
2330
  if (configManager.hasSeparateContentRoot()) {
2326
2331
  const rootPath = await configManager.getTinaFolderPath(
2327
2332
  configManager.contentRootPath
2328
2333
  );
2329
- const filePath = import_path6.default.join(rootPath, tinaLockFilename);
2334
+ const filePath = import_path5.default.join(rootPath, tinaLockFilename);
2330
2335
  await import_fs_extra6.default.ensureFile(filePath);
2331
2336
  await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
2332
2337
  }
@@ -2473,7 +2478,7 @@ ${dangerText(e.message)}
2473
2478
  watchContentFiles(configManager, database, searchIndexer) {
2474
2479
  const collectionContentFiles = [];
2475
2480
  configManager.config.schema.collections.forEach((collection) => {
2476
- const collectionGlob = `${import_path6.default.join(
2481
+ const collectionGlob = `${import_path5.default.join(
2477
2482
  configManager.contentRootPath,
2478
2483
  collection.path
2479
2484
  )}/**/*.${collection.format || "md"}`;
@@ -2532,6 +2537,8 @@ DevCommand.usage = import_clipanion2.Command.Usage({
2532
2537
  var import_clipanion3 = require("clipanion");
2533
2538
  var import_progress2 = __toESM(require("progress"));
2534
2539
  var import_fs_extra7 = __toESM(require("fs-extra"));
2540
+ var import_crypto = __toESM(require("crypto"));
2541
+ var import_path6 = __toESM(require("path"));
2535
2542
  var import_graphql11 = require("@tinacms/graphql");
2536
2543
 
2537
2544
  // src/next/commands/build-command/server.ts
@@ -2834,6 +2841,13 @@ ${dangerText(e.message)}
2834
2841
  database,
2835
2842
  codegen2.productionUrl
2836
2843
  );
2844
+ await this.checkTinaSchema(
2845
+ configManager,
2846
+ database,
2847
+ codegen2.productionUrl,
2848
+ this.previewName,
2849
+ this.verbose
2850
+ );
2837
2851
  }
2838
2852
  await buildProductionSpa(configManager, database, codegen2.productionUrl);
2839
2853
  await import_fs_extra7.default.outputFile(
@@ -3143,6 +3157,63 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3143
3157
  }
3144
3158
  }
3145
3159
  }
3160
+ async checkTinaSchema(configManager, database, apiURL, previewName, verbose) {
3161
+ const bar2 = new import_progress2.default(
3162
+ "Checking local Tina Schema matches server. :prog",
3163
+ 1
3164
+ );
3165
+ const { config: config2 } = configManager;
3166
+ const token = config2.token;
3167
+ const { clientId, branch, isLocalClient, host } = (0, import_schema_tools2.parseURL)(apiURL);
3168
+ if (isLocalClient || !host || !clientId || !branch) {
3169
+ if (verbose) {
3170
+ logger.info(logText("Not using Tina Cloud, skipping Tina Schema check"));
3171
+ }
3172
+ return;
3173
+ }
3174
+ const { tinaSchema: remoteTinaSchemaSha } = await fetchSchemaSha({
3175
+ url: `https://${host}/db/${clientId}/${previewName || branch}/schemaSha`,
3176
+ token
3177
+ });
3178
+ if (!remoteTinaSchemaSha) {
3179
+ bar2.tick({
3180
+ prog: "\u274C"
3181
+ });
3182
+ let errorMessage = `The remote Tina schema does not exist. Check indexing for this branch.`;
3183
+ if (config2 == null ? void 0 : config2.branch) {
3184
+ errorMessage += `
3185
+
3186
+ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3187
+ }
3188
+ throw new Error(errorMessage);
3189
+ }
3190
+ if (!database.bridge) {
3191
+ throw new Error(`No bridge configured`);
3192
+ }
3193
+ const localTinaSchema = JSON.parse(
3194
+ await database.bridge.get(
3195
+ import_path6.default.join(database.tinaDirectory, "__generated__", "_schema.json")
3196
+ )
3197
+ );
3198
+ localTinaSchema.version = void 0;
3199
+ const localTinaSchemaSha = import_crypto.default.createHash("sha256").update(JSON.stringify(localTinaSchema)).digest("hex");
3200
+ if (localTinaSchemaSha === remoteTinaSchemaSha) {
3201
+ bar2.tick({
3202
+ prog: "\u2705"
3203
+ });
3204
+ } else {
3205
+ bar2.tick({
3206
+ prog: "\u274C"
3207
+ });
3208
+ let errorMessage = `The local Tina schema doesn't match the remote Tina schema. Please push up your changes to GitHub to update your remote tina schema.`;
3209
+ if (config2 == null ? void 0 : config2.branch) {
3210
+ errorMessage += `
3211
+
3212
+ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3213
+ }
3214
+ throw new Error(errorMessage);
3215
+ }
3216
+ }
3146
3217
  };
3147
3218
  BuildCommand.paths = [["build"]];
3148
3219
  BuildCommand.usage = import_clipanion3.Command.Usage({
@@ -3211,6 +3282,21 @@ var fetchRemoteGraphqlSchema = async ({
3211
3282
  const data = await res.json();
3212
3283
  return data == null ? void 0 : data.data;
3213
3284
  };
3285
+ var fetchSchemaSha = async ({
3286
+ url,
3287
+ token
3288
+ }) => {
3289
+ const headers = new Headers();
3290
+ if (token) {
3291
+ headers.append("X-API-KEY", token);
3292
+ }
3293
+ const res = await fetch(url, {
3294
+ method: "GET",
3295
+ headers,
3296
+ cache: "no-cache"
3297
+ });
3298
+ return res.json();
3299
+ };
3214
3300
 
3215
3301
  // src/next/commands/audit-command/index.ts
3216
3302
  var import_clipanion4 = require("clipanion");
@@ -6012,22 +6098,22 @@ var writeGeneratedFile = async ({
6012
6098
  content,
6013
6099
  typescript
6014
6100
  }) => {
6015
- const { exists, path: path13, parentPath } = generatedFile.resolve(typescript);
6101
+ const { exists, path: path14, parentPath } = generatedFile.resolve(typescript);
6016
6102
  if (exists) {
6017
6103
  if (overwrite) {
6018
- logger.info(`Overwriting file at ${path13}... \u2705`);
6019
- import_fs_extra13.default.outputFileSync(path13, content);
6104
+ logger.info(`Overwriting file at ${path14}... \u2705`);
6105
+ import_fs_extra13.default.outputFileSync(path14, content);
6020
6106
  } else {
6021
- logger.info(`Not overwriting file at ${path13}.`);
6107
+ logger.info(`Not overwriting file at ${path14}.`);
6022
6108
  logger.info(
6023
- logText(`Please add the following to ${path13}:
6109
+ logText(`Please add the following to ${path14}:
6024
6110
  ${indentText(content)}}`)
6025
6111
  );
6026
6112
  }
6027
6113
  } else {
6028
- logger.info(`Adding file at ${path13}... \u2705`);
6114
+ logger.info(`Adding file at ${path14}... \u2705`);
6029
6115
  await import_fs_extra13.default.ensureDir(parentPath);
6030
- import_fs_extra13.default.outputFileSync(path13, content);
6116
+ import_fs_extra13.default.outputFileSync(path14, content);
6031
6117
  }
6032
6118
  };
6033
6119
  var addConfigFile = async ({
@@ -28,8 +28,13 @@ export declare class BuildCommand extends BaseCommand {
28
28
  previewName?: string;
29
29
  }): Promise<void>;
30
30
  checkGraphqlSchema(configManager: ConfigManager, database: Database, apiURL: string): Promise<void>;
31
+ checkTinaSchema(configManager: ConfigManager, database: Database, apiURL: string, previewName: string, verbose: boolean): Promise<void>;
31
32
  }
32
33
  export declare const fetchRemoteGraphqlSchema: ({ url, token, }: {
33
34
  url: string;
34
35
  token?: string;
35
36
  }) => Promise<any>;
37
+ export declare const fetchSchemaSha: ({ url, token, }: {
38
+ url: string;
39
+ token?: string;
40
+ }) => Promise<any>;
@@ -1,6 +1,6 @@
1
- import { BuildOptions, InlineConfig, Plugin } from 'vite';
2
- import { Database } from '@tinacms/graphql';
3
- import { ConfigManager } from '../config-manager';
1
+ import type { Database } from '@tinacms/graphql';
2
+ import { type BuildOptions, type InlineConfig, type Plugin } from 'vite';
3
+ import type { ConfigManager } from '../config-manager';
4
4
  /**
5
5
  * This type is duplicated in he `TinaMediaStore`
6
6
  * It represents the files that are available at build time
@@ -1,5 +1,5 @@
1
1
  /**
2
2
 
3
3
  */
4
- import http from 'http';
4
+ import http from 'node:http';
5
5
  export declare const gqlServer: (database: any, verbose: boolean) => Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinacms/cli",
3
- "version": "0.0.0-c5dad82-20241009225242",
3
+ "version": "0.0.0-c72bb45-20241118014046",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "files": [
@@ -26,9 +26,8 @@
26
26
  "@types/cors": "2.8.5",
27
27
  "@types/crypto-js": "^4.2.2",
28
28
  "@types/express": "^4.17.21",
29
- "@types/express-graphql": "^0.9.0",
30
29
  "@types/figlet": "1.2.0",
31
- "@types/fs-extra": "^9.0.13",
30
+ "@types/fs-extra": "^11.0.4",
32
31
  "@types/jest": "26.0.4",
33
32
  "@types/js-yaml": "^4.0.9",
34
33
  "@types/listr": "0.14.2",
@@ -36,22 +35,23 @@
36
35
  "@types/multer": "^1.4.12",
37
36
  "@types/progress": "^2.0.7",
38
37
  "@types/prompts": "^2.4.9",
39
- "@types/yup": "^0.29.14",
38
+ "@types/yup": "^0.32.0",
40
39
  "jest": "^29.7.0",
41
- "@tinacms/scripts": "0.0.0-c5dad82-20241009225242"
40
+ "@tinacms/scripts": "0.0.0-c72bb45-20241118014046"
42
41
  },
43
42
  "dependencies": {
44
43
  "@graphql-codegen/core": "^2.6.8",
45
44
  "@graphql-codegen/plugin-helpers": "latest",
46
- "@graphql-codegen/typescript": "^4.0.9",
47
- "@graphql-codegen/typescript-operations": "^4.2.3",
45
+ "@graphql-codegen/typescript": "^4.1.1",
46
+ "@graphql-codegen/typescript-operations": "^4.3.1",
48
47
  "@graphql-codegen/visitor-plugin-common": "^4.1.2",
49
48
  "@graphql-inspector/core": "^4.2.2",
50
49
  "@graphql-tools/graphql-file-loader": "^7.5.17",
51
50
  "@graphql-tools/load": "^7.8.14",
52
- "@rollup/pluginutils": "^5.1.2",
51
+ "@rollup/pluginutils": "^5.1.3",
53
52
  "@svgr/core": "8.1.0",
54
53
  "@tailwindcss/aspect-ratio": "^0.4.2",
54
+ "@tailwindcss/container-queries": "^0.1.1",
55
55
  "@tailwindcss/typography": "^0.5.15",
56
56
  "@vitejs/plugin-react": "3.1.0",
57
57
  "altair-express-middleware": "^7.3.6",
@@ -78,18 +78,18 @@
78
78
  "progress": "^2.0.3",
79
79
  "prompts": "^2.4.2",
80
80
  "readable-stream": "^4.5.2",
81
- "tailwindcss": "^3.4.13",
81
+ "tailwindcss": "^3.4.15",
82
82
  "typanion": "3.13.0",
83
- "typescript": "^5.6.2",
83
+ "typescript": "^5.6.3",
84
84
  "vite": "^4.5.5",
85
- "yup": "^0.32.11",
85
+ "yup": "^1.4.0",
86
86
  "zod": "^3.23.8",
87
- "@tinacms/app": "0.0.0-c5dad82-20241009225242",
88
- "@tinacms/metrics": "1.0.7",
89
- "@tinacms/graphql": "0.0.0-c5dad82-20241009225242",
90
- "@tinacms/schema-tools": "1.6.5",
91
- "@tinacms/search": "0.0.0-c5dad82-20241009225242",
92
- "tinacms": "0.0.0-c5dad82-20241009225242"
87
+ "@tinacms/app": "0.0.0-c72bb45-20241118014046",
88
+ "@tinacms/schema-tools": "0.0.0-c72bb45-20241118014046",
89
+ "@tinacms/search": "0.0.0-c72bb45-20241118014046",
90
+ "tinacms": "0.0.0-c72bb45-20241118014046",
91
+ "@tinacms/graphql": "0.0.0-c72bb45-20241118014046",
92
+ "@tinacms/metrics": "0.0.0-c72bb45-20241118014046"
93
93
  },
94
94
  "publishConfig": {
95
95
  "registry": "https://registry.npmjs.org"
@@ -98,6 +98,9 @@
98
98
  "url": "https://github.com/tinacms/tinacms.git",
99
99
  "directory": "packages/@tinacms/cli"
100
100
  },
101
+ "overrides": {
102
+ "dompurify": "2.5.7"
103
+ },
101
104
  "scripts": {
102
105
  "build": "tinacms-scripts build",
103
106
  "test": "jest --passWithNoTests",