@tinacms/cli 0.0.0-c466c52-20250801052040 → 0.0.0-c4f0716-20250918054807
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.
|
@@ -8,7 +8,7 @@ export * from './databaseAdapter';
|
|
|
8
8
|
export * from './authProvider';
|
|
9
9
|
export declare const askCommonSetUp: () => Promise<{
|
|
10
10
|
framework: Framework;
|
|
11
|
-
packageManager: "pnpm" | "yarn" | "npm";
|
|
11
|
+
packageManager: "pnpm" | "yarn" | "npm" | "bun";
|
|
12
12
|
}>;
|
|
13
13
|
export declare const askForestryMigrate: ({ framework, env, }: {
|
|
14
14
|
framework: Framework;
|
|
@@ -4,7 +4,7 @@ export type Config = {
|
|
|
4
4
|
typescript: boolean;
|
|
5
5
|
publicFolder?: string;
|
|
6
6
|
framework: Framework;
|
|
7
|
-
packageManager: 'pnpm' | 'yarn' | 'npm';
|
|
7
|
+
packageManager: 'pnpm' | 'yarn' | 'npm' | 'bun';
|
|
8
8
|
forestryMigrate: boolean;
|
|
9
9
|
frontMatterFormat?: ContentFrontmatterFormat;
|
|
10
10
|
hosting?: 'tina-cloud' | 'self-host';
|
package/dist/index.js
CHANGED
|
@@ -35,10 +35,10 @@ module.exports = __toCommonJS(index_exports);
|
|
|
35
35
|
var import_clipanion8 = require("clipanion");
|
|
36
36
|
|
|
37
37
|
// package.json
|
|
38
|
-
var version = "1.10.
|
|
38
|
+
var version = "1.10.3";
|
|
39
39
|
|
|
40
40
|
// src/next/commands/dev-command/index.ts
|
|
41
|
-
var
|
|
41
|
+
var import_path7 = __toESM(require("path"));
|
|
42
42
|
var import_graphql10 = require("@tinacms/graphql");
|
|
43
43
|
var import_search = require("@tinacms/search");
|
|
44
44
|
var import_async_lock = __toESM(require("async-lock"));
|
|
@@ -775,12 +775,25 @@ var unlinkIfExists = async (filepath) => {
|
|
|
775
775
|
|
|
776
776
|
// src/next/config-manager.ts
|
|
777
777
|
var import_fs_extra2 = __toESM(require("fs-extra"));
|
|
778
|
-
var
|
|
778
|
+
var import_path3 = __toESM(require("path"));
|
|
779
779
|
var import_os = __toESM(require("os"));
|
|
780
780
|
var esbuild = __toESM(require("esbuild"));
|
|
781
781
|
var dotenv = __toESM(require("dotenv"));
|
|
782
782
|
var import_normalize_path2 = __toESM(require("normalize-path"));
|
|
783
783
|
var import_chalk3 = __toESM(require("chalk"));
|
|
784
|
+
|
|
785
|
+
// src/utils/path.ts
|
|
786
|
+
var import_path2 = __toESM(require("path"));
|
|
787
|
+
function stripNativeTrailingSlash(p) {
|
|
788
|
+
const { root } = import_path2.default.parse(p);
|
|
789
|
+
let str = p;
|
|
790
|
+
while (str.length > root.length && str.endsWith(import_path2.default.sep)) {
|
|
791
|
+
str = str.slice(0, -1);
|
|
792
|
+
}
|
|
793
|
+
return str;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
// src/next/config-manager.ts
|
|
784
797
|
var TINA_FOLDER = "tina";
|
|
785
798
|
var LEGACY_TINA_FOLDER = ".tina";
|
|
786
799
|
var GENERATED_FOLDER = "__generated__";
|
|
@@ -799,7 +812,7 @@ var ConfigManager = class {
|
|
|
799
812
|
this.legacyNoSDK = legacyNoSDK;
|
|
800
813
|
}
|
|
801
814
|
isUsingTs() {
|
|
802
|
-
return [".ts", ".tsx"].includes(
|
|
815
|
+
return [".ts", ".tsx"].includes(import_path3.default.extname(this.tinaConfigFilePath));
|
|
803
816
|
}
|
|
804
817
|
hasSelfHostedConfig() {
|
|
805
818
|
return !!this.selfHostedDatabaseFilePath;
|
|
@@ -815,12 +828,12 @@ var ConfigManager = class {
|
|
|
815
828
|
}
|
|
816
829
|
async processConfig() {
|
|
817
830
|
this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
|
|
818
|
-
this.envFilePath =
|
|
819
|
-
|
|
831
|
+
this.envFilePath = import_path3.default.resolve(
|
|
832
|
+
import_path3.default.join(this.tinaFolderPath, "..", ".env")
|
|
820
833
|
);
|
|
821
834
|
dotenv.config({ path: this.envFilePath });
|
|
822
835
|
this.tinaConfigFilePath = await this.getPathWithExtension(
|
|
823
|
-
|
|
836
|
+
import_path3.default.join(this.tinaFolderPath, "config")
|
|
824
837
|
);
|
|
825
838
|
if (!this.tinaConfigFilePath) {
|
|
826
839
|
throw new Error(
|
|
@@ -828,79 +841,79 @@ var ConfigManager = class {
|
|
|
828
841
|
);
|
|
829
842
|
}
|
|
830
843
|
this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
|
|
831
|
-
|
|
844
|
+
import_path3.default.join(this.tinaFolderPath, "database")
|
|
832
845
|
);
|
|
833
|
-
this.generatedFolderPath =
|
|
834
|
-
this.generatedCachePath =
|
|
846
|
+
this.generatedFolderPath = import_path3.default.join(this.tinaFolderPath, GENERATED_FOLDER);
|
|
847
|
+
this.generatedCachePath = import_path3.default.join(
|
|
835
848
|
this.generatedFolderPath,
|
|
836
849
|
".cache",
|
|
837
850
|
String((/* @__PURE__ */ new Date()).getTime())
|
|
838
851
|
);
|
|
839
|
-
this.generatedGraphQLGQLPath =
|
|
852
|
+
this.generatedGraphQLGQLPath = import_path3.default.join(
|
|
840
853
|
this.generatedFolderPath,
|
|
841
854
|
GRAPHQL_GQL_FILE
|
|
842
855
|
);
|
|
843
|
-
this.generatedGraphQLJSONPath =
|
|
856
|
+
this.generatedGraphQLJSONPath = import_path3.default.join(
|
|
844
857
|
this.generatedFolderPath,
|
|
845
858
|
GRAPHQL_JSON_FILE
|
|
846
859
|
);
|
|
847
|
-
this.generatedSchemaJSONPath =
|
|
860
|
+
this.generatedSchemaJSONPath = import_path3.default.join(
|
|
848
861
|
this.generatedFolderPath,
|
|
849
862
|
SCHEMA_JSON_FILE
|
|
850
863
|
);
|
|
851
|
-
this.generatedLookupJSONPath =
|
|
864
|
+
this.generatedLookupJSONPath = import_path3.default.join(
|
|
852
865
|
this.generatedFolderPath,
|
|
853
866
|
LOOKUP_JSON_FILE
|
|
854
867
|
);
|
|
855
|
-
this.generatedQueriesFilePath =
|
|
868
|
+
this.generatedQueriesFilePath = import_path3.default.join(
|
|
856
869
|
this.generatedFolderPath,
|
|
857
870
|
"queries.gql"
|
|
858
871
|
);
|
|
859
|
-
this.generatedFragmentsFilePath =
|
|
872
|
+
this.generatedFragmentsFilePath = import_path3.default.join(
|
|
860
873
|
this.generatedFolderPath,
|
|
861
874
|
"frags.gql"
|
|
862
875
|
);
|
|
863
|
-
this.generatedTypesTSFilePath =
|
|
876
|
+
this.generatedTypesTSFilePath = import_path3.default.join(
|
|
864
877
|
this.generatedFolderPath,
|
|
865
878
|
"types.ts"
|
|
866
879
|
);
|
|
867
|
-
this.generatedTypesJSFilePath =
|
|
880
|
+
this.generatedTypesJSFilePath = import_path3.default.join(
|
|
868
881
|
this.generatedFolderPath,
|
|
869
882
|
"types.js"
|
|
870
883
|
);
|
|
871
|
-
this.generatedTypesDFilePath =
|
|
884
|
+
this.generatedTypesDFilePath = import_path3.default.join(
|
|
872
885
|
this.generatedFolderPath,
|
|
873
886
|
"types.d.ts"
|
|
874
887
|
);
|
|
875
|
-
this.userQueriesAndFragmentsGlob =
|
|
888
|
+
this.userQueriesAndFragmentsGlob = import_path3.default.join(
|
|
876
889
|
this.tinaFolderPath,
|
|
877
890
|
"queries/**/*.{graphql,gql}"
|
|
878
891
|
);
|
|
879
|
-
this.generatedQueriesAndFragmentsGlob =
|
|
892
|
+
this.generatedQueriesAndFragmentsGlob = import_path3.default.join(
|
|
880
893
|
this.generatedFolderPath,
|
|
881
894
|
"*.{graphql,gql}"
|
|
882
895
|
);
|
|
883
|
-
this.generatedClientTSFilePath =
|
|
896
|
+
this.generatedClientTSFilePath = import_path3.default.join(
|
|
884
897
|
this.generatedFolderPath,
|
|
885
898
|
"client.ts"
|
|
886
899
|
);
|
|
887
|
-
this.generatedClientJSFilePath =
|
|
900
|
+
this.generatedClientJSFilePath = import_path3.default.join(
|
|
888
901
|
this.generatedFolderPath,
|
|
889
902
|
"client.js"
|
|
890
903
|
);
|
|
891
|
-
this.generatedClientDFilePath =
|
|
904
|
+
this.generatedClientDFilePath = import_path3.default.join(
|
|
892
905
|
this.generatedFolderPath,
|
|
893
906
|
"client.d.ts"
|
|
894
907
|
);
|
|
895
|
-
this.generatedDatabaseClientDFilePath =
|
|
908
|
+
this.generatedDatabaseClientDFilePath = import_path3.default.join(
|
|
896
909
|
this.generatedFolderPath,
|
|
897
910
|
"databaseClient.d.ts"
|
|
898
911
|
);
|
|
899
|
-
this.generatedDatabaseClientTSFilePath =
|
|
912
|
+
this.generatedDatabaseClientTSFilePath = import_path3.default.join(
|
|
900
913
|
this.generatedFolderPath,
|
|
901
914
|
"databaseClient.ts"
|
|
902
915
|
);
|
|
903
|
-
this.generatedDatabaseClientJSFilePath =
|
|
916
|
+
this.generatedDatabaseClientJSFilePath = import_path3.default.join(
|
|
904
917
|
this.generatedFolderPath,
|
|
905
918
|
"databaseClient.js"
|
|
906
919
|
);
|
|
@@ -920,19 +933,18 @@ var ConfigManager = class {
|
|
|
920
933
|
this.watchList = watchList;
|
|
921
934
|
this.config = config2;
|
|
922
935
|
this.prebuildFilePath = prebuildPath;
|
|
923
|
-
this.publicFolderPath =
|
|
936
|
+
this.publicFolderPath = import_path3.default.join(
|
|
924
937
|
this.rootPath,
|
|
925
938
|
this.config.build.publicFolder
|
|
926
939
|
);
|
|
927
|
-
this.outputFolderPath =
|
|
940
|
+
this.outputFolderPath = import_path3.default.join(
|
|
928
941
|
this.publicFolderPath,
|
|
929
942
|
this.config.build.outputFolder
|
|
930
943
|
);
|
|
931
|
-
this.outputHTMLFilePath =
|
|
932
|
-
this.outputGitignorePath =
|
|
933
|
-
const fullLocalContentPath =
|
|
934
|
-
this.tinaFolderPath,
|
|
935
|
-
this.config.localContentPath || ""
|
|
944
|
+
this.outputHTMLFilePath = import_path3.default.join(this.outputFolderPath, "index.html");
|
|
945
|
+
this.outputGitignorePath = import_path3.default.join(this.outputFolderPath, ".gitignore");
|
|
946
|
+
const fullLocalContentPath = stripNativeTrailingSlash(
|
|
947
|
+
import_path3.default.join(this.tinaFolderPath, this.config.localContentPath || "")
|
|
936
948
|
);
|
|
937
949
|
if (this.config.localContentPath) {
|
|
938
950
|
const localContentPathExists = await import_fs_extra2.default.pathExists(fullLocalContentPath);
|
|
@@ -952,21 +964,21 @@ var ConfigManager = class {
|
|
|
952
964
|
if (!this.contentRootPath) {
|
|
953
965
|
this.contentRootPath = this.rootPath;
|
|
954
966
|
}
|
|
955
|
-
this.generatedFolderPathContentRepo =
|
|
967
|
+
this.generatedFolderPathContentRepo = import_path3.default.join(
|
|
956
968
|
await this.getTinaFolderPath(this.contentRootPath),
|
|
957
969
|
GENERATED_FOLDER
|
|
958
970
|
);
|
|
959
971
|
this.spaMainPath = require.resolve("@tinacms/app");
|
|
960
|
-
this.spaRootPath =
|
|
972
|
+
this.spaRootPath = import_path3.default.join(this.spaMainPath, "..", "..");
|
|
961
973
|
}
|
|
962
974
|
async getTinaFolderPath(rootPath) {
|
|
963
|
-
const tinaFolderPath =
|
|
975
|
+
const tinaFolderPath = import_path3.default.join(rootPath, TINA_FOLDER);
|
|
964
976
|
const tinaFolderExists = await import_fs_extra2.default.pathExists(tinaFolderPath);
|
|
965
977
|
if (tinaFolderExists) {
|
|
966
978
|
this.isUsingLegacyFolder = false;
|
|
967
979
|
return tinaFolderPath;
|
|
968
980
|
}
|
|
969
|
-
const legacyFolderPath =
|
|
981
|
+
const legacyFolderPath = import_path3.default.join(rootPath, LEGACY_TINA_FOLDER);
|
|
970
982
|
const legacyFolderExists = await import_fs_extra2.default.pathExists(legacyFolderPath);
|
|
971
983
|
if (legacyFolderExists) {
|
|
972
984
|
this.isUsingLegacyFolder = true;
|
|
@@ -1042,8 +1054,8 @@ var ConfigManager = class {
|
|
|
1042
1054
|
return result;
|
|
1043
1055
|
}
|
|
1044
1056
|
async loadDatabaseFile() {
|
|
1045
|
-
const tmpdir =
|
|
1046
|
-
const outfile =
|
|
1057
|
+
const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
|
|
1058
|
+
const outfile = import_path3.default.join(tmpdir, "database.build.js");
|
|
1047
1059
|
await esbuild.build({
|
|
1048
1060
|
entryPoints: [this.selfHostedDatabaseFilePath],
|
|
1049
1061
|
bundle: true,
|
|
@@ -1056,14 +1068,14 @@ var ConfigManager = class {
|
|
|
1056
1068
|
return result.default;
|
|
1057
1069
|
}
|
|
1058
1070
|
async loadConfigFile(generatedFolderPath, configFilePath) {
|
|
1059
|
-
const tmpdir =
|
|
1060
|
-
const preBuildConfigPath =
|
|
1071
|
+
const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
|
|
1072
|
+
const preBuildConfigPath = import_path3.default.join(
|
|
1061
1073
|
this.generatedFolderPath,
|
|
1062
1074
|
"config.prebuild.jsx"
|
|
1063
1075
|
);
|
|
1064
|
-
const outfile =
|
|
1065
|
-
const outfile2 =
|
|
1066
|
-
const tempTSConfigFile =
|
|
1076
|
+
const outfile = import_path3.default.join(tmpdir, "config.build.jsx");
|
|
1077
|
+
const outfile2 = import_path3.default.join(tmpdir, "config.build.js");
|
|
1078
|
+
const tempTSConfigFile = import_path3.default.join(tmpdir, "tsconfig.json");
|
|
1067
1079
|
import_fs_extra2.default.outputFileSync(tempTSConfigFile, "{}");
|
|
1068
1080
|
const result2 = await esbuild.build({
|
|
1069
1081
|
entryPoints: [configFilePath],
|
|
@@ -1350,7 +1362,7 @@ var BaseCommand = class extends import_clipanion.Command {
|
|
|
1350
1362
|
pathFilter
|
|
1351
1363
|
});
|
|
1352
1364
|
const tinaPathUpdates = modified.filter(
|
|
1353
|
-
(
|
|
1365
|
+
(path15) => path15.startsWith(".tina/__generated__/_schema.json") || path15.startsWith("tina/tina-lock.json")
|
|
1354
1366
|
);
|
|
1355
1367
|
if (tinaPathUpdates.length > 0) {
|
|
1356
1368
|
res = await database.indexContent({
|
|
@@ -1942,17 +1954,17 @@ var import_pluginutils = require("@rollup/pluginutils");
|
|
|
1942
1954
|
var import_fs = __toESM(require("fs"));
|
|
1943
1955
|
var import_vite2 = require("vite");
|
|
1944
1956
|
var import_esbuild2 = require("esbuild");
|
|
1945
|
-
var
|
|
1957
|
+
var import_path6 = __toESM(require("path"));
|
|
1946
1958
|
var import_body_parser = __toESM(require("body-parser"));
|
|
1947
1959
|
var import_cors = __toESM(require("cors"));
|
|
1948
1960
|
var import_graphql9 = require("@tinacms/graphql");
|
|
1949
1961
|
|
|
1950
1962
|
// src/next/commands/dev-command/server/media.ts
|
|
1951
1963
|
var import_fs_extra5 = __toESM(require("fs-extra"));
|
|
1952
|
-
var
|
|
1964
|
+
var import_path5 = __toESM(require("path"));
|
|
1953
1965
|
var import_busboy = __toESM(require("busboy"));
|
|
1954
1966
|
var createMediaRouter = (config2) => {
|
|
1955
|
-
const mediaFolder =
|
|
1967
|
+
const mediaFolder = import_path5.default.join(
|
|
1956
1968
|
config2.rootPath,
|
|
1957
1969
|
config2.publicFolder,
|
|
1958
1970
|
config2.mediaRoot
|
|
@@ -1979,8 +1991,8 @@ var createMediaRouter = (config2) => {
|
|
|
1979
1991
|
const bb = (0, import_busboy.default)({ headers: req.headers });
|
|
1980
1992
|
bb.on("file", async (_name, file, _info) => {
|
|
1981
1993
|
const fullPath = decodeURI(req.url?.slice("/media/upload/".length));
|
|
1982
|
-
const saveTo =
|
|
1983
|
-
await import_fs_extra5.default.ensureDir(
|
|
1994
|
+
const saveTo = import_path5.default.join(mediaFolder, ...fullPath.split("/"));
|
|
1995
|
+
await import_fs_extra5.default.ensureDir(import_path5.default.dirname(saveTo));
|
|
1984
1996
|
file.pipe(import_fs_extra5.default.createWriteStream(saveTo));
|
|
1985
1997
|
});
|
|
1986
1998
|
bb.on("error", (error) => {
|
|
@@ -2014,7 +2026,7 @@ var MediaModel = class {
|
|
|
2014
2026
|
}
|
|
2015
2027
|
async listMedia(args) {
|
|
2016
2028
|
try {
|
|
2017
|
-
const folderPath = (0,
|
|
2029
|
+
const folderPath = (0, import_path5.join)(
|
|
2018
2030
|
this.rootPath,
|
|
2019
2031
|
this.publicFolder,
|
|
2020
2032
|
this.mediaRoot,
|
|
@@ -2029,7 +2041,7 @@ var MediaModel = class {
|
|
|
2029
2041
|
}
|
|
2030
2042
|
const filesStr = await import_fs_extra5.default.readdir(folderPath);
|
|
2031
2043
|
const filesProm = filesStr.map(async (file) => {
|
|
2032
|
-
const filePath = (0,
|
|
2044
|
+
const filePath = (0, import_path5.join)(folderPath, file);
|
|
2033
2045
|
const stat = await import_fs_extra5.default.stat(filePath);
|
|
2034
2046
|
let src = `/${file}`;
|
|
2035
2047
|
const isFile = stat.isFile();
|
|
@@ -2086,7 +2098,7 @@ var MediaModel = class {
|
|
|
2086
2098
|
}
|
|
2087
2099
|
async deleteMedia(args) {
|
|
2088
2100
|
try {
|
|
2089
|
-
const file = (0,
|
|
2101
|
+
const file = (0, import_path5.join)(
|
|
2090
2102
|
this.rootPath,
|
|
2091
2103
|
this.publicFolder,
|
|
2092
2104
|
this.mediaRoot,
|
|
@@ -2151,7 +2163,7 @@ var transformTsxPlugin = ({
|
|
|
2151
2163
|
const plug = {
|
|
2152
2164
|
name: "transform-tsx",
|
|
2153
2165
|
async transform(code, id) {
|
|
2154
|
-
const extName =
|
|
2166
|
+
const extName = import_path6.default.extname(id);
|
|
2155
2167
|
if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
|
|
2156
2168
|
const result = await (0, import_esbuild2.transform)(code, { loader: "tsx" });
|
|
2157
2169
|
return {
|
|
@@ -2415,14 +2427,14 @@ var DevCommand = class extends BaseCommand {
|
|
|
2415
2427
|
graphql: graphqlSchemaObject
|
|
2416
2428
|
});
|
|
2417
2429
|
import_fs_extra6.default.writeFileSync(
|
|
2418
|
-
|
|
2430
|
+
import_path7.default.join(configManager.tinaFolderPath, tinaLockFilename),
|
|
2419
2431
|
tinaLockContent
|
|
2420
2432
|
);
|
|
2421
2433
|
if (configManager.hasSeparateContentRoot()) {
|
|
2422
2434
|
const rootPath = await configManager.getTinaFolderPath(
|
|
2423
2435
|
configManager.contentRootPath
|
|
2424
2436
|
);
|
|
2425
|
-
const filePath =
|
|
2437
|
+
const filePath = import_path7.default.join(rootPath, tinaLockFilename);
|
|
2426
2438
|
await import_fs_extra6.default.ensureFile(filePath);
|
|
2427
2439
|
await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
|
|
2428
2440
|
}
|
|
@@ -2597,7 +2609,7 @@ ${dangerText(e.message)}
|
|
|
2597
2609
|
watchContentFiles(configManager, database, databaseLock, searchIndexer) {
|
|
2598
2610
|
const collectionContentFiles = [];
|
|
2599
2611
|
configManager.config.schema.collections.forEach((collection) => {
|
|
2600
|
-
const collectionGlob = `${
|
|
2612
|
+
const collectionGlob = `${import_path7.default.join(
|
|
2601
2613
|
configManager.contentRootPath,
|
|
2602
2614
|
collection.path
|
|
2603
2615
|
)}/**/*.${collection.format || "md"}`;
|
|
@@ -2647,7 +2659,7 @@ ${dangerText(e.message)}
|
|
|
2647
2659
|
|
|
2648
2660
|
// src/next/commands/build-command/index.ts
|
|
2649
2661
|
var import_crypto = __toESM(require("crypto"));
|
|
2650
|
-
var
|
|
2662
|
+
var import_path8 = __toESM(require("path"));
|
|
2651
2663
|
var import_core3 = require("@graphql-inspector/core");
|
|
2652
2664
|
var import_graphql11 = require("@tinacms/graphql");
|
|
2653
2665
|
var import_schema_tools2 = require("@tinacms/schema-tools");
|
|
@@ -3369,7 +3381,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
|
|
|
3369
3381
|
}
|
|
3370
3382
|
const localTinaSchema = JSON.parse(
|
|
3371
3383
|
await database.bridge.get(
|
|
3372
|
-
|
|
3384
|
+
import_path8.default.join(database.tinaDirectory, "__generated__", "_schema.json")
|
|
3373
3385
|
)
|
|
3374
3386
|
);
|
|
3375
3387
|
localTinaSchema.version = void 0;
|
|
@@ -3740,25 +3752,25 @@ var import_clipanion6 = require("clipanion");
|
|
|
3740
3752
|
|
|
3741
3753
|
// src/cmds/init/detectEnvironment.ts
|
|
3742
3754
|
var import_fs_extra8 = __toESM(require("fs-extra"));
|
|
3743
|
-
var
|
|
3755
|
+
var import_path9 = __toESM(require("path"));
|
|
3744
3756
|
var checkGitignoreForItem = async ({
|
|
3745
3757
|
baseDir,
|
|
3746
3758
|
line
|
|
3747
3759
|
}) => {
|
|
3748
|
-
const gitignoreContent = import_fs_extra8.default.readFileSync(
|
|
3760
|
+
const gitignoreContent = import_fs_extra8.default.readFileSync(import_path9.default.join(baseDir, ".gitignore")).toString();
|
|
3749
3761
|
return gitignoreContent.split("\n").some((item) => item === line);
|
|
3750
3762
|
};
|
|
3751
3763
|
var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
|
|
3752
3764
|
const result = {
|
|
3753
|
-
fullPathTS:
|
|
3765
|
+
fullPathTS: import_path9.default.join(
|
|
3754
3766
|
parentPath,
|
|
3755
3767
|
`${name2}.${opts?.typescriptSuffix || opts?.extensionOverride || "ts"}`
|
|
3756
3768
|
),
|
|
3757
|
-
fullPathJS:
|
|
3769
|
+
fullPathJS: import_path9.default.join(
|
|
3758
3770
|
parentPath,
|
|
3759
3771
|
`${name2}.${opts?.extensionOverride || "js"}`
|
|
3760
3772
|
),
|
|
3761
|
-
fullPathOverride: opts?.extensionOverride ?
|
|
3773
|
+
fullPathOverride: opts?.extensionOverride ? import_path9.default.join(parentPath, `${name2}.${opts?.extensionOverride}`) : "",
|
|
3762
3774
|
generatedFileType,
|
|
3763
3775
|
name: name2,
|
|
3764
3776
|
parentPath,
|
|
@@ -3787,16 +3799,16 @@ var detectEnvironment = async ({
|
|
|
3787
3799
|
debug = false
|
|
3788
3800
|
}) => {
|
|
3789
3801
|
const hasForestryConfig = await import_fs_extra8.default.pathExists(
|
|
3790
|
-
|
|
3802
|
+
import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
|
|
3791
3803
|
);
|
|
3792
|
-
const sampleContentPath =
|
|
3804
|
+
const sampleContentPath = import_path9.default.join(
|
|
3793
3805
|
baseDir,
|
|
3794
3806
|
"content",
|
|
3795
3807
|
"posts",
|
|
3796
3808
|
"hello-world.md"
|
|
3797
3809
|
);
|
|
3798
|
-
const usingSrc = import_fs_extra8.default.pathExistsSync(
|
|
3799
|
-
const tinaFolder =
|
|
3810
|
+
const usingSrc = import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src", "pages")));
|
|
3811
|
+
const tinaFolder = import_path9.default.join(baseDir, "tina");
|
|
3800
3812
|
const tinaConfigExists = Boolean(
|
|
3801
3813
|
// Does the tina folder exist?
|
|
3802
3814
|
await import_fs_extra8.default.pathExists(tinaFolder) && // Does the tina folder contain a config file?
|
|
@@ -3812,12 +3824,12 @@ var detectEnvironment = async ({
|
|
|
3812
3824
|
"next-api-handler": await makeGeneratedFile(
|
|
3813
3825
|
"[...routes]",
|
|
3814
3826
|
"next-api-handler",
|
|
3815
|
-
|
|
3827
|
+
import_path9.default.join(...pagesDir, "api", "tina")
|
|
3816
3828
|
),
|
|
3817
3829
|
"reactive-example": await makeGeneratedFile(
|
|
3818
3830
|
"[filename]",
|
|
3819
3831
|
"reactive-example",
|
|
3820
|
-
|
|
3832
|
+
import_path9.default.join(...pagesDir, "demo", "blog"),
|
|
3821
3833
|
{
|
|
3822
3834
|
typescriptSuffix: "tsx"
|
|
3823
3835
|
}
|
|
@@ -3825,13 +3837,13 @@ var detectEnvironment = async ({
|
|
|
3825
3837
|
"users-json": await makeGeneratedFile(
|
|
3826
3838
|
"index",
|
|
3827
3839
|
"users-json",
|
|
3828
|
-
|
|
3840
|
+
import_path9.default.join(baseDir, "content", "users"),
|
|
3829
3841
|
{ extensionOverride: "json" }
|
|
3830
3842
|
),
|
|
3831
3843
|
"sample-content": await makeGeneratedFile(
|
|
3832
3844
|
"hello-world",
|
|
3833
3845
|
"sample-content",
|
|
3834
|
-
|
|
3846
|
+
import_path9.default.join(baseDir, "content", "posts"),
|
|
3835
3847
|
{ extensionOverride: "md" }
|
|
3836
3848
|
)
|
|
3837
3849
|
};
|
|
@@ -3857,13 +3869,13 @@ var detectEnvironment = async ({
|
|
|
3857
3869
|
);
|
|
3858
3870
|
}
|
|
3859
3871
|
}
|
|
3860
|
-
const hasGitIgnore = await import_fs_extra8.default.pathExists(
|
|
3872
|
+
const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path9.default.join(".gitignore"));
|
|
3861
3873
|
const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
|
|
3862
3874
|
const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
|
|
3863
3875
|
const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
|
|
3864
3876
|
let frontMatterFormat;
|
|
3865
3877
|
if (hasForestryConfig) {
|
|
3866
|
-
const hugoConfigPath =
|
|
3878
|
+
const hugoConfigPath = import_path9.default.join(rootPath, "config.toml");
|
|
3867
3879
|
if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
|
|
3868
3880
|
const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
|
|
3869
3881
|
const metaDataFormat = hugoConfig.toString().match(/metaDataFormat = "(.*)"/)?.[1];
|
|
@@ -4226,7 +4238,8 @@ var askCommonSetUp = async () => {
|
|
|
4226
4238
|
choices: [
|
|
4227
4239
|
{ title: "PNPM", value: "pnpm" },
|
|
4228
4240
|
{ title: "Yarn", value: "yarn" },
|
|
4229
|
-
{ title: "NPM", value: "npm" }
|
|
4241
|
+
{ title: "NPM", value: "npm" },
|
|
4242
|
+
{ title: "Bun", value: "bun" }
|
|
4230
4243
|
]
|
|
4231
4244
|
}
|
|
4232
4245
|
]);
|
|
@@ -4477,11 +4490,11 @@ var CLICommand = class {
|
|
|
4477
4490
|
};
|
|
4478
4491
|
|
|
4479
4492
|
// src/cmds/init/apply.ts
|
|
4480
|
-
var
|
|
4493
|
+
var import_path13 = __toESM(require("path"));
|
|
4481
4494
|
|
|
4482
4495
|
// src/cmds/forestry-migrate/index.ts
|
|
4483
4496
|
var import_fs_extra10 = __toESM(require("fs-extra"));
|
|
4484
|
-
var
|
|
4497
|
+
var import_path11 = __toESM(require("path"));
|
|
4485
4498
|
var import_js_yaml2 = __toESM(require("js-yaml"));
|
|
4486
4499
|
var import_minimatch = __toESM(require("minimatch"));
|
|
4487
4500
|
var import_graphql16 = require("@tinacms/graphql");
|
|
@@ -4489,7 +4502,7 @@ var import_schema_tools3 = require("@tinacms/schema-tools");
|
|
|
4489
4502
|
|
|
4490
4503
|
// src/cmds/forestry-migrate/util/index.ts
|
|
4491
4504
|
var import_fs_extra9 = __toESM(require("fs-extra"));
|
|
4492
|
-
var
|
|
4505
|
+
var import_path10 = __toESM(require("path"));
|
|
4493
4506
|
var import_js_yaml = __toESM(require("js-yaml"));
|
|
4494
4507
|
var import_zod = __toESM(require("zod"));
|
|
4495
4508
|
|
|
@@ -4914,7 +4927,7 @@ var transformForestryFieldsToTinaFields = ({
|
|
|
4914
4927
|
return tinaFields;
|
|
4915
4928
|
};
|
|
4916
4929
|
var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
|
|
4917
|
-
const templatePath =
|
|
4930
|
+
const templatePath = import_path10.default.join(
|
|
4918
4931
|
pathToForestryConfig,
|
|
4919
4932
|
".forestry",
|
|
4920
4933
|
"front_matter",
|
|
@@ -4989,8 +5002,8 @@ var generateAllTemplates = async ({
|
|
|
4989
5002
|
pathToForestryConfig
|
|
4990
5003
|
}) => {
|
|
4991
5004
|
const allTemplates = (await import_fs_extra10.default.readdir(
|
|
4992
|
-
|
|
4993
|
-
)).map((tem) =>
|
|
5005
|
+
import_path11.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
|
|
5006
|
+
)).map((tem) => import_path11.default.basename(tem, ".yml"));
|
|
4994
5007
|
const templateMap = /* @__PURE__ */ new Map();
|
|
4995
5008
|
const proms = allTemplates.map(async (tem) => {
|
|
4996
5009
|
try {
|
|
@@ -5135,9 +5148,9 @@ var generateCollectionFromForestrySection = (args) => {
|
|
|
5135
5148
|
return c;
|
|
5136
5149
|
} else if (section.type === "document") {
|
|
5137
5150
|
const filePath = section.path;
|
|
5138
|
-
const extname =
|
|
5139
|
-
const fileName =
|
|
5140
|
-
const dir =
|
|
5151
|
+
const extname = import_path11.default.extname(filePath);
|
|
5152
|
+
const fileName = import_path11.default.basename(filePath, extname);
|
|
5153
|
+
const dir = import_path11.default.dirname(filePath);
|
|
5141
5154
|
const ext = checkExt(extname);
|
|
5142
5155
|
if (ext) {
|
|
5143
5156
|
const fields = [];
|
|
@@ -5200,7 +5213,7 @@ var generateCollections = async ({
|
|
|
5200
5213
|
usingTypescript
|
|
5201
5214
|
});
|
|
5202
5215
|
const forestryConfig = await import_fs_extra10.default.readFile(
|
|
5203
|
-
|
|
5216
|
+
import_path11.default.join(pathToForestryConfig, ".forestry", "settings.yml")
|
|
5204
5217
|
);
|
|
5205
5218
|
rewriteTemplateKeysInDocs({
|
|
5206
5219
|
templateMap,
|
|
@@ -5230,11 +5243,11 @@ var rewriteTemplateKeysInDocs = (args) => {
|
|
|
5230
5243
|
const { templateObj } = templateMap.get(templateKey);
|
|
5231
5244
|
templateObj?.pages?.forEach((page) => {
|
|
5232
5245
|
try {
|
|
5233
|
-
const filePath =
|
|
5246
|
+
const filePath = import_path11.default.join(page);
|
|
5234
5247
|
if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
|
|
5235
5248
|
return;
|
|
5236
5249
|
}
|
|
5237
|
-
const extname =
|
|
5250
|
+
const extname = import_path11.default.extname(filePath);
|
|
5238
5251
|
const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
|
|
5239
5252
|
const content = (0, import_graphql16.parseFile)(
|
|
5240
5253
|
fileContent,
|
|
@@ -5266,7 +5279,7 @@ var import_fs_extra13 = __toESM(require("fs-extra"));
|
|
|
5266
5279
|
// src/next/commands/codemod-command/index.ts
|
|
5267
5280
|
var import_clipanion5 = require("clipanion");
|
|
5268
5281
|
var import_fs_extra11 = __toESM(require("fs-extra"));
|
|
5269
|
-
var
|
|
5282
|
+
var import_path12 = __toESM(require("path"));
|
|
5270
5283
|
var CodemodCommand = class extends import_clipanion5.Command {
|
|
5271
5284
|
constructor() {
|
|
5272
5285
|
super(...arguments);
|
|
@@ -5314,7 +5327,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
|
|
|
5314
5327
|
logger.error(e.message);
|
|
5315
5328
|
process.exit(1);
|
|
5316
5329
|
}
|
|
5317
|
-
const tinaDestination =
|
|
5330
|
+
const tinaDestination = import_path12.default.join(configManager.rootPath, "tina");
|
|
5318
5331
|
if (await import_fs_extra11.default.existsSync(tinaDestination)) {
|
|
5319
5332
|
logger.info(
|
|
5320
5333
|
`Folder already exists at ${tinaDestination}. Either delete this folder to complete the codemod, or ensure you have properly copied your config from the ".tina" folder.`
|
|
@@ -5329,7 +5342,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
|
|
|
5329
5342
|
};
|
|
5330
5343
|
var writeGitignore = async (rootPath) => {
|
|
5331
5344
|
await import_fs_extra11.default.outputFileSync(
|
|
5332
|
-
|
|
5345
|
+
import_path12.default.join(rootPath, "tina", ".gitignore"),
|
|
5333
5346
|
"__generated__"
|
|
5334
5347
|
);
|
|
5335
5348
|
};
|
|
@@ -6165,8 +6178,8 @@ async function apply({
|
|
|
6165
6178
|
await addConfigFile({
|
|
6166
6179
|
configArgs: {
|
|
6167
6180
|
config: config2,
|
|
6168
|
-
publicFolder:
|
|
6169
|
-
|
|
6181
|
+
publicFolder: import_path13.default.join(
|
|
6182
|
+
import_path13.default.relative(process.cwd(), pathToForestryConfig),
|
|
6170
6183
|
config2.publicFolder
|
|
6171
6184
|
),
|
|
6172
6185
|
collections,
|
|
@@ -6239,18 +6252,18 @@ var createPackageJSON = async () => {
|
|
|
6239
6252
|
};
|
|
6240
6253
|
var createGitignore = async ({ baseDir }) => {
|
|
6241
6254
|
logger.info(logText("No .gitignore found, creating one"));
|
|
6242
|
-
import_fs_extra13.default.outputFileSync(
|
|
6255
|
+
import_fs_extra13.default.outputFileSync(import_path13.default.join(baseDir, ".gitignore"), "node_modules");
|
|
6243
6256
|
};
|
|
6244
6257
|
var updateGitIgnore = async ({
|
|
6245
6258
|
baseDir,
|
|
6246
6259
|
items
|
|
6247
6260
|
}) => {
|
|
6248
6261
|
logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
|
|
6249
|
-
const gitignoreContent = import_fs_extra13.default.readFileSync(
|
|
6262
|
+
const gitignoreContent = import_fs_extra13.default.readFileSync(import_path13.default.join(baseDir, ".gitignore")).toString();
|
|
6250
6263
|
const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
|
|
6251
6264
|
"\n"
|
|
6252
6265
|
);
|
|
6253
|
-
await import_fs_extra13.default.writeFile(
|
|
6266
|
+
await import_fs_extra13.default.writeFile(import_path13.default.join(baseDir, ".gitignore"), newGitignoreContent);
|
|
6254
6267
|
};
|
|
6255
6268
|
var addDependencies = async (config2, env, params) => {
|
|
6256
6269
|
const { packageManager } = config2;
|
|
@@ -6291,7 +6304,8 @@ var addDependencies = async (config2, env, params) => {
|
|
|
6291
6304
|
let packageManagers = {
|
|
6292
6305
|
pnpm: process.env.USE_WORKSPACE ? `pnpm add ${deps.join(" ")} --workspace` : `pnpm add ${deps.join(" ")}`,
|
|
6293
6306
|
npm: `npm install ${deps.join(" ")}`,
|
|
6294
|
-
yarn: `yarn add ${deps.join(" ")}
|
|
6307
|
+
yarn: `yarn add ${deps.join(" ")}`,
|
|
6308
|
+
bun: `bun add ${deps.join(" ")}`
|
|
6295
6309
|
};
|
|
6296
6310
|
if (packageManagers[packageManager] && deps.length > 0) {
|
|
6297
6311
|
logger.info(logText("Adding dependencies, this might take a moment..."));
|
|
@@ -6302,7 +6316,8 @@ var addDependencies = async (config2, env, params) => {
|
|
|
6302
6316
|
packageManagers = {
|
|
6303
6317
|
pnpm: process.env.USE_WORKSPACE ? `pnpm add -D ${devDeps.join(" ")} --workspace` : `pnpm add -D ${devDeps.join(" ")}`,
|
|
6304
6318
|
npm: `npm install -D ${devDeps.join(" ")}`,
|
|
6305
|
-
yarn: `yarn add -D ${devDeps.join(" ")}
|
|
6319
|
+
yarn: `yarn add -D ${devDeps.join(" ")}`,
|
|
6320
|
+
bun: `bun add -D ${devDeps.join(" ")}`
|
|
6306
6321
|
};
|
|
6307
6322
|
if (packageManagers[packageManager]) {
|
|
6308
6323
|
logger.info(
|
|
@@ -6319,22 +6334,22 @@ var writeGeneratedFile = async ({
|
|
|
6319
6334
|
content,
|
|
6320
6335
|
typescript
|
|
6321
6336
|
}) => {
|
|
6322
|
-
const { exists, path:
|
|
6337
|
+
const { exists, path: path15, parentPath } = generatedFile.resolve(typescript);
|
|
6323
6338
|
if (exists) {
|
|
6324
6339
|
if (overwrite) {
|
|
6325
|
-
logger.info(`Overwriting file at ${
|
|
6326
|
-
import_fs_extra13.default.outputFileSync(
|
|
6340
|
+
logger.info(`Overwriting file at ${path15}... \u2705`);
|
|
6341
|
+
import_fs_extra13.default.outputFileSync(path15, content);
|
|
6327
6342
|
} else {
|
|
6328
|
-
logger.info(`Not overwriting file at ${
|
|
6343
|
+
logger.info(`Not overwriting file at ${path15}.`);
|
|
6329
6344
|
logger.info(
|
|
6330
|
-
logText(`Please add the following to ${
|
|
6345
|
+
logText(`Please add the following to ${path15}:
|
|
6331
6346
|
${indentText(content)}}`)
|
|
6332
6347
|
);
|
|
6333
6348
|
}
|
|
6334
6349
|
} else {
|
|
6335
|
-
logger.info(`Adding file at ${
|
|
6350
|
+
logger.info(`Adding file at ${path15}... \u2705`);
|
|
6336
6351
|
await import_fs_extra13.default.ensureDir(parentPath);
|
|
6337
|
-
import_fs_extra13.default.outputFileSync(
|
|
6352
|
+
import_fs_extra13.default.outputFileSync(path15, content);
|
|
6338
6353
|
}
|
|
6339
6354
|
};
|
|
6340
6355
|
var addConfigFile = async ({
|
|
@@ -6412,7 +6427,7 @@ var addContentFile = async ({
|
|
|
6412
6427
|
return () => ({
|
|
6413
6428
|
exists: env.sampleContentExists,
|
|
6414
6429
|
path: env.sampleContentPath,
|
|
6415
|
-
parentPath:
|
|
6430
|
+
parentPath: import_path13.default.dirname(env.sampleContentPath)
|
|
6416
6431
|
});
|
|
6417
6432
|
}
|
|
6418
6433
|
},
|
|
@@ -6435,7 +6450,7 @@ ${titleText(" TinaCMS ")} backend initialized!`));
|
|
|
6435
6450
|
return `${x.key}=${x.value || "***"}`;
|
|
6436
6451
|
}).join("\n") + `
|
|
6437
6452
|
TINA_PUBLIC_IS_LOCAL=true`;
|
|
6438
|
-
const envFile =
|
|
6453
|
+
const envFile = import_path13.default.join(process.cwd(), ".env");
|
|
6439
6454
|
if (!import_fs_extra13.default.existsSync(envFile)) {
|
|
6440
6455
|
logger.info(`Adding .env file to your project... \u2705`);
|
|
6441
6456
|
import_fs_extra13.default.writeFileSync(envFile, envFileText);
|
|
@@ -6481,7 +6496,8 @@ var other = ({ packageManager }) => {
|
|
|
6481
6496
|
pnpm: `pnpm`,
|
|
6482
6497
|
npm: `npx`,
|
|
6483
6498
|
// npx is the way to run executables that aren't in your "scripts"
|
|
6484
|
-
yarn: `yarn
|
|
6499
|
+
yarn: `yarn`,
|
|
6500
|
+
bun: `bun run`
|
|
6485
6501
|
};
|
|
6486
6502
|
return `${packageManagers[packageManager]} tinacms dev -c "<your dev command>"`;
|
|
6487
6503
|
};
|
|
@@ -6494,7 +6510,8 @@ var frameworkDevCmds = {
|
|
|
6494
6510
|
pnpm: `pnpm`,
|
|
6495
6511
|
npm: `npm run`,
|
|
6496
6512
|
// npx is the way to run executables that aren't in your "scripts"
|
|
6497
|
-
yarn: `yarn
|
|
6513
|
+
yarn: `yarn`,
|
|
6514
|
+
bun: `bun run`
|
|
6498
6515
|
};
|
|
6499
6516
|
return `${packageManagers[packageManager]} dev`;
|
|
6500
6517
|
}
|
|
@@ -6507,7 +6524,7 @@ var addReactiveFile = {
|
|
|
6507
6524
|
baseDir,
|
|
6508
6525
|
dataLayer
|
|
6509
6526
|
}) => {
|
|
6510
|
-
const packageJsonPath =
|
|
6527
|
+
const packageJsonPath = import_path13.default.join(baseDir, "package.json");
|
|
6511
6528
|
await writeGeneratedFile({
|
|
6512
6529
|
generatedFile,
|
|
6513
6530
|
typescript: config2.typescript,
|
package/dist/server/server.d.ts
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
*/
|
|
4
4
|
import http from 'node:http';
|
|
5
|
-
export declare const gqlServer: (database: any, verbose: boolean) => Promise<http.Server<typeof
|
|
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-
|
|
3
|
+
"version": "0.0.0-c4f0716-20250918054807",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"@types/listr": "0.14.2",
|
|
38
38
|
"@types/log4js": "^2.3.5",
|
|
39
39
|
"@types/multer": "^1.4.12",
|
|
40
|
+
"@types/node": "^22.13.1",
|
|
40
41
|
"@types/progress": "^2.0.7",
|
|
41
42
|
"@types/prompts": "^2.4.9",
|
|
42
43
|
"@types/yup": "^0.32.0",
|
|
@@ -89,12 +90,12 @@
|
|
|
89
90
|
"vite": "^4.5.9",
|
|
90
91
|
"yup": "^1.6.1",
|
|
91
92
|
"zod": "^3.24.2",
|
|
92
|
-
"@tinacms/app": "
|
|
93
|
-
"@tinacms/graphql": "
|
|
94
|
-
"@tinacms/schema-tools": "0.0.0-c466c52-20250801052040",
|
|
93
|
+
"@tinacms/app": "2.3.3",
|
|
94
|
+
"@tinacms/graphql": "1.6.1",
|
|
95
95
|
"@tinacms/metrics": "1.1.0",
|
|
96
|
-
"@tinacms/
|
|
97
|
-
"tinacms": "
|
|
96
|
+
"@tinacms/schema-tools": "1.9.1",
|
|
97
|
+
"@tinacms/search": "1.1.1",
|
|
98
|
+
"tinacms": "2.8.3"
|
|
98
99
|
},
|
|
99
100
|
"publishConfig": {
|
|
100
101
|
"registry": "https://registry.npmjs.org"
|