@tinacms/cli 0.0.0-8eddc06-20241118002831 → 0.0.0-8facd06-20241218070802

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
@@ -4,6 +4,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __commonJS = (cb, mod) => function __require() {
8
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ };
7
10
  var __export = (target, all) => {
8
11
  for (var name2 in all)
9
12
  __defProp(target, name2, { get: all[name2], enumerable: true });
@@ -22,600 +25,2088 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
25
  ));
23
26
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
27
 
25
- // src/index.ts
26
- var src_exports = {};
27
- __export(src_exports, {
28
- default: () => src_default
28
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/filesystem.js
29
+ var require_filesystem = __commonJS({
30
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/filesystem.js"(exports) {
31
+ "use strict";
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.removeExtension = exports.fileExistsAsync = exports.readJsonFromDiskAsync = exports.readJsonFromDiskSync = exports.fileExistsSync = void 0;
34
+ var fs16 = require("fs");
35
+ function fileExistsSync(path16) {
36
+ if (!fs16.existsSync(path16)) {
37
+ return false;
38
+ }
39
+ try {
40
+ var stats = fs16.statSync(path16);
41
+ return stats.isFile();
42
+ } catch (err) {
43
+ return false;
44
+ }
45
+ }
46
+ exports.fileExistsSync = fileExistsSync;
47
+ function readJsonFromDiskSync(packageJsonPath) {
48
+ if (!fs16.existsSync(packageJsonPath)) {
49
+ return void 0;
50
+ }
51
+ return require(packageJsonPath);
52
+ }
53
+ exports.readJsonFromDiskSync = readJsonFromDiskSync;
54
+ function readJsonFromDiskAsync(path16, callback) {
55
+ fs16.readFile(path16, "utf8", function(err, result) {
56
+ if (err || !result) {
57
+ return callback();
58
+ }
59
+ var json = JSON.parse(result);
60
+ return callback(void 0, json);
61
+ });
62
+ }
63
+ exports.readJsonFromDiskAsync = readJsonFromDiskAsync;
64
+ function fileExistsAsync(path22, callback2) {
65
+ fs16.stat(path22, function(err, stats) {
66
+ if (err) {
67
+ return callback2(void 0, false);
68
+ }
69
+ callback2(void 0, stats ? stats.isFile() : false);
70
+ });
71
+ }
72
+ exports.fileExistsAsync = fileExistsAsync;
73
+ function removeExtension(path16) {
74
+ return path16.substring(0, path16.lastIndexOf(".")) || path16;
75
+ }
76
+ exports.removeExtension = removeExtension;
77
+ }
29
78
  });
30
- module.exports = __toCommonJS(src_exports);
31
- var import_clipanion8 = require("clipanion");
32
-
33
- // package.json
34
- var version = "1.6.11";
35
-
36
- // src/next/commands/dev-command/index.ts
37
- var import_clipanion2 = require("clipanion");
38
- var import_fs_extra6 = __toESM(require("fs-extra"));
39
- var import_path5 = __toESM(require("path"));
40
- var import_chokidar = __toESM(require("chokidar"));
41
- var import_graphql10 = require("@tinacms/graphql");
42
-
43
- // src/next/config-manager.ts
44
- var import_fs_extra = __toESM(require("fs-extra"));
45
- var import_path = __toESM(require("path"));
46
- var import_os = __toESM(require("os"));
47
- var esbuild = __toESM(require("esbuild"));
48
- var dotenv = __toESM(require("dotenv"));
49
- var import_normalize_path = __toESM(require("normalize-path"));
50
- var import_chalk2 = __toESM(require("chalk"));
51
-
52
- // src/logger/index.ts
53
- var import_chalk = __toESM(require("chalk"));
54
79
 
55
- // src/logger/is-unicode-supported.ts
56
- function isUnicodeSupported() {
57
- if (process.platform !== "win32") {
58
- return process.env.TERM !== "linux";
80
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/mapping-entry.js
81
+ var require_mapping_entry = __commonJS({
82
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/mapping-entry.js"(exports) {
83
+ "use strict";
84
+ Object.defineProperty(exports, "__esModule", { value: true });
85
+ exports.getAbsoluteMappingEntries = void 0;
86
+ var path16 = require("path");
87
+ function getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll) {
88
+ var sortedKeys = sortByLongestPrefix(Object.keys(paths));
89
+ var absolutePaths = [];
90
+ for (var _i = 0, sortedKeys_1 = sortedKeys; _i < sortedKeys_1.length; _i++) {
91
+ var key = sortedKeys_1[_i];
92
+ absolutePaths.push({
93
+ pattern: key,
94
+ paths: paths[key].map(function(pathToResolve) {
95
+ return path16.resolve(absoluteBaseUrl, pathToResolve);
96
+ })
97
+ });
98
+ }
99
+ if (!paths["*"] && addMatchAll) {
100
+ absolutePaths.push({
101
+ pattern: "*",
102
+ paths: ["".concat(absoluteBaseUrl.replace(/\/$/, ""), "/*")]
103
+ });
104
+ }
105
+ return absolutePaths;
106
+ }
107
+ exports.getAbsoluteMappingEntries = getAbsoluteMappingEntries;
108
+ function sortByLongestPrefix(arr) {
109
+ return arr.concat().sort(function(a, b) {
110
+ return getPrefixLength(b) - getPrefixLength(a);
111
+ });
112
+ }
113
+ function getPrefixLength(pattern) {
114
+ var prefixLength = pattern.indexOf("*");
115
+ return pattern.substr(0, prefixLength).length;
116
+ }
59
117
  }
60
- return Boolean(process.env.CI) || Boolean(process.env.WT_SESSION) || Boolean(process.env.TERMINUS_SUBLIME) || process.env.ConEmuTask === "{cmd::Cmder}" || process.env.TERM_PROGRAM === "Terminus-Sublime" || process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty" || process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
61
- }
62
-
63
- // src/logger/index.ts
64
- var import_log4js = __toESM(require("log4js"));
65
- var logger = import_log4js.default.getLogger();
66
- import_log4js.default.configure({
67
- appenders: {
68
- out: { type: "stdout", layout: { type: "messagePassThrough" } }
69
- },
70
- categories: { default: { appenders: ["out"], level: "info" } }
71
118
  });
72
- logger.level = "info";
73
- function ansiRegex() {
74
- const pattern = [
75
- "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
76
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
77
- ].join("|");
78
- return new RegExp(pattern, "g");
79
- }
80
- var bar = "\u2502";
81
- var strip = (str) => str.replace(ansiRegex(), "");
82
- var note = (message = "", title = "") => {
83
- const lines = `
84
- ${message}
85
- `.split("\n");
86
- const len = lines.reduce((sum, ln) => {
87
- ln = strip(ln);
88
- return ln.length > sum ? ln.length : sum;
89
- }, 0) + 2;
90
- const msg = lines.map(
91
- (ln) => `${import_chalk.default.gray(bar)} ${import_chalk.default.white(ln)}${" ".repeat(
92
- len - strip(ln).length
93
- )}${import_chalk.default.gray(bar)}`
94
- ).join("\n");
95
- const underscoreLen = len - title.length - 1 > 0 ? len - title.length - 1 : 0;
96
- process.stdout.write(
97
- `${import_chalk.default.gray(bar)}
98
- ${import_chalk.default.green("\u25CB")} ${import_chalk.default.reset(
99
- title
100
- )} ${import_chalk.default.gray("\u2500".repeat(underscoreLen) + "\u256E")}
101
- ${msg}
102
- ${import_chalk.default.gray(
103
- "\u251C" + "\u2500".repeat(len + 2) + "\u256F"
104
- )}
105
- `
106
- );
107
- };
108
- var summary = (content) => {
109
- const outString = [];
110
- let longestKey = 0;
111
- content.items.forEach((item) => {
112
- item.subItems.forEach((subItem) => {
113
- if (subItem.key.length > longestKey) {
114
- longestKey = subItem.key.length;
119
+
120
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/try-path.js
121
+ var require_try_path = __commonJS({
122
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/try-path.js"(exports) {
123
+ "use strict";
124
+ Object.defineProperty(exports, "__esModule", { value: true });
125
+ exports.exhaustiveTypeException = exports.getStrippedPath = exports.getPathsToTry = void 0;
126
+ var path16 = require("path");
127
+ var path_1 = require("path");
128
+ var filesystem_1 = require_filesystem();
129
+ function getPathsToTry(extensions, absolutePathMappings, requestedModule) {
130
+ if (!absolutePathMappings || !requestedModule || requestedModule[0] === ".") {
131
+ return void 0;
115
132
  }
116
- });
117
- });
118
- content.items.forEach((item) => {
119
- outString.push(`${item.emoji} ${import_chalk.default.cyan(item.heading)}`);
120
- item.subItems.forEach((subItem) => {
121
- const spaces = longestKey - subItem.key.length + 4;
122
- outString.push(
123
- ` ${subItem.key}:${[...Array(spaces)].join(" ")}${import_chalk.default.cyan(
124
- subItem.value
125
- )}`
126
- );
127
- });
128
- outString.push(``);
129
- });
130
- if (process.env.CI) {
131
- logger.info(JSON.stringify(content, null, 2));
132
- } else {
133
- note(outString.join("\n"), content.heading);
133
+ var pathsToTry = [];
134
+ for (var _i = 0, absolutePathMappings_1 = absolutePathMappings; _i < absolutePathMappings_1.length; _i++) {
135
+ var entry = absolutePathMappings_1[_i];
136
+ var starMatch = entry.pattern === requestedModule ? "" : matchStar(entry.pattern, requestedModule);
137
+ if (starMatch !== void 0) {
138
+ var _loop_1 = function(physicalPathPattern2) {
139
+ var physicalPath = physicalPathPattern2.replace("*", starMatch);
140
+ pathsToTry.push({ type: "file", path: physicalPath });
141
+ pathsToTry.push.apply(pathsToTry, extensions.map(function(e) {
142
+ return { type: "extension", path: physicalPath + e };
143
+ }));
144
+ pathsToTry.push({
145
+ type: "package",
146
+ path: path16.join(physicalPath, "/package.json")
147
+ });
148
+ var indexPath = path16.join(physicalPath, "/index");
149
+ pathsToTry.push.apply(pathsToTry, extensions.map(function(e) {
150
+ return { type: "index", path: indexPath + e };
151
+ }));
152
+ };
153
+ for (var _a = 0, _b = entry.paths; _a < _b.length; _a++) {
154
+ var physicalPathPattern = _b[_a];
155
+ _loop_1(physicalPathPattern);
156
+ }
157
+ }
158
+ }
159
+ return pathsToTry.length === 0 ? void 0 : pathsToTry;
160
+ }
161
+ exports.getPathsToTry = getPathsToTry;
162
+ function getStrippedPath(tryPath) {
163
+ return tryPath.type === "index" ? (0, path_1.dirname)(tryPath.path) : tryPath.type === "file" ? tryPath.path : tryPath.type === "extension" ? (0, filesystem_1.removeExtension)(tryPath.path) : tryPath.type === "package" ? tryPath.path : exhaustiveTypeException(tryPath.type);
164
+ }
165
+ exports.getStrippedPath = getStrippedPath;
166
+ function exhaustiveTypeException(check) {
167
+ throw new Error("Unknown type ".concat(check));
168
+ }
169
+ exports.exhaustiveTypeException = exhaustiveTypeException;
170
+ function matchStar(pattern, search) {
171
+ if (search.length < pattern.length) {
172
+ return void 0;
173
+ }
174
+ if (pattern === "*") {
175
+ return search;
176
+ }
177
+ var star = pattern.indexOf("*");
178
+ if (star === -1) {
179
+ return void 0;
180
+ }
181
+ var part1 = pattern.substring(0, star);
182
+ var part2 = pattern.substring(star + 1);
183
+ if (search.substr(0, star) !== part1) {
184
+ return void 0;
185
+ }
186
+ if (search.substr(search.length - part2.length) !== part2) {
187
+ return void 0;
188
+ }
189
+ return search.substr(star, search.length - part2.length);
190
+ }
134
191
  }
135
- };
136
- var unicode = isUnicodeSupported();
137
- var s = (c, fallback) => unicode ? c : fallback;
138
- var S_STEP_ACTIVE = s("\u25C6", "*");
139
- var S_STEP_CANCEL = s("\u25A0", "x");
140
- var S_STEP_ERROR = s("\u25B2", "x");
141
- var S_STEP_SUBMIT = s("\u25C7", "o");
142
- var S_BAR_START = s("\u250C", "T");
143
- var S_BAR = s("\u2502", "|");
144
- var S_BAR_END = s("\u2514", "\u2014");
145
- var S_RADIO_ACTIVE = s("\u25CF", ">");
146
- var S_RADIO_INACTIVE = s("\u25CB", " ");
147
- var S_CHECKBOX_ACTIVE = s("\u25FB", "[\u2022]");
148
- var S_CHECKBOX_SELECTED = s("\u25FC", "[+]");
149
- var S_CHECKBOX_INACTIVE = s("\u25FB", "[ ]");
150
- var S_PASSWORD_MASK = s("\u25AA", "\u2022");
151
- var S_BAR_H = s("\u2500", "-");
152
- var S_CORNER_TOP_RIGHT = s("\u256E", "+");
153
- var S_CONNECT_LEFT = s("\u251C", "+");
154
- var S_CORNER_BOTTOM_RIGHT = s("\u256F", "+");
155
- var S_INFO = s("\u25CF", "\u2022");
156
- var S_SUCCESS = s("\u25C6", "*");
157
- var S_WARN = s("\u25B2", "!");
158
- var S_ERROR = s("\u25A0", "x");
192
+ });
159
193
 
160
- // src/next/config-manager.ts
161
- var TINA_FOLDER = "tina";
162
- var LEGACY_TINA_FOLDER = ".tina";
163
- var GENERATED_FOLDER = "__generated__";
164
- var GRAPHQL_JSON_FILE = "_graphql.json";
165
- var GRAPHQL_GQL_FILE = "schema.gql";
166
- var SCHEMA_JSON_FILE = "_schema.json";
167
- var LOOKUP_JSON_FILE = "_lookup.json";
168
- var ConfigManager = class {
169
- constructor({
170
- rootPath = process.cwd(),
171
- tinaGraphQLVersion,
172
- legacyNoSDK
173
- }) {
174
- this.rootPath = (0, import_normalize_path.default)(rootPath);
175
- this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
176
- this.legacyNoSDK = legacyNoSDK;
194
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-sync.js
195
+ var require_match_path_sync = __commonJS({
196
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-sync.js"(exports) {
197
+ "use strict";
198
+ Object.defineProperty(exports, "__esModule", { value: true });
199
+ exports.matchFromAbsolutePaths = exports.createMatchPath = void 0;
200
+ var path16 = require("path");
201
+ var Filesystem = require_filesystem();
202
+ var MappingEntry = require_mapping_entry();
203
+ var TryPath = require_try_path();
204
+ function createMatchPath(absoluteBaseUrl, paths, mainFields, addMatchAll) {
205
+ if (mainFields === void 0) {
206
+ mainFields = ["main"];
207
+ }
208
+ if (addMatchAll === void 0) {
209
+ addMatchAll = true;
210
+ }
211
+ var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
212
+ return function(requestedModule, readJson, fileExists, extensions) {
213
+ return matchFromAbsolutePaths(absolutePaths, requestedModule, readJson, fileExists, extensions, mainFields);
214
+ };
215
+ }
216
+ exports.createMatchPath = createMatchPath;
217
+ function matchFromAbsolutePaths(absolutePathMappings, requestedModule, readJson, fileExists, extensions, mainFields) {
218
+ if (readJson === void 0) {
219
+ readJson = Filesystem.readJsonFromDiskSync;
220
+ }
221
+ if (fileExists === void 0) {
222
+ fileExists = Filesystem.fileExistsSync;
223
+ }
224
+ if (extensions === void 0) {
225
+ extensions = Object.keys(require.extensions);
226
+ }
227
+ if (mainFields === void 0) {
228
+ mainFields = ["main"];
229
+ }
230
+ var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
231
+ if (!tryPaths) {
232
+ return void 0;
233
+ }
234
+ return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);
235
+ }
236
+ exports.matchFromAbsolutePaths = matchFromAbsolutePaths;
237
+ function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExists) {
238
+ for (var index = 0; index < mainFields.length; index++) {
239
+ var mainFieldSelector = mainFields[index];
240
+ var candidateMapping = typeof mainFieldSelector === "string" ? packageJson[mainFieldSelector] : mainFieldSelector.reduce(function(obj, key) {
241
+ return obj[key];
242
+ }, packageJson);
243
+ if (candidateMapping && typeof candidateMapping === "string") {
244
+ var candidateFilePath = path16.join(path16.dirname(packageJsonPath), candidateMapping);
245
+ if (fileExists(candidateFilePath)) {
246
+ return candidateFilePath;
247
+ }
248
+ }
249
+ }
250
+ return void 0;
251
+ }
252
+ function findFirstExistingPath(tryPaths, readJson, fileExists, mainFields) {
253
+ if (readJson === void 0) {
254
+ readJson = Filesystem.readJsonFromDiskSync;
255
+ }
256
+ if (mainFields === void 0) {
257
+ mainFields = ["main"];
258
+ }
259
+ for (var _i = 0, tryPaths_1 = tryPaths; _i < tryPaths_1.length; _i++) {
260
+ var tryPath = tryPaths_1[_i];
261
+ if (tryPath.type === "file" || tryPath.type === "extension" || tryPath.type === "index") {
262
+ if (fileExists(tryPath.path)) {
263
+ return TryPath.getStrippedPath(tryPath);
264
+ }
265
+ } else if (tryPath.type === "package") {
266
+ var packageJson = readJson(tryPath.path);
267
+ if (packageJson) {
268
+ var mainFieldMappedFile = findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists);
269
+ if (mainFieldMappedFile) {
270
+ return mainFieldMappedFile;
271
+ }
272
+ }
273
+ } else {
274
+ TryPath.exhaustiveTypeException(tryPath.type);
275
+ }
276
+ }
277
+ return void 0;
278
+ }
177
279
  }
178
- isUsingTs() {
179
- return [".ts", ".tsx"].includes(import_path.default.extname(this.tinaConfigFilePath));
280
+ });
281
+
282
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-async.js
283
+ var require_match_path_async = __commonJS({
284
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-async.js"(exports) {
285
+ "use strict";
286
+ Object.defineProperty(exports, "__esModule", { value: true });
287
+ exports.matchFromAbsolutePathsAsync = exports.createMatchPathAsync = void 0;
288
+ var path16 = require("path");
289
+ var TryPath = require_try_path();
290
+ var MappingEntry = require_mapping_entry();
291
+ var Filesystem = require_filesystem();
292
+ function createMatchPathAsync(absoluteBaseUrl, paths, mainFields, addMatchAll) {
293
+ if (mainFields === void 0) {
294
+ mainFields = ["main"];
295
+ }
296
+ if (addMatchAll === void 0) {
297
+ addMatchAll = true;
298
+ }
299
+ var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
300
+ return function(requestedModule, readJson, fileExists, extensions, callback) {
301
+ return matchFromAbsolutePathsAsync(absolutePaths, requestedModule, readJson, fileExists, extensions, callback, mainFields);
302
+ };
303
+ }
304
+ exports.createMatchPathAsync = createMatchPathAsync;
305
+ function matchFromAbsolutePathsAsync(absolutePathMappings, requestedModule, readJson, fileExists, extensions, callback, mainFields) {
306
+ if (readJson === void 0) {
307
+ readJson = Filesystem.readJsonFromDiskAsync;
308
+ }
309
+ if (fileExists === void 0) {
310
+ fileExists = Filesystem.fileExistsAsync;
311
+ }
312
+ if (extensions === void 0) {
313
+ extensions = Object.keys(require.extensions);
314
+ }
315
+ if (mainFields === void 0) {
316
+ mainFields = ["main"];
317
+ }
318
+ var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
319
+ if (!tryPaths) {
320
+ return callback();
321
+ }
322
+ findFirstExistingPath(tryPaths, readJson, fileExists, callback, 0, mainFields);
323
+ }
324
+ exports.matchFromAbsolutePathsAsync = matchFromAbsolutePathsAsync;
325
+ function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index) {
326
+ if (index === void 0) {
327
+ index = 0;
328
+ }
329
+ if (index >= mainFields.length) {
330
+ return doneCallback(void 0, void 0);
331
+ }
332
+ var tryNext = function() {
333
+ return findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index + 1);
334
+ };
335
+ var mainFieldSelector = mainFields[index];
336
+ var mainFieldMapping = typeof mainFieldSelector === "string" ? packageJson[mainFieldSelector] : mainFieldSelector.reduce(function(obj, key) {
337
+ return obj[key];
338
+ }, packageJson);
339
+ if (typeof mainFieldMapping !== "string") {
340
+ return tryNext();
341
+ }
342
+ var mappedFilePath = path16.join(path16.dirname(packageJsonPath), mainFieldMapping);
343
+ fileExistsAsync(mappedFilePath, function(err, exists) {
344
+ if (err) {
345
+ return doneCallback(err);
346
+ }
347
+ if (exists) {
348
+ return doneCallback(void 0, mappedFilePath);
349
+ }
350
+ return tryNext();
351
+ });
352
+ }
353
+ function findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index, mainFields) {
354
+ if (index === void 0) {
355
+ index = 0;
356
+ }
357
+ if (mainFields === void 0) {
358
+ mainFields = ["main"];
359
+ }
360
+ var tryPath = tryPaths[index];
361
+ if (tryPath.type === "file" || tryPath.type === "extension" || tryPath.type === "index") {
362
+ fileExists(tryPath.path, function(err, exists) {
363
+ if (err) {
364
+ return doneCallback(err);
365
+ }
366
+ if (exists) {
367
+ return doneCallback(void 0, TryPath.getStrippedPath(tryPath));
368
+ }
369
+ if (index === tryPaths.length - 1) {
370
+ return doneCallback();
371
+ }
372
+ return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
373
+ });
374
+ } else if (tryPath.type === "package") {
375
+ readJson(tryPath.path, function(err, packageJson) {
376
+ if (err) {
377
+ return doneCallback(err);
378
+ }
379
+ if (packageJson) {
380
+ return findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists, function(mainFieldErr, mainFieldMappedFile) {
381
+ if (mainFieldErr) {
382
+ return doneCallback(mainFieldErr);
383
+ }
384
+ if (mainFieldMappedFile) {
385
+ return doneCallback(void 0, mainFieldMappedFile);
386
+ }
387
+ return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
388
+ });
389
+ }
390
+ return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
391
+ });
392
+ } else {
393
+ TryPath.exhaustiveTypeException(tryPath.type);
394
+ }
395
+ }
180
396
  }
181
- hasSelfHostedConfig() {
182
- return !!this.selfHostedDatabaseFilePath;
397
+ });
398
+
399
+ // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/unicode.js
400
+ var require_unicode = __commonJS({
401
+ "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/unicode.js"(exports, module2) {
402
+ module2.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
403
+ module2.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
404
+ module2.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
183
405
  }
184
- hasSeparateContentRoot() {
185
- return this.rootPath !== this.contentRootPath;
406
+ });
407
+
408
+ // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/util.js
409
+ var require_util = __commonJS({
410
+ "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/util.js"(exports, module2) {
411
+ var unicode2 = require_unicode();
412
+ module2.exports = {
413
+ isSpaceSeparator(c) {
414
+ return typeof c === "string" && unicode2.Space_Separator.test(c);
415
+ },
416
+ isIdStartChar(c) {
417
+ return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c === "$" || c === "_" || unicode2.ID_Start.test(c));
418
+ },
419
+ isIdContinueChar(c) {
420
+ return typeof c === "string" && (c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c >= "0" && c <= "9" || c === "$" || c === "_" || c === "\u200C" || c === "\u200D" || unicode2.ID_Continue.test(c));
421
+ },
422
+ isDigit(c) {
423
+ return typeof c === "string" && /[0-9]/.test(c);
424
+ },
425
+ isHexDigit(c) {
426
+ return typeof c === "string" && /[0-9A-Fa-f]/.test(c);
427
+ }
428
+ };
186
429
  }
187
- shouldSkipSDK() {
188
- var _a;
189
- if (this.legacyNoSDK) {
190
- return this.legacyNoSDK;
430
+ });
431
+
432
+ // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/parse.js
433
+ var require_parse = __commonJS({
434
+ "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/parse.js"(exports, module2) {
435
+ var util = require_util();
436
+ var source;
437
+ var parseState;
438
+ var stack;
439
+ var pos;
440
+ var line;
441
+ var column;
442
+ var token;
443
+ var key;
444
+ var root;
445
+ module2.exports = function parse2(text, reviver) {
446
+ source = String(text);
447
+ parseState = "start";
448
+ stack = [];
449
+ pos = 0;
450
+ line = 1;
451
+ column = 0;
452
+ token = void 0;
453
+ key = void 0;
454
+ root = void 0;
455
+ do {
456
+ token = lex();
457
+ parseStates[parseState]();
458
+ } while (token.type !== "eof");
459
+ if (typeof reviver === "function") {
460
+ return internalize({ "": root }, "", reviver);
461
+ }
462
+ return root;
463
+ };
464
+ function internalize(holder, name2, reviver) {
465
+ const value = holder[name2];
466
+ if (value != null && typeof value === "object") {
467
+ if (Array.isArray(value)) {
468
+ for (let i = 0; i < value.length; i++) {
469
+ const key2 = String(i);
470
+ const replacement = internalize(value, key2, reviver);
471
+ if (replacement === void 0) {
472
+ delete value[key2];
473
+ } else {
474
+ Object.defineProperty(value, key2, {
475
+ value: replacement,
476
+ writable: true,
477
+ enumerable: true,
478
+ configurable: true
479
+ });
480
+ }
481
+ }
482
+ } else {
483
+ for (const key2 in value) {
484
+ const replacement = internalize(value, key2, reviver);
485
+ if (replacement === void 0) {
486
+ delete value[key2];
487
+ } else {
488
+ Object.defineProperty(value, key2, {
489
+ value: replacement,
490
+ writable: true,
491
+ enumerable: true,
492
+ configurable: true
493
+ });
494
+ }
495
+ }
496
+ }
497
+ }
498
+ return reviver.call(holder, name2, value);
499
+ }
500
+ var lexState;
501
+ var buffer;
502
+ var doubleQuote;
503
+ var sign;
504
+ var c;
505
+ function lex() {
506
+ lexState = "default";
507
+ buffer = "";
508
+ doubleQuote = false;
509
+ sign = 1;
510
+ for (; ; ) {
511
+ c = peek();
512
+ const token2 = lexStates[lexState]();
513
+ if (token2) {
514
+ return token2;
515
+ }
516
+ }
191
517
  }
192
- return ((_a = this.config.client) == null ? void 0 : _a.skip) || false;
193
- }
194
- async processConfig() {
195
- this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
196
- this.envFilePath = import_path.default.resolve(
197
- import_path.default.join(this.tinaFolderPath, "..", ".env")
198
- );
199
- dotenv.config({ path: this.envFilePath });
200
- this.tinaConfigFilePath = await this.getPathWithExtension(
201
- import_path.default.join(this.tinaFolderPath, "config")
202
- );
203
- if (!this.tinaConfigFilePath) {
204
- throw new Error(
205
- `Unable to find config file in ${this.tinaFolderPath}. Looking for a file named "config.{ts,tsx,js,jsx}"`
206
- );
518
+ function peek() {
519
+ if (source[pos]) {
520
+ return String.fromCodePoint(source.codePointAt(pos));
521
+ }
207
522
  }
208
- this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
209
- import_path.default.join(this.tinaFolderPath, "database")
210
- );
211
- this.generatedFolderPath = import_path.default.join(this.tinaFolderPath, GENERATED_FOLDER);
212
- this.generatedCachePath = import_path.default.join(
213
- this.generatedFolderPath,
214
- ".cache",
215
- String(new Date().getTime())
216
- );
217
- this.generatedGraphQLGQLPath = import_path.default.join(
218
- this.generatedFolderPath,
219
- GRAPHQL_GQL_FILE
220
- );
221
- this.generatedGraphQLJSONPath = import_path.default.join(
222
- this.generatedFolderPath,
223
- GRAPHQL_JSON_FILE
224
- );
225
- this.generatedSchemaJSONPath = import_path.default.join(
226
- this.generatedFolderPath,
227
- SCHEMA_JSON_FILE
228
- );
229
- this.generatedLookupJSONPath = import_path.default.join(
230
- this.generatedFolderPath,
231
- LOOKUP_JSON_FILE
232
- );
233
- this.generatedQueriesFilePath = import_path.default.join(
234
- this.generatedFolderPath,
235
- "queries.gql"
236
- );
237
- this.generatedFragmentsFilePath = import_path.default.join(
238
- this.generatedFolderPath,
239
- "frags.gql"
240
- );
241
- this.generatedTypesTSFilePath = import_path.default.join(
242
- this.generatedFolderPath,
243
- "types.ts"
244
- );
245
- this.generatedTypesJSFilePath = import_path.default.join(
246
- this.generatedFolderPath,
247
- "types.js"
248
- );
249
- this.generatedTypesDFilePath = import_path.default.join(
250
- this.generatedFolderPath,
251
- "types.d.ts"
252
- );
253
- this.userQueriesAndFragmentsGlob = import_path.default.join(
254
- this.tinaFolderPath,
255
- "queries/**/*.{graphql,gql}"
256
- );
257
- this.generatedQueriesAndFragmentsGlob = import_path.default.join(
258
- this.generatedFolderPath,
259
- "*.{graphql,gql}"
260
- );
261
- this.generatedClientTSFilePath = import_path.default.join(
262
- this.generatedFolderPath,
263
- "client.ts"
264
- );
265
- this.generatedClientJSFilePath = import_path.default.join(
266
- this.generatedFolderPath,
267
- "client.js"
268
- );
269
- this.generatedClientDFilePath = import_path.default.join(
270
- this.generatedFolderPath,
271
- "client.d.ts"
272
- );
273
- this.generatedDatabaseClientDFilePath = import_path.default.join(
274
- this.generatedFolderPath,
275
- "databaseClient.d.ts"
276
- );
277
- this.generatedDatabaseClientTSFilePath = import_path.default.join(
278
- this.generatedFolderPath,
279
- "databaseClient.ts"
280
- );
281
- this.generatedDatabaseClientJSFilePath = import_path.default.join(
282
- this.generatedFolderPath,
283
- "databaseClient.js"
284
- );
285
- const clientExists = this.isUsingTs() ? await import_fs_extra.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra.default.pathExists(this.generatedClientJSFilePath);
286
- if (!clientExists) {
287
- const file = "export default ()=>({})\nexport const client = ()=>({})";
288
- if (this.isUsingTs()) {
289
- await import_fs_extra.default.outputFile(this.generatedClientTSFilePath, file);
523
+ function read() {
524
+ const c2 = peek();
525
+ if (c2 === "\n") {
526
+ line++;
527
+ column = 0;
528
+ } else if (c2) {
529
+ column += c2.length;
290
530
  } else {
291
- await import_fs_extra.default.outputFile(this.generatedClientJSFilePath, file);
531
+ column++;
532
+ }
533
+ if (c2) {
534
+ pos += c2.length;
535
+ }
536
+ return c2;
537
+ }
538
+ var lexStates = {
539
+ default() {
540
+ switch (c) {
541
+ case " ":
542
+ case "\v":
543
+ case "\f":
544
+ case " ":
545
+ case "\xA0":
546
+ case "\uFEFF":
547
+ case "\n":
548
+ case "\r":
549
+ case "\u2028":
550
+ case "\u2029":
551
+ read();
552
+ return;
553
+ case "/":
554
+ read();
555
+ lexState = "comment";
556
+ return;
557
+ case void 0:
558
+ read();
559
+ return newToken("eof");
560
+ }
561
+ if (util.isSpaceSeparator(c)) {
562
+ read();
563
+ return;
564
+ }
565
+ return lexStates[parseState]();
566
+ },
567
+ comment() {
568
+ switch (c) {
569
+ case "*":
570
+ read();
571
+ lexState = "multiLineComment";
572
+ return;
573
+ case "/":
574
+ read();
575
+ lexState = "singleLineComment";
576
+ return;
577
+ }
578
+ throw invalidChar(read());
579
+ },
580
+ multiLineComment() {
581
+ switch (c) {
582
+ case "*":
583
+ read();
584
+ lexState = "multiLineCommentAsterisk";
585
+ return;
586
+ case void 0:
587
+ throw invalidChar(read());
588
+ }
589
+ read();
590
+ },
591
+ multiLineCommentAsterisk() {
592
+ switch (c) {
593
+ case "*":
594
+ read();
595
+ return;
596
+ case "/":
597
+ read();
598
+ lexState = "default";
599
+ return;
600
+ case void 0:
601
+ throw invalidChar(read());
602
+ }
603
+ read();
604
+ lexState = "multiLineComment";
605
+ },
606
+ singleLineComment() {
607
+ switch (c) {
608
+ case "\n":
609
+ case "\r":
610
+ case "\u2028":
611
+ case "\u2029":
612
+ read();
613
+ lexState = "default";
614
+ return;
615
+ case void 0:
616
+ read();
617
+ return newToken("eof");
618
+ }
619
+ read();
620
+ },
621
+ value() {
622
+ switch (c) {
623
+ case "{":
624
+ case "[":
625
+ return newToken("punctuator", read());
626
+ case "n":
627
+ read();
628
+ literal("ull");
629
+ return newToken("null", null);
630
+ case "t":
631
+ read();
632
+ literal("rue");
633
+ return newToken("boolean", true);
634
+ case "f":
635
+ read();
636
+ literal("alse");
637
+ return newToken("boolean", false);
638
+ case "-":
639
+ case "+":
640
+ if (read() === "-") {
641
+ sign = -1;
642
+ }
643
+ lexState = "sign";
644
+ return;
645
+ case ".":
646
+ buffer = read();
647
+ lexState = "decimalPointLeading";
648
+ return;
649
+ case "0":
650
+ buffer = read();
651
+ lexState = "zero";
652
+ return;
653
+ case "1":
654
+ case "2":
655
+ case "3":
656
+ case "4":
657
+ case "5":
658
+ case "6":
659
+ case "7":
660
+ case "8":
661
+ case "9":
662
+ buffer = read();
663
+ lexState = "decimalInteger";
664
+ return;
665
+ case "I":
666
+ read();
667
+ literal("nfinity");
668
+ return newToken("numeric", Infinity);
669
+ case "N":
670
+ read();
671
+ literal("aN");
672
+ return newToken("numeric", NaN);
673
+ case '"':
674
+ case "'":
675
+ doubleQuote = read() === '"';
676
+ buffer = "";
677
+ lexState = "string";
678
+ return;
679
+ }
680
+ throw invalidChar(read());
681
+ },
682
+ identifierNameStartEscape() {
683
+ if (c !== "u") {
684
+ throw invalidChar(read());
685
+ }
686
+ read();
687
+ const u = unicodeEscape();
688
+ switch (u) {
689
+ case "$":
690
+ case "_":
691
+ break;
692
+ default:
693
+ if (!util.isIdStartChar(u)) {
694
+ throw invalidIdentifier();
695
+ }
696
+ break;
697
+ }
698
+ buffer += u;
699
+ lexState = "identifierName";
700
+ },
701
+ identifierName() {
702
+ switch (c) {
703
+ case "$":
704
+ case "_":
705
+ case "\u200C":
706
+ case "\u200D":
707
+ buffer += read();
708
+ return;
709
+ case "\\":
710
+ read();
711
+ lexState = "identifierNameEscape";
712
+ return;
713
+ }
714
+ if (util.isIdContinueChar(c)) {
715
+ buffer += read();
716
+ return;
717
+ }
718
+ return newToken("identifier", buffer);
719
+ },
720
+ identifierNameEscape() {
721
+ if (c !== "u") {
722
+ throw invalidChar(read());
723
+ }
724
+ read();
725
+ const u = unicodeEscape();
726
+ switch (u) {
727
+ case "$":
728
+ case "_":
729
+ case "\u200C":
730
+ case "\u200D":
731
+ break;
732
+ default:
733
+ if (!util.isIdContinueChar(u)) {
734
+ throw invalidIdentifier();
735
+ }
736
+ break;
737
+ }
738
+ buffer += u;
739
+ lexState = "identifierName";
740
+ },
741
+ sign() {
742
+ switch (c) {
743
+ case ".":
744
+ buffer = read();
745
+ lexState = "decimalPointLeading";
746
+ return;
747
+ case "0":
748
+ buffer = read();
749
+ lexState = "zero";
750
+ return;
751
+ case "1":
752
+ case "2":
753
+ case "3":
754
+ case "4":
755
+ case "5":
756
+ case "6":
757
+ case "7":
758
+ case "8":
759
+ case "9":
760
+ buffer = read();
761
+ lexState = "decimalInteger";
762
+ return;
763
+ case "I":
764
+ read();
765
+ literal("nfinity");
766
+ return newToken("numeric", sign * Infinity);
767
+ case "N":
768
+ read();
769
+ literal("aN");
770
+ return newToken("numeric", NaN);
771
+ }
772
+ throw invalidChar(read());
773
+ },
774
+ zero() {
775
+ switch (c) {
776
+ case ".":
777
+ buffer += read();
778
+ lexState = "decimalPoint";
779
+ return;
780
+ case "e":
781
+ case "E":
782
+ buffer += read();
783
+ lexState = "decimalExponent";
784
+ return;
785
+ case "x":
786
+ case "X":
787
+ buffer += read();
788
+ lexState = "hexadecimal";
789
+ return;
790
+ }
791
+ return newToken("numeric", sign * 0);
792
+ },
793
+ decimalInteger() {
794
+ switch (c) {
795
+ case ".":
796
+ buffer += read();
797
+ lexState = "decimalPoint";
798
+ return;
799
+ case "e":
800
+ case "E":
801
+ buffer += read();
802
+ lexState = "decimalExponent";
803
+ return;
804
+ }
805
+ if (util.isDigit(c)) {
806
+ buffer += read();
807
+ return;
808
+ }
809
+ return newToken("numeric", sign * Number(buffer));
810
+ },
811
+ decimalPointLeading() {
812
+ if (util.isDigit(c)) {
813
+ buffer += read();
814
+ lexState = "decimalFraction";
815
+ return;
816
+ }
817
+ throw invalidChar(read());
818
+ },
819
+ decimalPoint() {
820
+ switch (c) {
821
+ case "e":
822
+ case "E":
823
+ buffer += read();
824
+ lexState = "decimalExponent";
825
+ return;
826
+ }
827
+ if (util.isDigit(c)) {
828
+ buffer += read();
829
+ lexState = "decimalFraction";
830
+ return;
831
+ }
832
+ return newToken("numeric", sign * Number(buffer));
833
+ },
834
+ decimalFraction() {
835
+ switch (c) {
836
+ case "e":
837
+ case "E":
838
+ buffer += read();
839
+ lexState = "decimalExponent";
840
+ return;
841
+ }
842
+ if (util.isDigit(c)) {
843
+ buffer += read();
844
+ return;
845
+ }
846
+ return newToken("numeric", sign * Number(buffer));
847
+ },
848
+ decimalExponent() {
849
+ switch (c) {
850
+ case "+":
851
+ case "-":
852
+ buffer += read();
853
+ lexState = "decimalExponentSign";
854
+ return;
855
+ }
856
+ if (util.isDigit(c)) {
857
+ buffer += read();
858
+ lexState = "decimalExponentInteger";
859
+ return;
860
+ }
861
+ throw invalidChar(read());
862
+ },
863
+ decimalExponentSign() {
864
+ if (util.isDigit(c)) {
865
+ buffer += read();
866
+ lexState = "decimalExponentInteger";
867
+ return;
868
+ }
869
+ throw invalidChar(read());
870
+ },
871
+ decimalExponentInteger() {
872
+ if (util.isDigit(c)) {
873
+ buffer += read();
874
+ return;
875
+ }
876
+ return newToken("numeric", sign * Number(buffer));
877
+ },
878
+ hexadecimal() {
879
+ if (util.isHexDigit(c)) {
880
+ buffer += read();
881
+ lexState = "hexadecimalInteger";
882
+ return;
883
+ }
884
+ throw invalidChar(read());
885
+ },
886
+ hexadecimalInteger() {
887
+ if (util.isHexDigit(c)) {
888
+ buffer += read();
889
+ return;
890
+ }
891
+ return newToken("numeric", sign * Number(buffer));
892
+ },
893
+ string() {
894
+ switch (c) {
895
+ case "\\":
896
+ read();
897
+ buffer += escape();
898
+ return;
899
+ case '"':
900
+ if (doubleQuote) {
901
+ read();
902
+ return newToken("string", buffer);
903
+ }
904
+ buffer += read();
905
+ return;
906
+ case "'":
907
+ if (!doubleQuote) {
908
+ read();
909
+ return newToken("string", buffer);
910
+ }
911
+ buffer += read();
912
+ return;
913
+ case "\n":
914
+ case "\r":
915
+ throw invalidChar(read());
916
+ case "\u2028":
917
+ case "\u2029":
918
+ separatorChar(c);
919
+ break;
920
+ case void 0:
921
+ throw invalidChar(read());
922
+ }
923
+ buffer += read();
924
+ },
925
+ start() {
926
+ switch (c) {
927
+ case "{":
928
+ case "[":
929
+ return newToken("punctuator", read());
930
+ }
931
+ lexState = "value";
932
+ },
933
+ beforePropertyName() {
934
+ switch (c) {
935
+ case "$":
936
+ case "_":
937
+ buffer = read();
938
+ lexState = "identifierName";
939
+ return;
940
+ case "\\":
941
+ read();
942
+ lexState = "identifierNameStartEscape";
943
+ return;
944
+ case "}":
945
+ return newToken("punctuator", read());
946
+ case '"':
947
+ case "'":
948
+ doubleQuote = read() === '"';
949
+ lexState = "string";
950
+ return;
951
+ }
952
+ if (util.isIdStartChar(c)) {
953
+ buffer += read();
954
+ lexState = "identifierName";
955
+ return;
956
+ }
957
+ throw invalidChar(read());
958
+ },
959
+ afterPropertyName() {
960
+ if (c === ":") {
961
+ return newToken("punctuator", read());
962
+ }
963
+ throw invalidChar(read());
964
+ },
965
+ beforePropertyValue() {
966
+ lexState = "value";
967
+ },
968
+ afterPropertyValue() {
969
+ switch (c) {
970
+ case ",":
971
+ case "}":
972
+ return newToken("punctuator", read());
973
+ }
974
+ throw invalidChar(read());
975
+ },
976
+ beforeArrayValue() {
977
+ if (c === "]") {
978
+ return newToken("punctuator", read());
979
+ }
980
+ lexState = "value";
981
+ },
982
+ afterArrayValue() {
983
+ switch (c) {
984
+ case ",":
985
+ case "]":
986
+ return newToken("punctuator", read());
987
+ }
988
+ throw invalidChar(read());
989
+ },
990
+ end() {
991
+ throw invalidChar(read());
292
992
  }
993
+ };
994
+ function newToken(type, value) {
995
+ return {
996
+ type,
997
+ value,
998
+ line,
999
+ column
1000
+ };
293
1001
  }
294
- const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
295
- this.generatedFolderPath,
296
- this.tinaConfigFilePath
297
- );
298
- this.watchList = watchList;
299
- this.config = config2;
300
- this.prebuildFilePath = prebuildPath;
301
- this.publicFolderPath = import_path.default.join(
302
- this.rootPath,
303
- this.config.build.publicFolder
304
- );
305
- this.outputFolderPath = import_path.default.join(
306
- this.publicFolderPath,
307
- this.config.build.outputFolder
308
- );
309
- this.outputHTMLFilePath = import_path.default.join(this.outputFolderPath, "index.html");
310
- this.outputGitignorePath = import_path.default.join(this.outputFolderPath, ".gitignore");
311
- const fullLocalContentPath = import_path.default.join(
312
- this.tinaFolderPath,
313
- this.config.localContentPath || ""
314
- );
315
- if (this.config.localContentPath) {
316
- const localContentPathExists = await import_fs_extra.default.pathExists(fullLocalContentPath);
317
- if (localContentPathExists) {
318
- logger.info(`Using separate content repo at ${fullLocalContentPath}`);
319
- this.contentRootPath = fullLocalContentPath;
320
- } else {
321
- logger.warn(
322
- `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
323
- fullLocalContentPath
324
- )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
325
- this.tinaConfigFilePath
326
- )}`
327
- );
1002
+ function literal(s2) {
1003
+ for (const c2 of s2) {
1004
+ const p = peek();
1005
+ if (p !== c2) {
1006
+ throw invalidChar(read());
1007
+ }
1008
+ read();
328
1009
  }
329
1010
  }
330
- if (!this.contentRootPath) {
331
- this.contentRootPath = this.rootPath;
1011
+ function escape() {
1012
+ const c2 = peek();
1013
+ switch (c2) {
1014
+ case "b":
1015
+ read();
1016
+ return "\b";
1017
+ case "f":
1018
+ read();
1019
+ return "\f";
1020
+ case "n":
1021
+ read();
1022
+ return "\n";
1023
+ case "r":
1024
+ read();
1025
+ return "\r";
1026
+ case "t":
1027
+ read();
1028
+ return " ";
1029
+ case "v":
1030
+ read();
1031
+ return "\v";
1032
+ case "0":
1033
+ read();
1034
+ if (util.isDigit(peek())) {
1035
+ throw invalidChar(read());
1036
+ }
1037
+ return "\0";
1038
+ case "x":
1039
+ read();
1040
+ return hexEscape();
1041
+ case "u":
1042
+ read();
1043
+ return unicodeEscape();
1044
+ case "\n":
1045
+ case "\u2028":
1046
+ case "\u2029":
1047
+ read();
1048
+ return "";
1049
+ case "\r":
1050
+ read();
1051
+ if (peek() === "\n") {
1052
+ read();
1053
+ }
1054
+ return "";
1055
+ case "1":
1056
+ case "2":
1057
+ case "3":
1058
+ case "4":
1059
+ case "5":
1060
+ case "6":
1061
+ case "7":
1062
+ case "8":
1063
+ case "9":
1064
+ throw invalidChar(read());
1065
+ case void 0:
1066
+ throw invalidChar(read());
1067
+ }
1068
+ return read();
332
1069
  }
333
- this.generatedFolderPathContentRepo = import_path.default.join(
334
- await this.getTinaFolderPath(this.contentRootPath),
335
- GENERATED_FOLDER
336
- );
337
- this.spaMainPath = require.resolve("@tinacms/app");
338
- this.spaRootPath = import_path.default.join(this.spaMainPath, "..", "..");
339
- }
340
- async getTinaFolderPath(rootPath) {
341
- const tinaFolderPath = import_path.default.join(rootPath, TINA_FOLDER);
342
- const tinaFolderExists = await import_fs_extra.default.pathExists(tinaFolderPath);
343
- if (tinaFolderExists) {
344
- this.isUsingLegacyFolder = false;
345
- return tinaFolderPath;
1070
+ function hexEscape() {
1071
+ let buffer2 = "";
1072
+ let c2 = peek();
1073
+ if (!util.isHexDigit(c2)) {
1074
+ throw invalidChar(read());
1075
+ }
1076
+ buffer2 += read();
1077
+ c2 = peek();
1078
+ if (!util.isHexDigit(c2)) {
1079
+ throw invalidChar(read());
1080
+ }
1081
+ buffer2 += read();
1082
+ return String.fromCodePoint(parseInt(buffer2, 16));
1083
+ }
1084
+ function unicodeEscape() {
1085
+ let buffer2 = "";
1086
+ let count = 4;
1087
+ while (count-- > 0) {
1088
+ const c2 = peek();
1089
+ if (!util.isHexDigit(c2)) {
1090
+ throw invalidChar(read());
1091
+ }
1092
+ buffer2 += read();
1093
+ }
1094
+ return String.fromCodePoint(parseInt(buffer2, 16));
346
1095
  }
347
- const legacyFolderPath = import_path.default.join(rootPath, LEGACY_TINA_FOLDER);
348
- const legacyFolderExists = await import_fs_extra.default.pathExists(legacyFolderPath);
349
- if (legacyFolderExists) {
350
- this.isUsingLegacyFolder = true;
351
- return legacyFolderPath;
1096
+ var parseStates = {
1097
+ start() {
1098
+ if (token.type === "eof") {
1099
+ throw invalidEOF();
1100
+ }
1101
+ push();
1102
+ },
1103
+ beforePropertyName() {
1104
+ switch (token.type) {
1105
+ case "identifier":
1106
+ case "string":
1107
+ key = token.value;
1108
+ parseState = "afterPropertyName";
1109
+ return;
1110
+ case "punctuator":
1111
+ pop();
1112
+ return;
1113
+ case "eof":
1114
+ throw invalidEOF();
1115
+ }
1116
+ },
1117
+ afterPropertyName() {
1118
+ if (token.type === "eof") {
1119
+ throw invalidEOF();
1120
+ }
1121
+ parseState = "beforePropertyValue";
1122
+ },
1123
+ beforePropertyValue() {
1124
+ if (token.type === "eof") {
1125
+ throw invalidEOF();
1126
+ }
1127
+ push();
1128
+ },
1129
+ beforeArrayValue() {
1130
+ if (token.type === "eof") {
1131
+ throw invalidEOF();
1132
+ }
1133
+ if (token.type === "punctuator" && token.value === "]") {
1134
+ pop();
1135
+ return;
1136
+ }
1137
+ push();
1138
+ },
1139
+ afterPropertyValue() {
1140
+ if (token.type === "eof") {
1141
+ throw invalidEOF();
1142
+ }
1143
+ switch (token.value) {
1144
+ case ",":
1145
+ parseState = "beforePropertyName";
1146
+ return;
1147
+ case "}":
1148
+ pop();
1149
+ }
1150
+ },
1151
+ afterArrayValue() {
1152
+ if (token.type === "eof") {
1153
+ throw invalidEOF();
1154
+ }
1155
+ switch (token.value) {
1156
+ case ",":
1157
+ parseState = "beforeArrayValue";
1158
+ return;
1159
+ case "]":
1160
+ pop();
1161
+ }
1162
+ },
1163
+ end() {
1164
+ }
1165
+ };
1166
+ function push() {
1167
+ let value;
1168
+ switch (token.type) {
1169
+ case "punctuator":
1170
+ switch (token.value) {
1171
+ case "{":
1172
+ value = {};
1173
+ break;
1174
+ case "[":
1175
+ value = [];
1176
+ break;
1177
+ }
1178
+ break;
1179
+ case "null":
1180
+ case "boolean":
1181
+ case "numeric":
1182
+ case "string":
1183
+ value = token.value;
1184
+ break;
1185
+ }
1186
+ if (root === void 0) {
1187
+ root = value;
1188
+ } else {
1189
+ const parent = stack[stack.length - 1];
1190
+ if (Array.isArray(parent)) {
1191
+ parent.push(value);
1192
+ } else {
1193
+ Object.defineProperty(parent, key, {
1194
+ value,
1195
+ writable: true,
1196
+ enumerable: true,
1197
+ configurable: true
1198
+ });
1199
+ }
1200
+ }
1201
+ if (value !== null && typeof value === "object") {
1202
+ stack.push(value);
1203
+ if (Array.isArray(value)) {
1204
+ parseState = "beforeArrayValue";
1205
+ } else {
1206
+ parseState = "beforePropertyName";
1207
+ }
1208
+ } else {
1209
+ const current = stack[stack.length - 1];
1210
+ if (current == null) {
1211
+ parseState = "end";
1212
+ } else if (Array.isArray(current)) {
1213
+ parseState = "afterArrayValue";
1214
+ } else {
1215
+ parseState = "afterPropertyValue";
1216
+ }
1217
+ }
352
1218
  }
353
- throw new Error(
354
- `Unable to find Tina folder, if you're working in folder outside of the Tina config be sure to specify --rootPath`
355
- );
356
- }
357
- getTinaGraphQLVersion() {
358
- var _a, _b;
359
- if (this.tinaGraphQLVersionFromCLI) {
360
- return this.tinaGraphQLVersionFromCLI;
1219
+ function pop() {
1220
+ stack.pop();
1221
+ const current = stack[stack.length - 1];
1222
+ if (current == null) {
1223
+ parseState = "end";
1224
+ } else if (Array.isArray(current)) {
1225
+ parseState = "afterArrayValue";
1226
+ } else {
1227
+ parseState = "afterPropertyValue";
1228
+ }
361
1229
  }
362
- const generatedSchema = import_fs_extra.default.readJSONSync(this.generatedSchemaJSONPath);
363
- if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined") || !(typeof ((_a = generatedSchema == null ? void 0 : generatedSchema.version) == null ? void 0 : _a.major) === "string") || !(typeof ((_b = generatedSchema == null ? void 0 : generatedSchema.version) == null ? void 0 : _b.minor) === "string")) {
364
- throw new Error(
365
- `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
366
- );
1230
+ function invalidChar(c2) {
1231
+ if (c2 === void 0) {
1232
+ return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
1233
+ }
1234
+ return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);
1235
+ }
1236
+ function invalidEOF() {
1237
+ return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
1238
+ }
1239
+ function invalidIdentifier() {
1240
+ column -= 5;
1241
+ return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);
1242
+ }
1243
+ function separatorChar(c2) {
1244
+ console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);
1245
+ }
1246
+ function formatChar(c2) {
1247
+ const replacements = {
1248
+ "'": "\\'",
1249
+ '"': '\\"',
1250
+ "\\": "\\\\",
1251
+ "\b": "\\b",
1252
+ "\f": "\\f",
1253
+ "\n": "\\n",
1254
+ "\r": "\\r",
1255
+ " ": "\\t",
1256
+ "\v": "\\v",
1257
+ "\0": "\\0",
1258
+ "\u2028": "\\u2028",
1259
+ "\u2029": "\\u2029"
1260
+ };
1261
+ if (replacements[c2]) {
1262
+ return replacements[c2];
1263
+ }
1264
+ if (c2 < " ") {
1265
+ const hexString = c2.charCodeAt(0).toString(16);
1266
+ return "\\x" + ("00" + hexString).substring(hexString.length);
1267
+ }
1268
+ return c2;
367
1269
  }
368
- return `${generatedSchema.version.major}.${generatedSchema.version.minor}`;
369
- }
370
- printGeneratedClientFilePath() {
371
- if (this.isUsingTs()) {
372
- return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
1270
+ function syntaxError(message) {
1271
+ const err = new SyntaxError(message);
1272
+ err.lineNumber = line;
1273
+ err.columnNumber = column;
1274
+ return err;
373
1275
  }
374
- return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
375
- }
376
- printGeneratedTypesFilePath() {
377
- return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
378
1276
  }
379
- printoutputHTMLFilePath() {
380
- return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
1277
+ });
1278
+
1279
+ // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js
1280
+ var require_stringify = __commonJS({
1281
+ "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js"(exports, module2) {
1282
+ var util = require_util();
1283
+ module2.exports = function stringify(value, replacer, space) {
1284
+ const stack = [];
1285
+ let indent = "";
1286
+ let propertyList;
1287
+ let replacerFunc;
1288
+ let gap = "";
1289
+ let quote;
1290
+ if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
1291
+ space = replacer.space;
1292
+ quote = replacer.quote;
1293
+ replacer = replacer.replacer;
1294
+ }
1295
+ if (typeof replacer === "function") {
1296
+ replacerFunc = replacer;
1297
+ } else if (Array.isArray(replacer)) {
1298
+ propertyList = [];
1299
+ for (const v of replacer) {
1300
+ let item;
1301
+ if (typeof v === "string") {
1302
+ item = v;
1303
+ } else if (typeof v === "number" || v instanceof String || v instanceof Number) {
1304
+ item = String(v);
1305
+ }
1306
+ if (item !== void 0 && propertyList.indexOf(item) < 0) {
1307
+ propertyList.push(item);
1308
+ }
1309
+ }
1310
+ }
1311
+ if (space instanceof Number) {
1312
+ space = Number(space);
1313
+ } else if (space instanceof String) {
1314
+ space = String(space);
1315
+ }
1316
+ if (typeof space === "number") {
1317
+ if (space > 0) {
1318
+ space = Math.min(10, Math.floor(space));
1319
+ gap = " ".substr(0, space);
1320
+ }
1321
+ } else if (typeof space === "string") {
1322
+ gap = space.substr(0, 10);
1323
+ }
1324
+ return serializeProperty("", { "": value });
1325
+ function serializeProperty(key, holder) {
1326
+ let value2 = holder[key];
1327
+ if (value2 != null) {
1328
+ if (typeof value2.toJSON5 === "function") {
1329
+ value2 = value2.toJSON5(key);
1330
+ } else if (typeof value2.toJSON === "function") {
1331
+ value2 = value2.toJSON(key);
1332
+ }
1333
+ }
1334
+ if (replacerFunc) {
1335
+ value2 = replacerFunc.call(holder, key, value2);
1336
+ }
1337
+ if (value2 instanceof Number) {
1338
+ value2 = Number(value2);
1339
+ } else if (value2 instanceof String) {
1340
+ value2 = String(value2);
1341
+ } else if (value2 instanceof Boolean) {
1342
+ value2 = value2.valueOf();
1343
+ }
1344
+ switch (value2) {
1345
+ case null:
1346
+ return "null";
1347
+ case true:
1348
+ return "true";
1349
+ case false:
1350
+ return "false";
1351
+ }
1352
+ if (typeof value2 === "string") {
1353
+ return quoteString(value2, false);
1354
+ }
1355
+ if (typeof value2 === "number") {
1356
+ return String(value2);
1357
+ }
1358
+ if (typeof value2 === "object") {
1359
+ return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2);
1360
+ }
1361
+ return void 0;
1362
+ }
1363
+ function quoteString(value2) {
1364
+ const quotes = {
1365
+ "'": 0.1,
1366
+ '"': 0.2
1367
+ };
1368
+ const replacements = {
1369
+ "'": "\\'",
1370
+ '"': '\\"',
1371
+ "\\": "\\\\",
1372
+ "\b": "\\b",
1373
+ "\f": "\\f",
1374
+ "\n": "\\n",
1375
+ "\r": "\\r",
1376
+ " ": "\\t",
1377
+ "\v": "\\v",
1378
+ "\0": "\\0",
1379
+ "\u2028": "\\u2028",
1380
+ "\u2029": "\\u2029"
1381
+ };
1382
+ let product = "";
1383
+ for (let i = 0; i < value2.length; i++) {
1384
+ const c = value2[i];
1385
+ switch (c) {
1386
+ case "'":
1387
+ case '"':
1388
+ quotes[c]++;
1389
+ product += c;
1390
+ continue;
1391
+ case "\0":
1392
+ if (util.isDigit(value2[i + 1])) {
1393
+ product += "\\x00";
1394
+ continue;
1395
+ }
1396
+ }
1397
+ if (replacements[c]) {
1398
+ product += replacements[c];
1399
+ continue;
1400
+ }
1401
+ if (c < " ") {
1402
+ let hexString = c.charCodeAt(0).toString(16);
1403
+ product += "\\x" + ("00" + hexString).substring(hexString.length);
1404
+ continue;
1405
+ }
1406
+ product += c;
1407
+ }
1408
+ const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b);
1409
+ product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
1410
+ return quoteChar + product + quoteChar;
1411
+ }
1412
+ function serializeObject(value2) {
1413
+ if (stack.indexOf(value2) >= 0) {
1414
+ throw TypeError("Converting circular structure to JSON5");
1415
+ }
1416
+ stack.push(value2);
1417
+ let stepback = indent;
1418
+ indent = indent + gap;
1419
+ let keys = propertyList || Object.keys(value2);
1420
+ let partial = [];
1421
+ for (const key of keys) {
1422
+ const propertyString = serializeProperty(key, value2);
1423
+ if (propertyString !== void 0) {
1424
+ let member = serializeKey(key) + ":";
1425
+ if (gap !== "") {
1426
+ member += " ";
1427
+ }
1428
+ member += propertyString;
1429
+ partial.push(member);
1430
+ }
1431
+ }
1432
+ let final;
1433
+ if (partial.length === 0) {
1434
+ final = "{}";
1435
+ } else {
1436
+ let properties;
1437
+ if (gap === "") {
1438
+ properties = partial.join(",");
1439
+ final = "{" + properties + "}";
1440
+ } else {
1441
+ let separator = ",\n" + indent;
1442
+ properties = partial.join(separator);
1443
+ final = "{\n" + indent + properties + ",\n" + stepback + "}";
1444
+ }
1445
+ }
1446
+ stack.pop();
1447
+ indent = stepback;
1448
+ return final;
1449
+ }
1450
+ function serializeKey(key) {
1451
+ if (key.length === 0) {
1452
+ return quoteString(key, true);
1453
+ }
1454
+ const firstChar = String.fromCodePoint(key.codePointAt(0));
1455
+ if (!util.isIdStartChar(firstChar)) {
1456
+ return quoteString(key, true);
1457
+ }
1458
+ for (let i = firstChar.length; i < key.length; i++) {
1459
+ if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {
1460
+ return quoteString(key, true);
1461
+ }
1462
+ }
1463
+ return key;
1464
+ }
1465
+ function serializeArray(value2) {
1466
+ if (stack.indexOf(value2) >= 0) {
1467
+ throw TypeError("Converting circular structure to JSON5");
1468
+ }
1469
+ stack.push(value2);
1470
+ let stepback = indent;
1471
+ indent = indent + gap;
1472
+ let partial = [];
1473
+ for (let i = 0; i < value2.length; i++) {
1474
+ const propertyString = serializeProperty(String(i), value2);
1475
+ partial.push(propertyString !== void 0 ? propertyString : "null");
1476
+ }
1477
+ let final;
1478
+ if (partial.length === 0) {
1479
+ final = "[]";
1480
+ } else {
1481
+ if (gap === "") {
1482
+ let properties = partial.join(",");
1483
+ final = "[" + properties + "]";
1484
+ } else {
1485
+ let separator = ",\n" + indent;
1486
+ let properties = partial.join(separator);
1487
+ final = "[\n" + indent + properties + ",\n" + stepback + "]";
1488
+ }
1489
+ }
1490
+ stack.pop();
1491
+ indent = stepback;
1492
+ return final;
1493
+ }
1494
+ };
381
1495
  }
382
- printRelativePath(filename) {
383
- if (filename) {
384
- return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
385
- }
386
- throw `No path provided to print`;
1496
+ });
1497
+
1498
+ // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js
1499
+ var require_lib = __commonJS({
1500
+ "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js"(exports, module2) {
1501
+ var parse2 = require_parse();
1502
+ var stringify = require_stringify();
1503
+ var JSON5 = {
1504
+ parse: parse2,
1505
+ stringify
1506
+ };
1507
+ module2.exports = JSON5;
387
1508
  }
388
- printPrebuildFilePath() {
389
- return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
1509
+ });
1510
+
1511
+ // ../../../node_modules/.pnpm/strip-bom@3.0.0/node_modules/strip-bom/index.js
1512
+ var require_strip_bom = __commonJS({
1513
+ "../../../node_modules/.pnpm/strip-bom@3.0.0/node_modules/strip-bom/index.js"(exports, module2) {
1514
+ "use strict";
1515
+ module2.exports = (x) => {
1516
+ if (typeof x !== "string") {
1517
+ throw new TypeError("Expected a string, got " + typeof x);
1518
+ }
1519
+ if (x.charCodeAt(0) === 65279) {
1520
+ return x.slice(1);
1521
+ }
1522
+ return x;
1523
+ };
390
1524
  }
391
- printContentRelativePath(filename) {
392
- if (filename) {
393
- return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
1525
+ });
1526
+
1527
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/tsconfig-loader.js
1528
+ var require_tsconfig_loader = __commonJS({
1529
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/tsconfig-loader.js"(exports) {
1530
+ "use strict";
1531
+ var __assign = exports && exports.__assign || function() {
1532
+ __assign = Object.assign || function(t) {
1533
+ for (var s2, i = 1, n = arguments.length; i < n; i++) {
1534
+ s2 = arguments[i];
1535
+ for (var p in s2)
1536
+ if (Object.prototype.hasOwnProperty.call(s2, p))
1537
+ t[p] = s2[p];
1538
+ }
1539
+ return t;
1540
+ };
1541
+ return __assign.apply(this, arguments);
1542
+ };
1543
+ Object.defineProperty(exports, "__esModule", { value: true });
1544
+ exports.loadTsconfig = exports.walkForTsConfig = exports.tsConfigLoader = void 0;
1545
+ var path16 = require("path");
1546
+ var fs16 = require("fs");
1547
+ var JSON5 = require_lib();
1548
+ var StripBom = require_strip_bom();
1549
+ function tsConfigLoader(_a) {
1550
+ var getEnv = _a.getEnv, cwd = _a.cwd, _b = _a.loadSync, loadSync = _b === void 0 ? loadSyncDefault : _b;
1551
+ var TS_NODE_PROJECT = getEnv("TS_NODE_PROJECT");
1552
+ var TS_NODE_BASEURL = getEnv("TS_NODE_BASEURL");
1553
+ var loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);
1554
+ return loadResult;
1555
+ }
1556
+ exports.tsConfigLoader = tsConfigLoader;
1557
+ function loadSyncDefault(cwd, filename, baseUrl) {
1558
+ var configPath = resolveConfigPath(cwd, filename);
1559
+ if (!configPath) {
1560
+ return {
1561
+ tsConfigPath: void 0,
1562
+ baseUrl: void 0,
1563
+ paths: void 0
1564
+ };
1565
+ }
1566
+ var config2 = loadTsconfig(configPath);
1567
+ return {
1568
+ tsConfigPath: configPath,
1569
+ baseUrl: baseUrl || config2 && config2.compilerOptions && config2.compilerOptions.baseUrl,
1570
+ paths: config2 && config2.compilerOptions && config2.compilerOptions.paths
1571
+ };
394
1572
  }
395
- throw `No path provided to print`;
396
- }
397
- async getPathWithExtension(filepath) {
398
- const extensions = ["tsx", "ts", "jsx", "js"];
399
- let result;
400
- await Promise.all(
401
- extensions.map(async (ext) => {
402
- if (result) {
403
- return;
1573
+ function resolveConfigPath(cwd, filename) {
1574
+ if (filename) {
1575
+ var absolutePath = fs16.lstatSync(filename).isDirectory() ? path16.resolve(filename, "./tsconfig.json") : path16.resolve(cwd, filename);
1576
+ return absolutePath;
1577
+ }
1578
+ if (fs16.statSync(cwd).isFile()) {
1579
+ return path16.resolve(cwd);
1580
+ }
1581
+ var configAbsolutePath = walkForTsConfig(cwd);
1582
+ return configAbsolutePath ? path16.resolve(configAbsolutePath) : void 0;
1583
+ }
1584
+ function walkForTsConfig(directory, readdirSync) {
1585
+ if (readdirSync === void 0) {
1586
+ readdirSync = fs16.readdirSync;
1587
+ }
1588
+ var files = readdirSync(directory);
1589
+ var filesToCheck = ["tsconfig.json", "jsconfig.json"];
1590
+ for (var _i = 0, filesToCheck_1 = filesToCheck; _i < filesToCheck_1.length; _i++) {
1591
+ var fileToCheck = filesToCheck_1[_i];
1592
+ if (files.indexOf(fileToCheck) !== -1) {
1593
+ return path16.join(directory, fileToCheck);
404
1594
  }
405
- const filepathWithExtension = `${filepath}.${ext}`;
406
- const exists = import_fs_extra.default.existsSync(filepathWithExtension);
407
- if (exists) {
408
- result = filepathWithExtension;
1595
+ }
1596
+ var parentDirectory = path16.dirname(directory);
1597
+ if (directory === parentDirectory) {
1598
+ return void 0;
1599
+ }
1600
+ return walkForTsConfig(parentDirectory, readdirSync);
1601
+ }
1602
+ exports.walkForTsConfig = walkForTsConfig;
1603
+ function loadTsconfig(configFilePath, existsSync, readFileSync) {
1604
+ if (existsSync === void 0) {
1605
+ existsSync = fs16.existsSync;
1606
+ }
1607
+ if (readFileSync === void 0) {
1608
+ readFileSync = function(filename) {
1609
+ return fs16.readFileSync(filename, "utf8");
1610
+ };
1611
+ }
1612
+ if (!existsSync(configFilePath)) {
1613
+ return void 0;
1614
+ }
1615
+ var configString = readFileSync(configFilePath);
1616
+ var cleanedJson = StripBom(configString);
1617
+ var config2;
1618
+ try {
1619
+ config2 = JSON5.parse(cleanedJson);
1620
+ } catch (e) {
1621
+ throw new Error("".concat(configFilePath, " is malformed ").concat(e.message));
1622
+ }
1623
+ var extendedConfig = config2.extends;
1624
+ if (extendedConfig) {
1625
+ var base = void 0;
1626
+ if (Array.isArray(extendedConfig)) {
1627
+ base = extendedConfig.reduce(function(currBase, extendedConfigElement) {
1628
+ return mergeTsconfigs(currBase, loadTsconfigFromExtends(configFilePath, extendedConfigElement, existsSync, readFileSync));
1629
+ }, {});
1630
+ } else {
1631
+ base = loadTsconfigFromExtends(configFilePath, extendedConfig, existsSync, readFileSync);
409
1632
  }
410
- })
411
- );
412
- return result;
413
- }
414
- async loadDatabaseFile() {
415
- const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
416
- const outfile = import_path.default.join(tmpdir, "database.build.js");
417
- await esbuild.build({
418
- entryPoints: [this.selfHostedDatabaseFilePath],
419
- bundle: true,
420
- platform: "node",
421
- outfile,
422
- loader: loaders
423
- });
424
- const result = require(outfile);
425
- import_fs_extra.default.removeSync(outfile);
426
- return result.default;
1633
+ return mergeTsconfigs(base, config2);
1634
+ }
1635
+ return config2;
1636
+ }
1637
+ exports.loadTsconfig = loadTsconfig;
1638
+ function loadTsconfigFromExtends(configFilePath, extendedConfigValue, existsSync, readFileSync) {
1639
+ var _a;
1640
+ if (typeof extendedConfigValue === "string" && extendedConfigValue.indexOf(".json") === -1) {
1641
+ extendedConfigValue += ".json";
1642
+ }
1643
+ var currentDir = path16.dirname(configFilePath);
1644
+ var extendedConfigPath = path16.join(currentDir, extendedConfigValue);
1645
+ if (extendedConfigValue.indexOf("/") !== -1 && extendedConfigValue.indexOf(".") !== -1 && !existsSync(extendedConfigPath)) {
1646
+ extendedConfigPath = path16.join(currentDir, "node_modules", extendedConfigValue);
1647
+ }
1648
+ var config2 = loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};
1649
+ if ((_a = config2.compilerOptions) === null || _a === void 0 ? void 0 : _a.baseUrl) {
1650
+ var extendsDir = path16.dirname(extendedConfigValue);
1651
+ config2.compilerOptions.baseUrl = path16.join(extendsDir, config2.compilerOptions.baseUrl);
1652
+ }
1653
+ return config2;
1654
+ }
1655
+ function mergeTsconfigs(base, config2) {
1656
+ base = base || {};
1657
+ config2 = config2 || {};
1658
+ return __assign(__assign(__assign({}, base), config2), { compilerOptions: __assign(__assign({}, base.compilerOptions), config2.compilerOptions) });
1659
+ }
427
1660
  }
428
- async loadConfigFile(generatedFolderPath, configFilePath) {
429
- const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
430
- const prebuild = import_path.default.join(this.generatedFolderPath, "config.prebuild.jsx");
431
- const outfile = import_path.default.join(tmpdir, "config.build.jsx");
432
- const outfile2 = import_path.default.join(tmpdir, "config.build.js");
433
- const tempTSConfigFile = import_path.default.join(tmpdir, "tsconfig.json");
434
- import_fs_extra.default.outputFileSync(tempTSConfigFile, "{}");
435
- const result2 = await esbuild.build({
436
- entryPoints: [configFilePath],
437
- bundle: true,
438
- target: ["es2020"],
439
- platform: "browser",
440
- format: "esm",
441
- logLevel: "silent",
442
- packages: "external",
443
- ignoreAnnotations: true,
444
- outfile: prebuild,
445
- loader: loaders,
446
- metafile: true
447
- });
448
- const flattenedList = [];
449
- Object.keys(result2.metafile.inputs).forEach((key) => {
450
- if (key.includes("node_modules") || key.includes("__generated__")) {
451
- return;
1661
+ });
1662
+
1663
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/config-loader.js
1664
+ var require_config_loader = __commonJS({
1665
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/config-loader.js"(exports) {
1666
+ "use strict";
1667
+ Object.defineProperty(exports, "__esModule", { value: true });
1668
+ exports.configLoader = exports.loadConfig = void 0;
1669
+ var TsConfigLoader2 = require_tsconfig_loader();
1670
+ var path16 = require("path");
1671
+ function loadConfig2(cwd) {
1672
+ if (cwd === void 0) {
1673
+ cwd = process.cwd();
452
1674
  }
453
- flattenedList.push(key);
454
- });
455
- await esbuild.build({
456
- entryPoints: [configFilePath],
457
- bundle: true,
458
- target: ["es2020"],
459
- logLevel: "silent",
460
- platform: "node",
461
- outfile,
462
- loader: loaders
463
- });
464
- await esbuild.build({
465
- entryPoints: [outfile],
466
- bundle: true,
467
- logLevel: "silent",
468
- platform: "node",
469
- outfile: outfile2,
470
- loader: loaders
471
- });
472
- let result;
473
- try {
474
- result = require(outfile2);
475
- } catch (e) {
476
- console.error("Unexpected error loading config");
477
- console.error(e);
478
- throw e;
1675
+ return configLoader({ cwd });
479
1676
  }
480
- import_fs_extra.default.removeSync(outfile);
481
- import_fs_extra.default.removeSync(outfile2);
482
- return {
483
- config: result.default,
484
- prebuildPath: prebuild,
485
- watchList: flattenedList
486
- };
1677
+ exports.loadConfig = loadConfig2;
1678
+ function configLoader(_a) {
1679
+ var cwd = _a.cwd, explicitParams = _a.explicitParams, _b = _a.tsConfigLoader, tsConfigLoader = _b === void 0 ? TsConfigLoader2.tsConfigLoader : _b;
1680
+ if (explicitParams) {
1681
+ var absoluteBaseUrl = path16.isAbsolute(explicitParams.baseUrl) ? explicitParams.baseUrl : path16.join(cwd, explicitParams.baseUrl);
1682
+ return {
1683
+ resultType: "success",
1684
+ configFileAbsolutePath: "",
1685
+ baseUrl: explicitParams.baseUrl,
1686
+ absoluteBaseUrl,
1687
+ paths: explicitParams.paths,
1688
+ mainFields: explicitParams.mainFields,
1689
+ addMatchAll: explicitParams.addMatchAll
1690
+ };
1691
+ }
1692
+ var loadResult = tsConfigLoader({
1693
+ cwd,
1694
+ getEnv: function(key) {
1695
+ return process.env[key];
1696
+ }
1697
+ });
1698
+ if (!loadResult.tsConfigPath) {
1699
+ return {
1700
+ resultType: "failed",
1701
+ message: "Couldn't find tsconfig.json"
1702
+ };
1703
+ }
1704
+ return {
1705
+ resultType: "success",
1706
+ configFileAbsolutePath: loadResult.tsConfigPath,
1707
+ baseUrl: loadResult.baseUrl,
1708
+ absoluteBaseUrl: path16.resolve(path16.dirname(loadResult.tsConfigPath), loadResult.baseUrl || ""),
1709
+ paths: loadResult.paths || {},
1710
+ addMatchAll: loadResult.baseUrl !== void 0
1711
+ };
1712
+ }
1713
+ exports.configLoader = configLoader;
487
1714
  }
488
- };
489
- var loaders = {
490
- ".aac": "file",
491
- ".css": "file",
492
- ".eot": "file",
493
- ".flac": "file",
494
- ".gif": "file",
495
- ".jpeg": "file",
496
- ".jpg": "file",
497
- ".json": "json",
498
- ".mp3": "file",
499
- ".mp4": "file",
500
- ".ogg": "file",
501
- ".otf": "file",
502
- ".png": "file",
503
- ".svg": "file",
504
- ".ttf": "file",
505
- ".wav": "file",
506
- ".webm": "file",
507
- ".webp": "file",
508
- ".woff": "file",
509
- ".woff2": "file",
510
- ".js": "jsx",
511
- ".jsx": "jsx",
512
- ".tsx": "tsx"
513
- };
1715
+ });
514
1716
 
515
- // src/next/commands/dev-command/html.ts
516
- var errorHTML = `<style type="text/css">
517
- #no-assets-placeholder body {
518
- font-family: sans-serif;
519
- font-size: 16px;
520
- line-height: 1.4;
521
- color: #333;
522
- background-color: #f5f5f5;
523
- }
524
- #no-assets-placeholder {
525
- max-width: 600px;
526
- margin: 0 auto;
527
- padding: 40px;
528
- text-align: center;
529
- background-color: #fff;
530
- box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
531
- }
532
- #no-assets-placeholder h1 {
533
- font-size: 24px;
534
- margin-bottom: 20px;
535
- }
536
- #no-assets-placeholder p {
537
- margin-bottom: 10px;
538
- }
539
- #no-assets-placeholder a {
540
- color: #0077cc;
541
- text-decoration: none;
542
- }
543
- #no-assets-placeholder a:hover {
544
- text-decoration: underline;
545
- }
546
- </style>
547
- <div id="no-assets-placeholder">
548
- <h1>Failed loading TinaCMS assets</h1>
549
- <p>
550
- Your TinaCMS configuration may be misconfigured, and we could not load
551
- the assets for this page.
552
- </p>
553
- <p>
554
- Please visit <a href="https://tina.io/docs/tina-cloud/faq/#how-do-i-resolve-failed-loading-tinacms-assets-error">this doc</a> for help.
555
- </p>
556
- </div>
557
- </div>`.trim().replace(/[\r\n\s]+/g, " ");
558
- var devHTML = (port) => `<!DOCTYPE html>
559
- <html lang="en">
560
- <head>
561
- <meta charset="UTF-8" />
562
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
563
- <title>TinaCMS</title>
564
- </head>
1717
+ // ../../../node_modules/.pnpm/minimist@1.2.8/node_modules/minimist/index.js
1718
+ var require_minimist = __commonJS({
1719
+ "../../../node_modules/.pnpm/minimist@1.2.8/node_modules/minimist/index.js"(exports, module2) {
1720
+ "use strict";
1721
+ function hasKey(obj, keys) {
1722
+ var o = obj;
1723
+ keys.slice(0, -1).forEach(function(key2) {
1724
+ o = o[key2] || {};
1725
+ });
1726
+ var key = keys[keys.length - 1];
1727
+ return key in o;
1728
+ }
1729
+ function isNumber(x) {
1730
+ if (typeof x === "number") {
1731
+ return true;
1732
+ }
1733
+ if (/^0x[0-9a-f]+$/i.test(x)) {
1734
+ return true;
1735
+ }
1736
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
1737
+ }
1738
+ function isConstructorOrProto(obj, key) {
1739
+ return key === "constructor" && typeof obj[key] === "function" || key === "__proto__";
1740
+ }
1741
+ module2.exports = function(args, opts) {
1742
+ if (!opts) {
1743
+ opts = {};
1744
+ }
1745
+ var flags = {
1746
+ bools: {},
1747
+ strings: {},
1748
+ unknownFn: null
1749
+ };
1750
+ if (typeof opts.unknown === "function") {
1751
+ flags.unknownFn = opts.unknown;
1752
+ }
1753
+ if (typeof opts.boolean === "boolean" && opts.boolean) {
1754
+ flags.allBools = true;
1755
+ } else {
1756
+ [].concat(opts.boolean).filter(Boolean).forEach(function(key2) {
1757
+ flags.bools[key2] = true;
1758
+ });
1759
+ }
1760
+ var aliases = {};
1761
+ function aliasIsBoolean(key2) {
1762
+ return aliases[key2].some(function(x) {
1763
+ return flags.bools[x];
1764
+ });
1765
+ }
1766
+ Object.keys(opts.alias || {}).forEach(function(key2) {
1767
+ aliases[key2] = [].concat(opts.alias[key2]);
1768
+ aliases[key2].forEach(function(x) {
1769
+ aliases[x] = [key2].concat(aliases[key2].filter(function(y) {
1770
+ return x !== y;
1771
+ }));
1772
+ });
1773
+ });
1774
+ [].concat(opts.string).filter(Boolean).forEach(function(key2) {
1775
+ flags.strings[key2] = true;
1776
+ if (aliases[key2]) {
1777
+ [].concat(aliases[key2]).forEach(function(k) {
1778
+ flags.strings[k] = true;
1779
+ });
1780
+ }
1781
+ });
1782
+ var defaults = opts.default || {};
1783
+ var argv = { _: [] };
1784
+ function argDefined(key2, arg2) {
1785
+ return flags.allBools && /^--[^=]+$/.test(arg2) || flags.strings[key2] || flags.bools[key2] || aliases[key2];
1786
+ }
1787
+ function setKey(obj, keys, value2) {
1788
+ var o = obj;
1789
+ for (var i2 = 0; i2 < keys.length - 1; i2++) {
1790
+ var key2 = keys[i2];
1791
+ if (isConstructorOrProto(o, key2)) {
1792
+ return;
1793
+ }
1794
+ if (o[key2] === void 0) {
1795
+ o[key2] = {};
1796
+ }
1797
+ if (o[key2] === Object.prototype || o[key2] === Number.prototype || o[key2] === String.prototype) {
1798
+ o[key2] = {};
1799
+ }
1800
+ if (o[key2] === Array.prototype) {
1801
+ o[key2] = [];
1802
+ }
1803
+ o = o[key2];
1804
+ }
1805
+ var lastKey = keys[keys.length - 1];
1806
+ if (isConstructorOrProto(o, lastKey)) {
1807
+ return;
1808
+ }
1809
+ if (o === Object.prototype || o === Number.prototype || o === String.prototype) {
1810
+ o = {};
1811
+ }
1812
+ if (o === Array.prototype) {
1813
+ o = [];
1814
+ }
1815
+ if (o[lastKey] === void 0 || flags.bools[lastKey] || typeof o[lastKey] === "boolean") {
1816
+ o[lastKey] = value2;
1817
+ } else if (Array.isArray(o[lastKey])) {
1818
+ o[lastKey].push(value2);
1819
+ } else {
1820
+ o[lastKey] = [o[lastKey], value2];
1821
+ }
1822
+ }
1823
+ function setArg(key2, val, arg2) {
1824
+ if (arg2 && flags.unknownFn && !argDefined(key2, arg2)) {
1825
+ if (flags.unknownFn(arg2) === false) {
1826
+ return;
1827
+ }
1828
+ }
1829
+ var value2 = !flags.strings[key2] && isNumber(val) ? Number(val) : val;
1830
+ setKey(argv, key2.split("."), value2);
1831
+ (aliases[key2] || []).forEach(function(x) {
1832
+ setKey(argv, x.split("."), value2);
1833
+ });
1834
+ }
1835
+ Object.keys(flags.bools).forEach(function(key2) {
1836
+ setArg(key2, defaults[key2] === void 0 ? false : defaults[key2]);
1837
+ });
1838
+ var notFlags = [];
1839
+ if (args.indexOf("--") !== -1) {
1840
+ notFlags = args.slice(args.indexOf("--") + 1);
1841
+ args = args.slice(0, args.indexOf("--"));
1842
+ }
1843
+ for (var i = 0; i < args.length; i++) {
1844
+ var arg = args[i];
1845
+ var key;
1846
+ var next;
1847
+ if (/^--.+=/.test(arg)) {
1848
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
1849
+ key = m[1];
1850
+ var value = m[2];
1851
+ if (flags.bools[key]) {
1852
+ value = value !== "false";
1853
+ }
1854
+ setArg(key, value, arg);
1855
+ } else if (/^--no-.+/.test(arg)) {
1856
+ key = arg.match(/^--no-(.+)/)[1];
1857
+ setArg(key, false, arg);
1858
+ } else if (/^--.+/.test(arg)) {
1859
+ key = arg.match(/^--(.+)/)[1];
1860
+ next = args[i + 1];
1861
+ if (next !== void 0 && !/^(-|--)[^-]/.test(next) && !flags.bools[key] && !flags.allBools && (aliases[key] ? !aliasIsBoolean(key) : true)) {
1862
+ setArg(key, next, arg);
1863
+ i += 1;
1864
+ } else if (/^(true|false)$/.test(next)) {
1865
+ setArg(key, next === "true", arg);
1866
+ i += 1;
1867
+ } else {
1868
+ setArg(key, flags.strings[key] ? "" : true, arg);
1869
+ }
1870
+ } else if (/^-[^-]+/.test(arg)) {
1871
+ var letters = arg.slice(1, -1).split("");
1872
+ var broken = false;
1873
+ for (var j = 0; j < letters.length; j++) {
1874
+ next = arg.slice(j + 2);
1875
+ if (next === "-") {
1876
+ setArg(letters[j], next, arg);
1877
+ continue;
1878
+ }
1879
+ if (/[A-Za-z]/.test(letters[j]) && next[0] === "=") {
1880
+ setArg(letters[j], next.slice(1), arg);
1881
+ broken = true;
1882
+ break;
1883
+ }
1884
+ if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
1885
+ setArg(letters[j], next, arg);
1886
+ broken = true;
1887
+ break;
1888
+ }
1889
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
1890
+ setArg(letters[j], arg.slice(j + 2), arg);
1891
+ broken = true;
1892
+ break;
1893
+ } else {
1894
+ setArg(letters[j], flags.strings[letters[j]] ? "" : true, arg);
1895
+ }
1896
+ }
1897
+ key = arg.slice(-1)[0];
1898
+ if (!broken && key !== "-") {
1899
+ if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1]) && !flags.bools[key] && (aliases[key] ? !aliasIsBoolean(key) : true)) {
1900
+ setArg(key, args[i + 1], arg);
1901
+ i += 1;
1902
+ } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) {
1903
+ setArg(key, args[i + 1] === "true", arg);
1904
+ i += 1;
1905
+ } else {
1906
+ setArg(key, flags.strings[key] ? "" : true, arg);
1907
+ }
1908
+ }
1909
+ } else {
1910
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
1911
+ argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
1912
+ }
1913
+ if (opts.stopEarly) {
1914
+ argv._.push.apply(argv._, args.slice(i + 1));
1915
+ break;
1916
+ }
1917
+ }
1918
+ }
1919
+ Object.keys(defaults).forEach(function(k) {
1920
+ if (!hasKey(argv, k.split("."))) {
1921
+ setKey(argv, k.split("."), defaults[k]);
1922
+ (aliases[k] || []).forEach(function(x) {
1923
+ setKey(argv, x.split("."), defaults[k]);
1924
+ });
1925
+ }
1926
+ });
1927
+ if (opts["--"]) {
1928
+ argv["--"] = notFlags.slice();
1929
+ } else {
1930
+ notFlags.forEach(function(k) {
1931
+ argv._.push(k);
1932
+ });
1933
+ }
1934
+ return argv;
1935
+ };
1936
+ }
1937
+ });
565
1938
 
566
- <!-- if development -->
567
- <script type="module">
568
- import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
569
- RefreshRuntime.injectIntoGlobalHook(window)
570
- window.$RefreshReg$ = () => {}
571
- window.$RefreshSig$ = () => (type) => type
572
- window.__vite_plugin_react_preamble_installed__ = true
573
- <\/script>
574
- <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
575
- <script>
576
- function handleLoadError() {
577
- // Assets have failed to load
578
- document.getElementById('root').innerHTML = '${errorHTML}';
1939
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/register.js
1940
+ var require_register = __commonJS({
1941
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/register.js"(exports) {
1942
+ "use strict";
1943
+ var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) {
1944
+ if (pack || arguments.length === 2)
1945
+ for (var i = 0, l = from.length, ar; i < l; i++) {
1946
+ if (ar || !(i in from)) {
1947
+ if (!ar)
1948
+ ar = Array.prototype.slice.call(from, 0, i);
1949
+ ar[i] = from[i];
1950
+ }
1951
+ }
1952
+ return to.concat(ar || Array.prototype.slice.call(from));
1953
+ };
1954
+ Object.defineProperty(exports, "__esModule", { value: true });
1955
+ exports.register = void 0;
1956
+ var match_path_sync_1 = require_match_path_sync();
1957
+ var config_loader_1 = require_config_loader();
1958
+ var noOp = function() {
1959
+ return void 0;
1960
+ };
1961
+ function getCoreModules(builtinModules) {
1962
+ builtinModules = builtinModules || [
1963
+ "assert",
1964
+ "buffer",
1965
+ "child_process",
1966
+ "cluster",
1967
+ "crypto",
1968
+ "dgram",
1969
+ "dns",
1970
+ "domain",
1971
+ "events",
1972
+ "fs",
1973
+ "http",
1974
+ "https",
1975
+ "net",
1976
+ "os",
1977
+ "path",
1978
+ "punycode",
1979
+ "querystring",
1980
+ "readline",
1981
+ "stream",
1982
+ "string_decoder",
1983
+ "tls",
1984
+ "tty",
1985
+ "url",
1986
+ "util",
1987
+ "v8",
1988
+ "vm",
1989
+ "zlib"
1990
+ ];
1991
+ var coreModules = {};
1992
+ for (var _i = 0, builtinModules_1 = builtinModules; _i < builtinModules_1.length; _i++) {
1993
+ var module_1 = builtinModules_1[_i];
1994
+ coreModules[module_1] = true;
1995
+ }
1996
+ return coreModules;
1997
+ }
1998
+ function register(params) {
1999
+ var cwd;
2000
+ var explicitParams;
2001
+ if (params) {
2002
+ cwd = params.cwd;
2003
+ if (params.baseUrl || params.paths) {
2004
+ explicitParams = params;
2005
+ }
2006
+ } else {
2007
+ var minimist = require_minimist();
2008
+ var argv = minimist(process.argv.slice(2), {
2009
+ string: ["project"],
2010
+ alias: {
2011
+ project: ["P"]
2012
+ }
2013
+ });
2014
+ cwd = argv.project;
2015
+ }
2016
+ var configLoaderResult = (0, config_loader_1.configLoader)({
2017
+ cwd: cwd !== null && cwd !== void 0 ? cwd : process.cwd(),
2018
+ explicitParams
2019
+ });
2020
+ if (configLoaderResult.resultType === "failed") {
2021
+ console.warn("".concat(configLoaderResult.message, ". tsconfig-paths will be skipped"));
2022
+ return noOp;
2023
+ }
2024
+ var matchPath = (0, match_path_sync_1.createMatchPath)(configLoaderResult.absoluteBaseUrl, configLoaderResult.paths, configLoaderResult.mainFields, configLoaderResult.addMatchAll);
2025
+ var Module = require("module");
2026
+ var originalResolveFilename = Module._resolveFilename;
2027
+ var coreModules = getCoreModules(Module.builtinModules);
2028
+ Module._resolveFilename = function(request2, _parent) {
2029
+ var isCoreModule = coreModules.hasOwnProperty(request2);
2030
+ if (!isCoreModule) {
2031
+ var found = matchPath(request2);
2032
+ if (found) {
2033
+ var modifiedArguments = __spreadArray([found], [].slice.call(arguments, 1), true);
2034
+ return originalResolveFilename.apply(this, modifiedArguments);
2035
+ }
2036
+ }
2037
+ return originalResolveFilename.apply(this, arguments);
2038
+ };
2039
+ return function() {
2040
+ Module._resolveFilename = originalResolveFilename;
2041
+ };
2042
+ }
2043
+ exports.register = register;
579
2044
  }
580
- <\/script>
581
- <script
582
- type="module"
583
- src="http://localhost:${port}/src/main.tsx"
584
- onerror="handleLoadError()"
585
- ><\/script>
586
- <body class="tina-tailwind">
587
- <div id="root"></div>
588
- </body>
589
- </html>`;
2045
+ });
590
2046
 
591
- // src/utils/theme.ts
592
- var import_chalk3 = __toESM(require("chalk"));
593
- var successText = import_chalk3.default.bold.green;
594
- var focusText = import_chalk3.default.bold;
595
- var dangerText = import_chalk3.default.bold.red;
596
- var neutralText = import_chalk3.default.bold.cyan;
597
- var linkText = import_chalk3.default.bold.cyan;
598
- var labelText = import_chalk3.default.bold;
599
- var cmdText = import_chalk3.default.inverse;
600
- var indentedCmd = (str) => {
601
- return ` \u2503 ` + str;
602
- };
603
- var indentText = (str) => {
604
- return String(str).split("\n").map((line) => ` ${line}`).join("\n");
605
- };
606
- var logText = import_chalk3.default.italic.gray;
607
- var warnText = import_chalk3.default.yellowBright.bgBlack;
608
- var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
609
- var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
2047
+ // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/index.js
2048
+ var require_lib2 = __commonJS({
2049
+ "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/index.js"(exports) {
2050
+ "use strict";
2051
+ Object.defineProperty(exports, "__esModule", { value: true });
2052
+ exports.loadConfig = exports.register = exports.matchFromAbsolutePathsAsync = exports.createMatchPathAsync = exports.matchFromAbsolutePaths = exports.createMatchPath = void 0;
2053
+ var match_path_sync_1 = require_match_path_sync();
2054
+ Object.defineProperty(exports, "createMatchPath", { enumerable: true, get: function() {
2055
+ return match_path_sync_1.createMatchPath;
2056
+ } });
2057
+ Object.defineProperty(exports, "matchFromAbsolutePaths", { enumerable: true, get: function() {
2058
+ return match_path_sync_1.matchFromAbsolutePaths;
2059
+ } });
2060
+ var match_path_async_1 = require_match_path_async();
2061
+ Object.defineProperty(exports, "createMatchPathAsync", { enumerable: true, get: function() {
2062
+ return match_path_async_1.createMatchPathAsync;
2063
+ } });
2064
+ Object.defineProperty(exports, "matchFromAbsolutePathsAsync", { enumerable: true, get: function() {
2065
+ return match_path_async_1.matchFromAbsolutePathsAsync;
2066
+ } });
2067
+ var register_1 = require_register();
2068
+ Object.defineProperty(exports, "register", { enumerable: true, get: function() {
2069
+ return register_1.register;
2070
+ } });
2071
+ var config_loader_1 = require_config_loader();
2072
+ Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function() {
2073
+ return config_loader_1.loadConfig;
2074
+ } });
2075
+ }
2076
+ });
610
2077
 
611
- // src/next/commands/dev-command/server/index.ts
612
- var import_vite3 = require("vite");
2078
+ // src/index.ts
2079
+ var src_exports = {};
2080
+ __export(src_exports, {
2081
+ default: () => src_default
2082
+ });
2083
+ module.exports = __toCommonJS(src_exports);
2084
+ var import_clipanion8 = require("clipanion");
2085
+
2086
+ // package.json
2087
+ var version = "1.7.0";
2088
+
2089
+ // src/next/commands/dev-command/index.ts
2090
+ var import_clipanion2 = require("clipanion");
2091
+ var import_fs_extra7 = __toESM(require("fs-extra"));
2092
+ var import_path7 = __toESM(require("path"));
2093
+ var import_chokidar = __toESM(require("chokidar"));
2094
+ var import_graphql10 = require("@tinacms/graphql");
2095
+
2096
+ // src/next/config-manager.ts
2097
+ var import_fs_extra3 = __toESM(require("fs-extra"));
2098
+ var import_path3 = __toESM(require("path"));
2099
+ var import_os = __toESM(require("os"));
2100
+ var esbuild = __toESM(require("esbuild"));
2101
+ var dotenv = __toESM(require("dotenv"));
2102
+ var import_normalize_path2 = __toESM(require("normalize-path"));
2103
+ var import_chalk2 = __toESM(require("chalk"));
613
2104
 
614
2105
  // src/next/vite/index.ts
615
2106
  var import_node_path2 = __toESM(require("path"));
616
2107
  var import_plugin_react = __toESM(require("@vitejs/plugin-react"));
617
- var import_fs_extra2 = __toESM(require("fs-extra"));
618
- var import_normalize_path2 = __toESM(require("normalize-path"));
2108
+ var import_fs_extra = __toESM(require("fs-extra"));
2109
+ var import_normalize_path = __toESM(require("normalize-path"));
619
2110
  var import_vite = require("vite");
620
2111
 
621
2112
  // src/next/vite/tailwind.ts
@@ -876,200 +2367,938 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
876
2367
  });
877
2368
  plugins.push(tw);
878
2369
  return {
879
- css: {
880
- postcss: {
881
- plugins
882
- }
883
- }
2370
+ css: {
2371
+ postcss: {
2372
+ plugins
2373
+ }
2374
+ }
2375
+ };
2376
+ }
2377
+ };
2378
+ };
2379
+
2380
+ // src/next/vite/index.ts
2381
+ async function listFilesRecursively({
2382
+ directoryPath,
2383
+ config: config2,
2384
+ roothPath
2385
+ }) {
2386
+ const fullDirectoryPath = import_node_path2.default.join(
2387
+ roothPath,
2388
+ config2.publicFolder,
2389
+ directoryPath
2390
+ );
2391
+ const exists = await import_fs_extra.default.pathExists(fullDirectoryPath);
2392
+ if (!exists) {
2393
+ return { "0": [] };
2394
+ }
2395
+ const items = await import_fs_extra.default.readdir(fullDirectoryPath);
2396
+ const staticMediaItems = [];
2397
+ for (const item of items) {
2398
+ const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
2399
+ const stats = await import_fs_extra.default.promises.lstat(itemPath);
2400
+ const staticMediaItem = {
2401
+ id: item,
2402
+ filename: item,
2403
+ type: stats.isDirectory() ? "dir" : "file",
2404
+ directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
2405
+ src: `/${import_node_path2.default.join(directoryPath, item)}`,
2406
+ thumbnails: {
2407
+ "75x75": `/${import_node_path2.default.join(directoryPath, item)}`,
2408
+ "400x400": `/${import_node_path2.default.join(directoryPath, item)}`,
2409
+ "1000x1000": `/${import_node_path2.default.join(directoryPath, item)}`
2410
+ }
2411
+ };
2412
+ if (stats.isDirectory()) {
2413
+ staticMediaItem.children = await listFilesRecursively({
2414
+ directoryPath: import_node_path2.default.join(directoryPath, item),
2415
+ config: config2,
2416
+ roothPath
2417
+ });
2418
+ }
2419
+ staticMediaItems.push(staticMediaItem);
2420
+ }
2421
+ function chunkArrayIntoObject(array, chunkSize) {
2422
+ const result = {};
2423
+ for (let i = 0; i < array.length; i += chunkSize) {
2424
+ const chunkKey = `${i / chunkSize * 20}`;
2425
+ result[chunkKey] = array.slice(i, i + chunkSize);
2426
+ }
2427
+ return result;
2428
+ }
2429
+ return chunkArrayIntoObject(staticMediaItems, 20);
2430
+ }
2431
+ var loadProjectConfig = async ({
2432
+ rootPath,
2433
+ viteConfigEnv
2434
+ }) => {
2435
+ if (viteConfigEnv) {
2436
+ const configFileJs = import_node_path2.default.join(rootPath, "vite.config.js");
2437
+ const configFileTs = import_node_path2.default.join(rootPath, "vite.config.ts");
2438
+ if (import_fs_extra.default.existsSync(configFileJs)) {
2439
+ return await (0, import_vite.loadConfigFromFile)(viteConfigEnv, configFileJs);
2440
+ } else if (import_fs_extra.default.existsSync(configFileTs)) {
2441
+ return await (0, import_vite.loadConfigFromFile)(viteConfigEnv, configFileTs);
2442
+ }
2443
+ }
2444
+ return { config: {} };
2445
+ };
2446
+ var createConfig = async ({
2447
+ configManager,
2448
+ database,
2449
+ apiURL,
2450
+ plugins = [],
2451
+ noWatch,
2452
+ rollupOptions,
2453
+ viteConfigEnv
2454
+ }) => {
2455
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2456
+ const projectConfig = await loadProjectConfig({
2457
+ rootPath: configManager.rootPath,
2458
+ viteConfigEnv
2459
+ });
2460
+ const publicEnv = {};
2461
+ Object.keys(process.env).forEach((key) => {
2462
+ if (key.startsWith("TINA_PUBLIC_") || key.startsWith("NEXT_PUBLIC_") || key === "NODE_ENV" || key === "HEAD") {
2463
+ try {
2464
+ if (typeof process.env[key] === "string") {
2465
+ publicEnv[key] = process.env[key];
2466
+ } else {
2467
+ publicEnv[key] = JSON.stringify(process.env[key]);
2468
+ }
2469
+ } catch (error) {
2470
+ console.warn(
2471
+ `Could not stringify public env process.env.${key} env variable`
2472
+ );
2473
+ console.warn(error);
2474
+ }
2475
+ }
2476
+ });
2477
+ const staticMediaPath = import_node_path2.default.join(
2478
+ configManager.generatedFolderPath,
2479
+ "static-media.json"
2480
+ );
2481
+ if ((_b = (_a = configManager.config.media) == null ? void 0 : _a.tina) == null ? void 0 : _b.static) {
2482
+ const staticMedia = await listFilesRecursively({
2483
+ directoryPath: ((_c = configManager.config.media.tina) == null ? void 0 : _c.mediaRoot) || "",
2484
+ config: configManager.config.media.tina,
2485
+ roothPath: configManager.rootPath
2486
+ });
2487
+ await import_fs_extra.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
2488
+ } else {
2489
+ await import_fs_extra.default.outputFile(staticMediaPath, `[]`);
2490
+ }
2491
+ const alias = {
2492
+ TINA_IMPORT: configManager.prebuildFilePath,
2493
+ SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
2494
+ STATIC_MEDIA_IMPORT: staticMediaPath,
2495
+ crypto: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2496
+ fs: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2497
+ os: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2498
+ path: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
2499
+ };
2500
+ if (configManager.shouldSkipSDK()) {
2501
+ alias["CLIENT_IMPORT"] = import_node_path2.default.join(
2502
+ configManager.spaRootPath,
2503
+ "src",
2504
+ "dummy-client.ts"
2505
+ );
2506
+ } else {
2507
+ alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
2508
+ }
2509
+ let basePath;
2510
+ if (configManager.config.build.basePath) {
2511
+ basePath = configManager.config.build.basePath;
2512
+ }
2513
+ const fullVersion = configManager.getTinaGraphQLVersion();
2514
+ const version2 = `${fullVersion.major}.${fullVersion.minor}`;
2515
+ const config2 = {
2516
+ root: configManager.spaRootPath,
2517
+ base: `/${basePath ? `${(0, import_normalize_path.default)(basePath)}/` : ""}${(0, import_normalize_path.default)(
2518
+ configManager.config.build.outputFolder
2519
+ )}/`,
2520
+ appType: "spa",
2521
+ resolve: {
2522
+ alias: {
2523
+ ...(_d = projectConfig.config.resolve) == null ? void 0 : _d.alias,
2524
+ ...alias
2525
+ },
2526
+ dedupe: ["graphql", "tinacms", "react", "react-dom", "react-router-dom"]
2527
+ },
2528
+ define: {
2529
+ "process.env": `new Object(${JSON.stringify(publicEnv)})`,
2530
+ "process.platform": `"${process.platform}"`,
2531
+ __API_URL__: `"${apiURL}"`,
2532
+ __BASE_PATH__: `"${((_f = (_e = configManager.config) == null ? void 0 : _e.build) == null ? void 0 : _f.basePath) || ""}"`,
2533
+ __TINA_GRAPHQL_VERSION__: version2
2534
+ },
2535
+ logLevel: "error",
2536
+ optimizeDeps: {
2537
+ force: true,
2538
+ include: ["react/jsx-runtime", "react/jsx-dev-runtime"]
2539
+ },
2540
+ server: {
2541
+ host: (_i = (_h = (_g = configManager.config) == null ? void 0 : _g.build) == null ? void 0 : _h.host) != null ? _i : false,
2542
+ watch: noWatch ? {
2543
+ ignored: ["**/*"]
2544
+ } : {
2545
+ ignored: [
2546
+ `${configManager.tinaFolderPath}/**/!(config.prebuild.jsx|_graphql.json)`
2547
+ ]
2548
+ },
2549
+ fs: {
2550
+ strict: false
2551
+ }
2552
+ },
2553
+ build: {
2554
+ sourcemap: false,
2555
+ outDir: configManager.outputFolderPath,
2556
+ emptyOutDir: true,
2557
+ rollupOptions
2558
+ },
2559
+ plugins: [
2560
+ (0, import_plugin_react.default)({
2561
+ babel: {
2562
+ compact: true
2563
+ }
2564
+ }),
2565
+ (0, import_vite.splitVendorChunkPlugin)(),
2566
+ tinaTailwind(configManager.spaRootPath, configManager.prebuildFilePath),
2567
+ ...plugins
2568
+ ]
2569
+ };
2570
+ return config2;
2571
+ };
2572
+
2573
+ // src/next/config-manager.ts
2574
+ var import_tsconfig_paths = __toESM(require_lib2());
2575
+
2576
+ // src/logger/index.ts
2577
+ var import_chalk = __toESM(require("chalk"));
2578
+
2579
+ // src/logger/is-unicode-supported.ts
2580
+ function isUnicodeSupported() {
2581
+ if (process.platform !== "win32") {
2582
+ return process.env.TERM !== "linux";
2583
+ }
2584
+ return Boolean(process.env.CI) || Boolean(process.env.WT_SESSION) || Boolean(process.env.TERMINUS_SUBLIME) || process.env.ConEmuTask === "{cmd::Cmder}" || process.env.TERM_PROGRAM === "Terminus-Sublime" || process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty" || process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
2585
+ }
2586
+
2587
+ // src/logger/index.ts
2588
+ var import_log4js = __toESM(require("log4js"));
2589
+ var logger = import_log4js.default.getLogger();
2590
+ import_log4js.default.configure({
2591
+ appenders: {
2592
+ out: { type: "stdout", layout: { type: "messagePassThrough" } }
2593
+ },
2594
+ categories: { default: { appenders: ["out"], level: "info" } }
2595
+ });
2596
+ logger.level = "info";
2597
+ function ansiRegex() {
2598
+ const pattern = [
2599
+ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
2600
+ "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
2601
+ ].join("|");
2602
+ return new RegExp(pattern, "g");
2603
+ }
2604
+ var bar = "\u2502";
2605
+ var strip = (str) => str.replace(ansiRegex(), "");
2606
+ var note = (message = "", title = "") => {
2607
+ const lines = `
2608
+ ${message}
2609
+ `.split("\n");
2610
+ const len = lines.reduce((sum, ln) => {
2611
+ ln = strip(ln);
2612
+ return ln.length > sum ? ln.length : sum;
2613
+ }, 0) + 2;
2614
+ const msg = lines.map(
2615
+ (ln) => `${import_chalk.default.gray(bar)} ${import_chalk.default.white(ln)}${" ".repeat(
2616
+ len - strip(ln).length
2617
+ )}${import_chalk.default.gray(bar)}`
2618
+ ).join("\n");
2619
+ const underscoreLen = len - title.length - 1 > 0 ? len - title.length - 1 : 0;
2620
+ process.stdout.write(
2621
+ `${import_chalk.default.gray(bar)}
2622
+ ${import_chalk.default.green("\u25CB")} ${import_chalk.default.reset(
2623
+ title
2624
+ )} ${import_chalk.default.gray("\u2500".repeat(underscoreLen) + "\u256E")}
2625
+ ${msg}
2626
+ ${import_chalk.default.gray(
2627
+ "\u251C" + "\u2500".repeat(len + 2) + "\u256F"
2628
+ )}
2629
+ `
2630
+ );
2631
+ };
2632
+ var summary = (content) => {
2633
+ const outString = [];
2634
+ let longestKey = 0;
2635
+ content.items.forEach((item) => {
2636
+ item.subItems.forEach((subItem) => {
2637
+ if (subItem.key.length > longestKey) {
2638
+ longestKey = subItem.key.length;
2639
+ }
2640
+ });
2641
+ });
2642
+ content.items.forEach((item) => {
2643
+ outString.push(`${item.emoji} ${import_chalk.default.cyan(item.heading)}`);
2644
+ item.subItems.forEach((subItem) => {
2645
+ const spaces = longestKey - subItem.key.length + 4;
2646
+ outString.push(
2647
+ ` ${subItem.key}:${[...Array(spaces)].join(" ")}${import_chalk.default.cyan(
2648
+ subItem.value
2649
+ )}`
2650
+ );
2651
+ });
2652
+ outString.push(``);
2653
+ });
2654
+ if (process.env.CI) {
2655
+ logger.info(JSON.stringify(content, null, 2));
2656
+ } else {
2657
+ note(outString.join("\n"), content.heading);
2658
+ }
2659
+ };
2660
+ var unicode = isUnicodeSupported();
2661
+ var s = (c, fallback) => unicode ? c : fallback;
2662
+ var S_STEP_ACTIVE = s("\u25C6", "*");
2663
+ var S_STEP_CANCEL = s("\u25A0", "x");
2664
+ var S_STEP_ERROR = s("\u25B2", "x");
2665
+ var S_STEP_SUBMIT = s("\u25C7", "o");
2666
+ var S_BAR_START = s("\u250C", "T");
2667
+ var S_BAR = s("\u2502", "|");
2668
+ var S_BAR_END = s("\u2514", "\u2014");
2669
+ var S_RADIO_ACTIVE = s("\u25CF", ">");
2670
+ var S_RADIO_INACTIVE = s("\u25CB", " ");
2671
+ var S_CHECKBOX_ACTIVE = s("\u25FB", "[\u2022]");
2672
+ var S_CHECKBOX_SELECTED = s("\u25FC", "[+]");
2673
+ var S_CHECKBOX_INACTIVE = s("\u25FB", "[ ]");
2674
+ var S_PASSWORD_MASK = s("\u25AA", "\u2022");
2675
+ var S_BAR_H = s("\u2500", "-");
2676
+ var S_CORNER_TOP_RIGHT = s("\u256E", "+");
2677
+ var S_CONNECT_LEFT = s("\u251C", "+");
2678
+ var S_CORNER_BOTTOM_RIGHT = s("\u256F", "+");
2679
+ var S_INFO = s("\u25CF", "\u2022");
2680
+ var S_SUCCESS = s("\u25C6", "*");
2681
+ var S_WARN = s("\u25B2", "!");
2682
+ var S_ERROR = s("\u25A0", "x");
2683
+
2684
+ // src/utils/alias-helpers.ts
2685
+ var import_path = __toESM(require("path"));
2686
+ function resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths) {
2687
+ return Object.entries(paths).reduce((aliases, [aliasKey, aliasPaths]) => {
2688
+ const baseAliasPath = import_path.default.resolve(
2689
+ absoluteBaseUrl,
2690
+ aliasPaths[0].replace("*", "")
2691
+ );
2692
+ aliases[aliasKey] = baseAliasPath;
2693
+ return aliases;
2694
+ }, {});
2695
+ }
2696
+
2697
+ // src/utils/lib/normalize-options.ts
2698
+ var import_fs_extra2 = __toESM(require("fs-extra"));
2699
+ var import_path2 = __toESM(require("path"));
2700
+ function recursiveResolve(alias, cwd) {
2701
+ console.log("recursiveResolve -> alias", alias);
2702
+ const result = {};
2703
+ const ignoredPatterns = [
2704
+ "node_modules",
2705
+ ".next",
2706
+ ".git",
2707
+ "dist",
2708
+ ".DS_Store",
2709
+ "*.log"
2710
+ ];
2711
+ function shouldIgnore(fileOrDir) {
2712
+ return ignoredPatterns.some(
2713
+ (pattern) => fileOrDir.match(new RegExp(pattern.replace(/\*/g, ".*"), "i"))
2714
+ );
2715
+ }
2716
+ for (const [k, v] of Object.entries(alias)) {
2717
+ if (import_fs_extra2.default.statSync(v).isDirectory()) {
2718
+ import_fs_extra2.default.readdirSync(v).forEach((fileOrDir) => {
2719
+ if (shouldIgnore(fileOrDir)) {
2720
+ console.warn(`Skipping ignored directory or file: ${fileOrDir}`);
2721
+ return;
2722
+ }
2723
+ const isStillDir = import_fs_extra2.default.statSync(import_path2.default.join(v, fileOrDir)).isDirectory();
2724
+ if (isStillDir) {
2725
+ const nextExploreReplacementDir = import_path2.default.join(v, fileOrDir);
2726
+ const currentDir = import_path2.default.dirname(k).replace("**", "");
2727
+ const nextExploreMatchDir = import_path2.default.join(currentDir, fileOrDir);
2728
+ const resolved = recursiveResolve(
2729
+ {
2730
+ [nextExploreMatchDir]: nextExploreReplacementDir
2731
+ },
2732
+ cwd
2733
+ );
2734
+ const [[_k, _v]] = Object.entries(resolved);
2735
+ result[_k] = _v;
2736
+ } else {
2737
+ const replacedKey = k.endsWith("*") ? k.replace("*", fileOrDir.replace(import_path2.default.extname(fileOrDir), "")) : import_path2.default.join(k, fileOrDir.replace(import_path2.default.extname(fileOrDir), ""));
2738
+ const absoluteReplacementValue = import_path2.default.resolve(v, fileOrDir);
2739
+ result[replacedKey] = absoluteReplacementValue;
2740
+ }
2741
+ });
2742
+ k.endsWith("*") && delete alias[k];
2743
+ } else {
2744
+ result[k] = v;
2745
+ }
2746
+ }
2747
+ return result;
2748
+ }
2749
+ function normalizeOption(options = {}) {
2750
+ var _a, _b, _c;
2751
+ const alias = (_a = options.alias) != null ? _a : {};
2752
+ const cwd = (_b = options.cwd) != null ? _b : process.cwd();
2753
+ console.log("where am i now ");
2754
+ const resolvedAlias = recursiveResolve(alias, cwd);
2755
+ const shouldSkipThisPlugin = (_c = options.skip) != null ? _c : !Object.keys(resolvedAlias).length;
2756
+ return {
2757
+ alias: resolvedAlias,
2758
+ skip: shouldSkipThisPlugin,
2759
+ cwd
2760
+ };
2761
+ }
2762
+
2763
+ // src/utils/lib/esbuild-plugin-alias-path.ts
2764
+ var pluginName = "plugin:alias-path";
2765
+ function escapeNamespace(keys) {
2766
+ return new RegExp(
2767
+ `^${keys.map((str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|")}$`
2768
+ );
2769
+ }
2770
+ var aliasPath = (options = {}) => {
2771
+ const { alias, skip } = normalizeOption(options);
2772
+ console.log("After query normalization: ", alias);
2773
+ console.log("aliasPath -> alias", alias);
2774
+ if (skip) {
2775
+ return {
2776
+ name: pluginName,
2777
+ setup() {
2778
+ }
2779
+ };
2780
+ }
2781
+ const escapedNamespace = escapeNamespace(Object.keys(alias));
2782
+ return {
2783
+ name: pluginName,
2784
+ setup(build3) {
2785
+ build3.onResolve({ filter: escapedNamespace }, ({ path: fromPath }) => {
2786
+ const replacedPath = alias[fromPath];
2787
+ if (!replacedPath) {
2788
+ return null;
2789
+ }
2790
+ return {
2791
+ path: replacedPath
2792
+ };
2793
+ });
2794
+ }
2795
+ };
2796
+ };
2797
+
2798
+ // src/next/config-manager.ts
2799
+ var TINA_FOLDER = "tina";
2800
+ var LEGACY_TINA_FOLDER = ".tina";
2801
+ var GENERATED_FOLDER = "__generated__";
2802
+ var GRAPHQL_JSON_FILE = "_graphql.json";
2803
+ var GRAPHQL_GQL_FILE = "schema.gql";
2804
+ var SCHEMA_JSON_FILE = "_schema.json";
2805
+ var LOOKUP_JSON_FILE = "_lookup.json";
2806
+ var ConfigManager = class {
2807
+ constructor({
2808
+ rootPath = process.cwd(),
2809
+ tinaGraphQLVersion,
2810
+ legacyNoSDK
2811
+ }) {
2812
+ this.rootPath = (0, import_normalize_path2.default)(rootPath);
2813
+ this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
2814
+ this.legacyNoSDK = legacyNoSDK;
2815
+ }
2816
+ isUsingTs() {
2817
+ return [".ts", ".tsx"].includes(import_path3.default.extname(this.tinaConfigFilePath));
2818
+ }
2819
+ hasSelfHostedConfig() {
2820
+ return !!this.selfHostedDatabaseFilePath;
2821
+ }
2822
+ hasSeparateContentRoot() {
2823
+ return this.rootPath !== this.contentRootPath;
2824
+ }
2825
+ shouldSkipSDK() {
2826
+ var _a;
2827
+ if (this.legacyNoSDK) {
2828
+ return this.legacyNoSDK;
2829
+ }
2830
+ return ((_a = this.config.client) == null ? void 0 : _a.skip) || false;
2831
+ }
2832
+ async processConfig() {
2833
+ this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
2834
+ this.envFilePath = import_path3.default.resolve(
2835
+ import_path3.default.join(this.tinaFolderPath, "..", ".env")
2836
+ );
2837
+ dotenv.config({ path: this.envFilePath });
2838
+ this.tinaConfigFilePath = await this.getPathWithExtension(
2839
+ import_path3.default.join(this.tinaFolderPath, "config")
2840
+ );
2841
+ if (!this.tinaConfigFilePath) {
2842
+ throw new Error(
2843
+ `Unable to find config file in ${this.tinaFolderPath}. Looking for a file named "config.{ts,tsx,js,jsx}"`
2844
+ );
2845
+ }
2846
+ this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
2847
+ import_path3.default.join(this.tinaFolderPath, "database")
2848
+ );
2849
+ this.generatedFolderPath = import_path3.default.join(this.tinaFolderPath, GENERATED_FOLDER);
2850
+ this.generatedCachePath = import_path3.default.join(
2851
+ this.generatedFolderPath,
2852
+ ".cache",
2853
+ String(new Date().getTime())
2854
+ );
2855
+ this.generatedGraphQLGQLPath = import_path3.default.join(
2856
+ this.generatedFolderPath,
2857
+ GRAPHQL_GQL_FILE
2858
+ );
2859
+ this.generatedGraphQLJSONPath = import_path3.default.join(
2860
+ this.generatedFolderPath,
2861
+ GRAPHQL_JSON_FILE
2862
+ );
2863
+ this.generatedSchemaJSONPath = import_path3.default.join(
2864
+ this.generatedFolderPath,
2865
+ SCHEMA_JSON_FILE
2866
+ );
2867
+ this.generatedLookupJSONPath = import_path3.default.join(
2868
+ this.generatedFolderPath,
2869
+ LOOKUP_JSON_FILE
2870
+ );
2871
+ this.generatedQueriesFilePath = import_path3.default.join(
2872
+ this.generatedFolderPath,
2873
+ "queries.gql"
2874
+ );
2875
+ this.generatedFragmentsFilePath = import_path3.default.join(
2876
+ this.generatedFolderPath,
2877
+ "frags.gql"
2878
+ );
2879
+ this.generatedTypesTSFilePath = import_path3.default.join(
2880
+ this.generatedFolderPath,
2881
+ "types.ts"
2882
+ );
2883
+ this.generatedTypesJSFilePath = import_path3.default.join(
2884
+ this.generatedFolderPath,
2885
+ "types.js"
2886
+ );
2887
+ this.generatedTypesDFilePath = import_path3.default.join(
2888
+ this.generatedFolderPath,
2889
+ "types.d.ts"
2890
+ );
2891
+ this.userQueriesAndFragmentsGlob = import_path3.default.join(
2892
+ this.tinaFolderPath,
2893
+ "queries/**/*.{graphql,gql}"
2894
+ );
2895
+ this.generatedQueriesAndFragmentsGlob = import_path3.default.join(
2896
+ this.generatedFolderPath,
2897
+ "*.{graphql,gql}"
2898
+ );
2899
+ this.generatedClientTSFilePath = import_path3.default.join(
2900
+ this.generatedFolderPath,
2901
+ "client.ts"
2902
+ );
2903
+ this.generatedClientJSFilePath = import_path3.default.join(
2904
+ this.generatedFolderPath,
2905
+ "client.js"
2906
+ );
2907
+ this.generatedClientDFilePath = import_path3.default.join(
2908
+ this.generatedFolderPath,
2909
+ "client.d.ts"
2910
+ );
2911
+ this.generatedDatabaseClientDFilePath = import_path3.default.join(
2912
+ this.generatedFolderPath,
2913
+ "databaseClient.d.ts"
2914
+ );
2915
+ this.generatedDatabaseClientTSFilePath = import_path3.default.join(
2916
+ this.generatedFolderPath,
2917
+ "databaseClient.ts"
2918
+ );
2919
+ this.generatedDatabaseClientJSFilePath = import_path3.default.join(
2920
+ this.generatedFolderPath,
2921
+ "databaseClient.js"
2922
+ );
2923
+ const clientExists = this.isUsingTs() ? await import_fs_extra3.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra3.default.pathExists(this.generatedClientJSFilePath);
2924
+ if (!clientExists) {
2925
+ const file = "export default ()=>({})\nexport const client = ()=>({})";
2926
+ if (this.isUsingTs()) {
2927
+ await import_fs_extra3.default.outputFile(this.generatedClientTSFilePath, file);
2928
+ } else {
2929
+ await import_fs_extra3.default.outputFile(this.generatedClientJSFilePath, file);
2930
+ }
2931
+ }
2932
+ const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
2933
+ this.generatedFolderPath,
2934
+ this.tinaConfigFilePath
2935
+ );
2936
+ this.watchList = watchList;
2937
+ this.config = config2;
2938
+ this.prebuildFilePath = prebuildPath;
2939
+ this.publicFolderPath = import_path3.default.join(
2940
+ this.rootPath,
2941
+ this.config.build.publicFolder
2942
+ );
2943
+ this.outputFolderPath = import_path3.default.join(
2944
+ this.publicFolderPath,
2945
+ this.config.build.outputFolder
2946
+ );
2947
+ this.outputHTMLFilePath = import_path3.default.join(this.outputFolderPath, "index.html");
2948
+ this.outputGitignorePath = import_path3.default.join(this.outputFolderPath, ".gitignore");
2949
+ const fullLocalContentPath = import_path3.default.join(
2950
+ this.tinaFolderPath,
2951
+ this.config.localContentPath || ""
2952
+ );
2953
+ if (this.config.localContentPath) {
2954
+ const localContentPathExists = await import_fs_extra3.default.pathExists(fullLocalContentPath);
2955
+ if (localContentPathExists) {
2956
+ logger.info(`Using separate content repo at ${fullLocalContentPath}`);
2957
+ this.contentRootPath = fullLocalContentPath;
2958
+ } else {
2959
+ logger.warn(
2960
+ `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
2961
+ fullLocalContentPath
2962
+ )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
2963
+ this.tinaConfigFilePath
2964
+ )}`
2965
+ );
2966
+ }
2967
+ }
2968
+ if (!this.contentRootPath) {
2969
+ this.contentRootPath = this.rootPath;
2970
+ }
2971
+ this.generatedFolderPathContentRepo = import_path3.default.join(
2972
+ await this.getTinaFolderPath(this.contentRootPath),
2973
+ GENERATED_FOLDER
2974
+ );
2975
+ this.spaMainPath = require.resolve("@tinacms/app");
2976
+ this.spaRootPath = import_path3.default.join(this.spaMainPath, "..", "..");
2977
+ }
2978
+ async getTinaFolderPath(rootPath) {
2979
+ const tinaFolderPath = import_path3.default.join(rootPath, TINA_FOLDER);
2980
+ const tinaFolderExists = await import_fs_extra3.default.pathExists(tinaFolderPath);
2981
+ if (tinaFolderExists) {
2982
+ this.isUsingLegacyFolder = false;
2983
+ return tinaFolderPath;
2984
+ }
2985
+ const legacyFolderPath = import_path3.default.join(rootPath, LEGACY_TINA_FOLDER);
2986
+ const legacyFolderExists = await import_fs_extra3.default.pathExists(legacyFolderPath);
2987
+ if (legacyFolderExists) {
2988
+ this.isUsingLegacyFolder = true;
2989
+ return legacyFolderPath;
2990
+ }
2991
+ throw new Error(
2992
+ `Unable to find Tina folder, if you're working in folder outside of the Tina config be sure to specify --rootPath`
2993
+ );
2994
+ }
2995
+ getTinaGraphQLVersion() {
2996
+ if (this.tinaGraphQLVersionFromCLI) {
2997
+ const version2 = this.tinaGraphQLVersionFromCLI.split(".");
2998
+ return {
2999
+ fullVersion: this.tinaGraphQLVersionFromCLI,
3000
+ major: version2[0] || "x",
3001
+ minor: version2[1] || "x",
3002
+ patch: version2[2] || "x"
884
3003
  };
885
3004
  }
886
- };
887
- };
888
-
889
- // src/next/vite/index.ts
890
- async function listFilesRecursively({
891
- directoryPath,
892
- config: config2,
893
- roothPath
894
- }) {
895
- const fullDirectoryPath = import_node_path2.default.join(
896
- roothPath,
897
- config2.publicFolder,
898
- directoryPath
899
- );
900
- const exists = await import_fs_extra2.default.pathExists(fullDirectoryPath);
901
- if (!exists) {
902
- return { "0": [] };
3005
+ const generatedSchema = import_fs_extra3.default.readJSONSync(this.generatedSchemaJSONPath);
3006
+ if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined")) {
3007
+ throw new Error(
3008
+ `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
3009
+ );
3010
+ }
3011
+ return generatedSchema.version;
903
3012
  }
904
- const items = await import_fs_extra2.default.readdir(fullDirectoryPath);
905
- const staticMediaItems = [];
906
- for (const item of items) {
907
- const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
908
- const stats = await import_fs_extra2.default.promises.lstat(itemPath);
909
- const staticMediaItem = {
910
- id: item,
911
- filename: item,
912
- type: stats.isDirectory() ? "dir" : "file",
913
- directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
914
- src: `/${import_node_path2.default.join(directoryPath, item)}`,
915
- thumbnails: {
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)}`
919
- }
920
- };
921
- if (stats.isDirectory()) {
922
- staticMediaItem.children = await listFilesRecursively({
923
- directoryPath: import_node_path2.default.join(directoryPath, item),
924
- config: config2,
925
- roothPath
926
- });
3013
+ printGeneratedClientFilePath() {
3014
+ if (this.isUsingTs()) {
3015
+ return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
927
3016
  }
928
- staticMediaItems.push(staticMediaItem);
3017
+ return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
929
3018
  }
930
- function chunkArrayIntoObject(array, chunkSize) {
931
- const result = {};
932
- for (let i = 0; i < array.length; i += chunkSize) {
933
- const chunkKey = `${i / chunkSize * 20}`;
934
- result[chunkKey] = array.slice(i, i + chunkSize);
3019
+ printGeneratedTypesFilePath() {
3020
+ return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
3021
+ }
3022
+ printoutputHTMLFilePath() {
3023
+ return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
3024
+ }
3025
+ printRelativePath(filename) {
3026
+ if (filename) {
3027
+ return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
935
3028
  }
936
- return result;
3029
+ throw `No path provided to print`;
937
3030
  }
938
- return chunkArrayIntoObject(staticMediaItems, 20);
939
- }
940
- var createConfig = async ({
941
- configManager,
942
- database,
943
- apiURL,
944
- plugins = [],
945
- noWatch,
946
- rollupOptions
947
- }) => {
948
- var _a, _b, _c, _d, _e, _f, _g, _h;
949
- const publicEnv = {};
950
- Object.keys(process.env).forEach((key) => {
951
- if (key.startsWith("TINA_PUBLIC_") || key.startsWith("NEXT_PUBLIC_") || key === "NODE_ENV" || key === "HEAD") {
952
- try {
953
- if (typeof process.env[key] === "string") {
954
- publicEnv[key] = process.env[key];
955
- } else {
956
- publicEnv[key] = JSON.stringify(process.env[key]);
957
- }
958
- } catch (error) {
959
- console.warn(
960
- `Could not stringify public env process.env.${key} env variable`
961
- );
962
- console.warn(error);
963
- }
3031
+ printPrebuildFilePath() {
3032
+ return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
3033
+ }
3034
+ printContentRelativePath(filename) {
3035
+ if (filename) {
3036
+ return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
964
3037
  }
965
- });
966
- const staticMediaPath = import_node_path2.default.join(
967
- configManager.generatedFolderPath,
968
- "static-media.json"
969
- );
970
- if ((_b = (_a = configManager.config.media) == null ? void 0 : _a.tina) == null ? void 0 : _b.static) {
971
- const staticMedia = await listFilesRecursively({
972
- directoryPath: ((_c = configManager.config.media.tina) == null ? void 0 : _c.mediaRoot) || "",
973
- config: configManager.config.media.tina,
974
- roothPath: configManager.rootPath
3038
+ throw `No path provided to print`;
3039
+ }
3040
+ async getPathWithExtension(filepath) {
3041
+ const extensions = ["tsx", "ts", "jsx", "js"];
3042
+ let result;
3043
+ await Promise.all(
3044
+ extensions.map(async (ext) => {
3045
+ if (result) {
3046
+ return;
3047
+ }
3048
+ const filepathWithExtension = `${filepath}.${ext}`;
3049
+ const exists = import_fs_extra3.default.existsSync(filepathWithExtension);
3050
+ if (exists) {
3051
+ result = filepathWithExtension;
3052
+ }
3053
+ })
3054
+ );
3055
+ return result;
3056
+ }
3057
+ async loadDatabaseFile() {
3058
+ const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
3059
+ const outfile = import_path3.default.join(tmpdir, "database.build.js");
3060
+ await esbuild.build({
3061
+ entryPoints: [this.selfHostedDatabaseFilePath],
3062
+ bundle: true,
3063
+ platform: "node",
3064
+ outfile,
3065
+ loader: loaders
975
3066
  });
976
- await import_fs_extra2.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
977
- } else {
978
- await import_fs_extra2.default.outputFile(staticMediaPath, `[]`);
3067
+ const result = require(outfile);
3068
+ import_fs_extra3.default.removeSync(outfile);
3069
+ return result.default;
979
3070
  }
980
- const alias = {
981
- TINA_IMPORT: configManager.prebuildFilePath,
982
- SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
983
- STATIC_MEDIA_IMPORT: staticMediaPath,
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")
988
- };
989
- if (configManager.shouldSkipSDK()) {
990
- alias["CLIENT_IMPORT"] = import_node_path2.default.join(
991
- configManager.spaRootPath,
992
- "src",
993
- "dummy-client.ts"
3071
+ async loadConfigFile(generatedFolderPath, configFilePath) {
3072
+ var _a;
3073
+ const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
3074
+ const preBuildConfigPath = import_path3.default.join(
3075
+ this.generatedFolderPath,
3076
+ "config.prebuild.jsx"
994
3077
  );
995
- } else {
996
- alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
3078
+ const outfile = import_path3.default.join(tmpdir, "config.build.jsx");
3079
+ const outfile2 = import_path3.default.join(tmpdir, "config.build.js");
3080
+ const tempTSConfigFile = import_path3.default.join(tmpdir, "tsconfig.json");
3081
+ const viteConfig = await loadProjectConfig({
3082
+ rootPath: this.rootPath,
3083
+ viteConfigEnv: {
3084
+ command: "build",
3085
+ mode: "production"
3086
+ }
3087
+ });
3088
+ const tsconfigPath = import_path3.default.join(this.rootPath, "tsconfig.json");
3089
+ let dynamicAliases = {};
3090
+ if (import_fs_extra3.default.existsSync(tsconfigPath)) {
3091
+ const tsConfigResult = (0, import_tsconfig_paths.loadConfig)(tsconfigPath);
3092
+ if (tsConfigResult.resultType === "success") {
3093
+ const { absoluteBaseUrl, paths } = tsConfigResult;
3094
+ dynamicAliases = resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths);
3095
+ } else {
3096
+ console.error("Failed to load tsconfig.json:", tsConfigResult.message);
3097
+ throw new Error(`Invalid tsconfig.json at ${tsconfigPath}`);
3098
+ }
3099
+ } else {
3100
+ console.warn(
3101
+ "Warning: tsconfig.json not found. Alias resolution will not be supported."
3102
+ );
3103
+ }
3104
+ import_fs_extra3.default.outputFileSync(tempTSConfigFile, "{}");
3105
+ const result2 = await esbuild.build({
3106
+ entryPoints: [configFilePath],
3107
+ bundle: true,
3108
+ target: ["es2020"],
3109
+ platform: "browser",
3110
+ format: "esm",
3111
+ logLevel: "silent",
3112
+ packages: "external",
3113
+ ignoreAnnotations: true,
3114
+ outfile: preBuildConfigPath,
3115
+ loader: loaders,
3116
+ metafile: true,
3117
+ plugins: Object.keys(dynamicAliases).length ? [aliasPath({ alias: dynamicAliases })] : []
3118
+ });
3119
+ const flattenedList = [];
3120
+ Object.keys(result2.metafile.inputs).forEach((key) => {
3121
+ if (key.includes("node_modules") || key.includes("__generated__")) {
3122
+ return;
3123
+ }
3124
+ flattenedList.push(key);
3125
+ });
3126
+ await esbuild.build({
3127
+ entryPoints: [configFilePath],
3128
+ bundle: true,
3129
+ target: ["es2020"],
3130
+ logLevel: "silent",
3131
+ platform: "node",
3132
+ outfile,
3133
+ loader: loaders,
3134
+ alias: (_a = viteConfig.config.resolve) == null ? void 0 : _a.alias
3135
+ });
3136
+ await esbuild.build({
3137
+ entryPoints: [outfile],
3138
+ bundle: true,
3139
+ logLevel: "silent",
3140
+ platform: "node",
3141
+ outfile: outfile2,
3142
+ loader: loaders
3143
+ });
3144
+ let result;
3145
+ try {
3146
+ result = require(outfile2);
3147
+ } catch (e) {
3148
+ console.error("Unexpected error loading config");
3149
+ console.error(e);
3150
+ throw e;
3151
+ }
3152
+ import_fs_extra3.default.removeSync(outfile);
3153
+ import_fs_extra3.default.removeSync(outfile2);
3154
+ return {
3155
+ config: result.default,
3156
+ prebuildPath: preBuildConfigPath,
3157
+ watchList: flattenedList
3158
+ };
997
3159
  }
998
- let basePath;
999
- if (configManager.config.build.basePath) {
1000
- basePath = configManager.config.build.basePath;
3160
+ };
3161
+ var loaders = {
3162
+ ".aac": "file",
3163
+ ".css": "file",
3164
+ ".eot": "file",
3165
+ ".flac": "file",
3166
+ ".gif": "file",
3167
+ ".jpeg": "file",
3168
+ ".jpg": "file",
3169
+ ".json": "json",
3170
+ ".mp3": "file",
3171
+ ".mp4": "file",
3172
+ ".ogg": "file",
3173
+ ".otf": "file",
3174
+ ".png": "file",
3175
+ ".svg": "file",
3176
+ ".ttf": "file",
3177
+ ".wav": "file",
3178
+ ".webm": "file",
3179
+ ".webp": "file",
3180
+ ".woff": "file",
3181
+ ".woff2": "file",
3182
+ ".js": "jsx",
3183
+ ".jsx": "jsx",
3184
+ ".tsx": "tsx"
3185
+ };
3186
+
3187
+ // src/next/commands/dev-command/html.ts
3188
+ var errorHTML = `<style type="text/css">
3189
+ #no-assets-placeholder body {
3190
+ font-family: sans-serif;
3191
+ font-size: 16px;
3192
+ line-height: 1.4;
3193
+ color: #333;
3194
+ background-color: #f5f5f5;
3195
+ }
3196
+ #no-assets-placeholder {
3197
+ max-width: 600px;
3198
+ margin: 0 auto;
3199
+ padding: 40px;
3200
+ text-align: center;
3201
+ background-color: #fff;
3202
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
3203
+ }
3204
+ #no-assets-placeholder h1 {
3205
+ font-size: 24px;
3206
+ margin-bottom: 20px;
3207
+ }
3208
+ #no-assets-placeholder p {
3209
+ margin-bottom: 10px;
3210
+ }
3211
+ #no-assets-placeholder a {
3212
+ color: #0077cc;
3213
+ text-decoration: none;
3214
+ }
3215
+ #no-assets-placeholder a:hover {
3216
+ text-decoration: underline;
3217
+ }
3218
+ </style>
3219
+ <div id="no-assets-placeholder">
3220
+ <h1>Failed loading TinaCMS assets</h1>
3221
+ <p>
3222
+ Your TinaCMS configuration may be misconfigured, and we could not load
3223
+ the assets for this page.
3224
+ </p>
3225
+ <p>
3226
+ Please visit <a href="https://tina.io/docs/tina-cloud/faq/#how-do-i-resolve-failed-loading-tinacms-assets-error">this doc</a> for help.
3227
+ </p>
3228
+ </div>
3229
+ </div>`.trim().replace(/[\r\n\s]+/g, " ");
3230
+ var devHTML = (port) => `<!DOCTYPE html>
3231
+ <html lang="en">
3232
+ <head>
3233
+ <meta charset="UTF-8" />
3234
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3235
+ <title>TinaCMS</title>
3236
+ </head>
3237
+
3238
+ <!-- if development -->
3239
+ <script type="module">
3240
+ import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
3241
+ RefreshRuntime.injectIntoGlobalHook(window)
3242
+ window.$RefreshReg$ = () => {}
3243
+ window.$RefreshSig$ = () => (type) => type
3244
+ window.__vite_plugin_react_preamble_installed__ = true
3245
+ <\/script>
3246
+ <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
3247
+ <script>
3248
+ function handleLoadError() {
3249
+ // Assets have failed to load
3250
+ document.getElementById('root').innerHTML = '${errorHTML}';
1001
3251
  }
1002
- const config2 = {
1003
- root: configManager.spaRootPath,
1004
- base: `/${basePath ? `${(0, import_normalize_path2.default)(basePath)}/` : ""}${(0, import_normalize_path2.default)(
1005
- configManager.config.build.outputFolder
1006
- )}/`,
1007
- appType: "spa",
1008
- resolve: {
1009
- alias,
1010
- dedupe: ["graphql", "tinacms", "react", "react-dom", "react-router-dom"]
1011
- },
1012
- define: {
1013
- "process.env": `new Object(${JSON.stringify(publicEnv)})`,
1014
- "process.platform": `"${process.platform}"`,
1015
- __API_URL__: `"${apiURL}"`,
1016
- __BASE_PATH__: `"${((_e = (_d = configManager.config) == null ? void 0 : _d.build) == null ? void 0 : _e.basePath) || ""}"`,
1017
- __TINA_GRAPHQL_VERSION__: `"${configManager.getTinaGraphQLVersion()}"`
1018
- },
1019
- logLevel: "error",
1020
- optimizeDeps: {
1021
- force: true,
1022
- include: ["react/jsx-runtime", "react/jsx-dev-runtime"]
1023
- },
1024
- server: {
1025
- host: (_h = (_g = (_f = configManager.config) == null ? void 0 : _f.build) == null ? void 0 : _g.host) != null ? _h : false,
1026
- watch: noWatch ? {
1027
- ignored: ["**/*"]
1028
- } : {
1029
- ignored: [
1030
- `${configManager.tinaFolderPath}/**/!(config.prebuild.jsx|_graphql.json)`
1031
- ]
1032
- },
1033
- fs: {
1034
- strict: false
1035
- }
1036
- },
1037
- build: {
1038
- sourcemap: false,
1039
- outDir: configManager.outputFolderPath,
1040
- emptyOutDir: true,
1041
- rollupOptions
1042
- },
1043
- plugins: [
1044
- (0, import_plugin_react.default)({
1045
- babel: {
1046
- compact: true
1047
- }
1048
- }),
1049
- (0, import_vite.splitVendorChunkPlugin)(),
1050
- tinaTailwind(configManager.spaRootPath, configManager.prebuildFilePath),
1051
- ...plugins
1052
- ]
1053
- };
1054
- return config2;
3252
+ <\/script>
3253
+ <script
3254
+ type="module"
3255
+ src="http://localhost:${port}/src/main.tsx"
3256
+ onerror="handleLoadError()"
3257
+ ><\/script>
3258
+ <body class="tina-tailwind">
3259
+ <div id="root"></div>
3260
+ </body>
3261
+ </html>`;
3262
+
3263
+ // src/utils/theme.ts
3264
+ var import_chalk3 = __toESM(require("chalk"));
3265
+ var successText = import_chalk3.default.bold.green;
3266
+ var focusText = import_chalk3.default.bold;
3267
+ var dangerText = import_chalk3.default.bold.red;
3268
+ var neutralText = import_chalk3.default.bold.cyan;
3269
+ var linkText = import_chalk3.default.bold.cyan;
3270
+ var labelText = import_chalk3.default.bold;
3271
+ var cmdText = import_chalk3.default.inverse;
3272
+ var indentedCmd = (str) => {
3273
+ return ` \u2503 ` + str;
1055
3274
  };
3275
+ var indentText = (str) => {
3276
+ return String(str).split("\n").map((line) => ` ${line}`).join("\n");
3277
+ };
3278
+ var logText = import_chalk3.default.italic.gray;
3279
+ var warnText = import_chalk3.default.yellowBright.bgBlack;
3280
+ var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
3281
+ var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
3282
+
3283
+ // src/next/commands/dev-command/server/index.ts
3284
+ var import_vite4 = require("vite");
1056
3285
 
1057
3286
  // src/next/vite/plugins.ts
1058
3287
  var import_pluginutils = require("@rollup/pluginutils");
1059
3288
  var import_fs = __toESM(require("fs"));
1060
- var import_vite2 = require("vite");
3289
+ var import_vite3 = require("vite");
1061
3290
  var import_esbuild = require("esbuild");
1062
- var import_path3 = __toESM(require("path"));
3291
+ var import_path5 = __toESM(require("path"));
1063
3292
  var import_body_parser = __toESM(require("body-parser"));
1064
3293
  var import_cors = __toESM(require("cors"));
1065
3294
  var import_graphql = require("@tinacms/graphql");
1066
3295
 
1067
3296
  // src/next/commands/dev-command/server/media.ts
1068
- var import_fs_extra3 = __toESM(require("fs-extra"));
1069
- var import_path2 = __toESM(require("path"));
3297
+ var import_fs_extra4 = __toESM(require("fs-extra"));
3298
+ var import_path4 = __toESM(require("path"));
1070
3299
  var import_busboy = __toESM(require("busboy"));
1071
3300
  var createMediaRouter = (config2) => {
1072
- const mediaFolder = import_path2.default.join(
3301
+ const mediaFolder = import_path4.default.join(
1073
3302
  config2.rootPath,
1074
3303
  config2.publicFolder,
1075
3304
  config2.mediaRoot
@@ -1097,9 +3326,9 @@ var createMediaRouter = (config2) => {
1097
3326
  bb.on("file", async (_name, file, _info) => {
1098
3327
  var _a;
1099
3328
  const fullPath = decodeURI((_a = req.url) == null ? void 0 : _a.slice("/media/upload/".length));
1100
- const saveTo = import_path2.default.join(mediaFolder, ...fullPath.split("/"));
1101
- await import_fs_extra3.default.ensureDir(import_path2.default.dirname(saveTo));
1102
- file.pipe(import_fs_extra3.default.createWriteStream(saveTo));
3329
+ const saveTo = import_path4.default.join(mediaFolder, ...fullPath.split("/"));
3330
+ await import_fs_extra4.default.ensureDir(import_path4.default.dirname(saveTo));
3331
+ file.pipe(import_fs_extra4.default.createWriteStream(saveTo));
1103
3332
  });
1104
3333
  bb.on("error", (error) => {
1105
3334
  res.statusCode = 500;
@@ -1133,23 +3362,23 @@ var MediaModel = class {
1133
3362
  }
1134
3363
  async listMedia(args) {
1135
3364
  try {
1136
- const folderPath = (0, import_path2.join)(
3365
+ const folderPath = (0, import_path4.join)(
1137
3366
  this.rootPath,
1138
3367
  this.publicFolder,
1139
3368
  this.mediaRoot,
1140
3369
  args.searchPath
1141
3370
  );
1142
3371
  const searchPath = parseMediaFolder(args.searchPath);
1143
- if (!await import_fs_extra3.default.pathExists(folderPath)) {
3372
+ if (!await import_fs_extra4.default.pathExists(folderPath)) {
1144
3373
  return {
1145
3374
  files: [],
1146
3375
  directories: []
1147
3376
  };
1148
3377
  }
1149
- const filesStr = await import_fs_extra3.default.readdir(folderPath);
3378
+ const filesStr = await import_fs_extra4.default.readdir(folderPath);
1150
3379
  const filesProm = filesStr.map(async (file) => {
1151
- const filePath = (0, import_path2.join)(folderPath, file);
1152
- const stat = await import_fs_extra3.default.stat(filePath);
3380
+ const filePath = (0, import_path4.join)(folderPath, file);
3381
+ const stat = await import_fs_extra4.default.stat(filePath);
1153
3382
  let src = `/${file}`;
1154
3383
  const isFile = stat.isFile();
1155
3384
  if (!isFile) {
@@ -1205,14 +3434,14 @@ var MediaModel = class {
1205
3434
  }
1206
3435
  async deleteMedia(args) {
1207
3436
  try {
1208
- const file = (0, import_path2.join)(
3437
+ const file = (0, import_path4.join)(
1209
3438
  this.rootPath,
1210
3439
  this.publicFolder,
1211
3440
  this.mediaRoot,
1212
3441
  args.searchPath
1213
3442
  );
1214
- await import_fs_extra3.default.stat(file);
1215
- await import_fs_extra3.default.remove(file);
3443
+ await import_fs_extra4.default.stat(file);
3444
+ await import_fs_extra4.default.remove(file);
1216
3445
  return { ok: true };
1217
3446
  } catch (error) {
1218
3447
  console.error(error);
@@ -1270,7 +3499,7 @@ var transformTsxPlugin = ({
1270
3499
  const plug = {
1271
3500
  name: "transform-tsx",
1272
3501
  async transform(code, id) {
1273
- const extName = import_path3.default.extname(id);
3502
+ const extName = import_path5.default.extname(id);
1274
3503
  if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
1275
3504
  const result = await (0, import_esbuild.transform)(code, { loader: "tsx" });
1276
3505
  return {
@@ -1380,7 +3609,7 @@ function viteTransformExtension({
1380
3609
  previousExport: exportAsDefault ? null : code
1381
3610
  }
1382
3611
  });
1383
- const res = await (0, import_vite2.transformWithEsbuild)(componentCode, id, {
3612
+ const res = await (0, import_vite3.transformWithEsbuild)(componentCode, id, {
1384
3613
  loader: "jsx",
1385
3614
  ...esbuildOptions
1386
3615
  });
@@ -1400,7 +3629,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1400
3629
  devServerEndPointsPlugin({ apiURL, configManager, database, searchIndex }),
1401
3630
  viteTransformExtension()
1402
3631
  ];
1403
- return (0, import_vite3.createServer)(
3632
+ return (0, import_vite4.createServer)(
1404
3633
  await createConfig({
1405
3634
  configManager,
1406
3635
  database,
@@ -1415,14 +3644,18 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1415
3644
  }
1416
3645
  warn(warning);
1417
3646
  }
3647
+ },
3648
+ viteConfigEnv: {
3649
+ command: "serve",
3650
+ mode: "development"
1418
3651
  }
1419
3652
  })
1420
3653
  );
1421
3654
  };
1422
3655
 
1423
3656
  // src/next/codegen/index.ts
1424
- var import_fs_extra4 = __toESM(require("fs-extra"));
1425
- var import_path4 = __toESM(require("path"));
3657
+ var import_fs_extra5 = __toESM(require("fs-extra"));
3658
+ var import_path6 = __toESM(require("path"));
1426
3659
  var import_graphql6 = require("graphql");
1427
3660
 
1428
3661
  // src/next/codegen/codegen/index.ts
@@ -1668,16 +3901,16 @@ var Codegen = class {
1668
3901
  this.noClientBuildCache = noClientBuildCache;
1669
3902
  }
1670
3903
  async writeConfigFile(fileName, data) {
1671
- const filePath = import_path4.default.join(this.configManager.generatedFolderPath, fileName);
1672
- await import_fs_extra4.default.ensureFile(filePath);
1673
- await import_fs_extra4.default.outputFile(filePath, data);
3904
+ const filePath = import_path6.default.join(this.configManager.generatedFolderPath, fileName);
3905
+ await import_fs_extra5.default.ensureFile(filePath);
3906
+ await import_fs_extra5.default.outputFile(filePath, data);
1674
3907
  if (this.configManager.hasSeparateContentRoot()) {
1675
- const filePath2 = import_path4.default.join(
3908
+ const filePath2 = import_path6.default.join(
1676
3909
  this.configManager.generatedFolderPathContentRepo,
1677
3910
  fileName
1678
3911
  );
1679
- await import_fs_extra4.default.ensureFile(filePath2);
1680
- await import_fs_extra4.default.outputFile(filePath2, data);
3912
+ await import_fs_extra5.default.ensureFile(filePath2);
3913
+ await import_fs_extra5.default.outputFile(filePath2, data);
1681
3914
  }
1682
3915
  }
1683
3916
  async removeGeneratedFilesIfExists() {
@@ -1709,11 +3942,11 @@ var Codegen = class {
1709
3942
  await this.removeGeneratedFilesIfExists();
1710
3943
  return apiURL;
1711
3944
  }
1712
- await import_fs_extra4.default.outputFile(
3945
+ await import_fs_extra5.default.outputFile(
1713
3946
  this.configManager.generatedQueriesFilePath,
1714
3947
  this.queryDoc
1715
3948
  );
1716
- await import_fs_extra4.default.outputFile(
3949
+ await import_fs_extra5.default.outputFile(
1717
3950
  this.configManager.generatedFragmentsFilePath,
1718
3951
  this.fragDoc
1719
3952
  );
@@ -1721,21 +3954,21 @@ var Codegen = class {
1721
3954
  const { clientString } = await this.genClient();
1722
3955
  const databaseClientString = this.configManager.hasSelfHostedConfig() ? await this.genDatabaseClient() : "";
1723
3956
  const { codeString, schemaString } = await this.genTypes();
1724
- await import_fs_extra4.default.outputFile(
3957
+ await import_fs_extra5.default.outputFile(
1725
3958
  this.configManager.generatedGraphQLGQLPath,
1726
3959
  schemaString
1727
3960
  );
1728
3961
  if (this.configManager.isUsingTs()) {
1729
- await import_fs_extra4.default.outputFile(
3962
+ await import_fs_extra5.default.outputFile(
1730
3963
  this.configManager.generatedTypesTSFilePath,
1731
3964
  codeString
1732
3965
  );
1733
- await import_fs_extra4.default.outputFile(
3966
+ await import_fs_extra5.default.outputFile(
1734
3967
  this.configManager.generatedClientTSFilePath,
1735
3968
  clientString
1736
3969
  );
1737
3970
  if (this.configManager.hasSelfHostedConfig()) {
1738
- await import_fs_extra4.default.outputFile(
3971
+ await import_fs_extra5.default.outputFile(
1739
3972
  this.configManager.generatedDatabaseClientTSFilePath,
1740
3973
  databaseClientString
1741
3974
  );
@@ -1744,21 +3977,21 @@ var Codegen = class {
1744
3977
  await unlinkIfExists(this.configManager.generatedTypesDFilePath);
1745
3978
  await unlinkIfExists(this.configManager.generatedTypesJSFilePath);
1746
3979
  } else {
1747
- await import_fs_extra4.default.outputFile(
3980
+ await import_fs_extra5.default.outputFile(
1748
3981
  this.configManager.generatedTypesDFilePath,
1749
3982
  codeString
1750
3983
  );
1751
3984
  const jsTypes = await (0, import_esbuild2.transform)(codeString, { loader: "ts" });
1752
- await import_fs_extra4.default.outputFile(
3985
+ await import_fs_extra5.default.outputFile(
1753
3986
  this.configManager.generatedTypesJSFilePath,
1754
3987
  jsTypes.code
1755
3988
  );
1756
- await import_fs_extra4.default.outputFile(
3989
+ await import_fs_extra5.default.outputFile(
1757
3990
  this.configManager.generatedClientDFilePath,
1758
3991
  clientString
1759
3992
  );
1760
3993
  const jsClient = await (0, import_esbuild2.transform)(clientString, { loader: "ts" });
1761
- await import_fs_extra4.default.outputFile(
3994
+ await import_fs_extra5.default.outputFile(
1762
3995
  this.configManager.generatedClientJSFilePath,
1763
3996
  jsClient.code
1764
3997
  );
@@ -1768,11 +4001,11 @@ var Codegen = class {
1768
4001
  const jsDatabaseClient = await (0, import_esbuild2.transform)(databaseClientString, {
1769
4002
  loader: "ts"
1770
4003
  });
1771
- await import_fs_extra4.default.outputFile(
4004
+ await import_fs_extra5.default.outputFile(
1772
4005
  this.configManager.generatedDatabaseClientJSFilePath,
1773
4006
  jsDatabaseClient.code
1774
4007
  );
1775
- await import_fs_extra4.default.outputFile(
4008
+ await import_fs_extra5.default.outputFile(
1776
4009
  this.configManager.generatedDatabaseClientDFilePath,
1777
4010
  databaseClientString
1778
4011
  );
@@ -1788,7 +4021,8 @@ var Codegen = class {
1788
4021
  const branch = (_a = this.configManager.config) == null ? void 0 : _a.branch;
1789
4022
  const clientId = (_b = this.configManager.config) == null ? void 0 : _b.clientId;
1790
4023
  const token = (_c = this.configManager.config) == null ? void 0 : _c.token;
1791
- const version2 = this.configManager.getTinaGraphQLVersion();
4024
+ const fullVersion = this.configManager.getTinaGraphQLVersion();
4025
+ const version2 = `${fullVersion.major}.${fullVersion.minor}`;
1792
4026
  const baseUrl = ((_d = this.configManager.config.tinaioConfig) == null ? void 0 : _d.contentApiUrlOverride) || `https://${TINA_HOST}`;
1793
4027
  if ((!branch || !clientId || !token) && !this.port && !this.configManager.config.contentApiUrlOverride) {
1794
4028
  const missing = [];
@@ -1951,7 +4185,7 @@ schema {
1951
4185
  }
1952
4186
  };
1953
4187
  var maybeWarnFragmentSize = async (filepath) => {
1954
- if ((await import_fs_extra4.default.stat(filepath)).size > 100 * 1024) {
4188
+ if ((await import_fs_extra5.default.stat(filepath)).size > 100 * 1024) {
1955
4189
  console.warn(
1956
4190
  "Warning: frags.gql is very large (>100kb). Consider setting the reference depth to 1 or 0. See code snippet below."
1957
4191
  );
@@ -1966,8 +4200,8 @@ var maybeWarnFragmentSize = async (filepath) => {
1966
4200
  }
1967
4201
  };
1968
4202
  var unlinkIfExists = async (filepath) => {
1969
- if (import_fs_extra4.default.existsSync(filepath)) {
1970
- import_fs_extra4.default.unlinkSync(filepath);
4203
+ if (import_fs_extra5.default.existsSync(filepath)) {
4204
+ import_fs_extra5.default.unlinkSync(filepath);
1971
4205
  }
1972
4206
  };
1973
4207
 
@@ -2093,7 +4327,7 @@ function spin({
2093
4327
 
2094
4328
  // src/next/commands/baseCommands.ts
2095
4329
  var import_graphql9 = require("@tinacms/graphql");
2096
- var import_fs_extra5 = __toESM(require("fs-extra"));
4330
+ var import_fs_extra6 = __toESM(require("fs-extra"));
2097
4331
  var BaseCommand = class extends import_clipanion.Command {
2098
4332
  constructor() {
2099
4333
  super(...arguments);
@@ -2177,7 +4411,7 @@ var BaseCommand = class extends import_clipanion.Command {
2177
4411
  const rootPath = configManager.rootPath;
2178
4412
  let sha;
2179
4413
  try {
2180
- sha = await (0, import_graphql9.getSha)({ fs: import_fs_extra5.default, dir: rootPath });
4414
+ sha = await (0, import_graphql9.getSha)({ fs: import_fs_extra6.default, dir: rootPath });
2181
4415
  } catch (e) {
2182
4416
  if (partialReindex) {
2183
4417
  console.error(
@@ -2187,7 +4421,7 @@ var BaseCommand = class extends import_clipanion.Command {
2187
4421
  }
2188
4422
  }
2189
4423
  const lastSha = await database.getMetadata("lastSha");
2190
- const exists = lastSha && await (0, import_graphql9.shaExists)({ fs: import_fs_extra5.default, dir: rootPath, sha: lastSha });
4424
+ const exists = lastSha && await (0, import_graphql9.shaExists)({ fs: import_fs_extra6.default, dir: rootPath, sha: lastSha });
2191
4425
  let res;
2192
4426
  if (partialReindex && lastSha && exists && sha) {
2193
4427
  const pathFilter = {};
@@ -2202,14 +4436,14 @@ var BaseCommand = class extends import_clipanion.Command {
2202
4436
  };
2203
4437
  }
2204
4438
  const { added, modified, deleted } = await (0, import_graphql9.getChangedFiles)({
2205
- fs: import_fs_extra5.default,
4439
+ fs: import_fs_extra6.default,
2206
4440
  dir: rootPath,
2207
4441
  from: lastSha,
2208
4442
  to: sha,
2209
4443
  pathFilter
2210
4444
  });
2211
4445
  const tinaPathUpdates = modified.filter(
2212
- (path14) => path14.startsWith(".tina/__generated__/_schema.json") || path14.startsWith("tina/tina-lock.json")
4446
+ (path16) => path16.startsWith(".tina/__generated__/_schema.json") || path16.startsWith("tina/tina-lock.json")
2213
4447
  );
2214
4448
  if (tinaPathUpdates.length > 0) {
2215
4449
  res = await database.indexContent({
@@ -2323,17 +4557,17 @@ var DevCommand = class extends BaseCommand {
2323
4557
  lookup: lookupObject,
2324
4558
  graphql: graphqlSchemaObject
2325
4559
  });
2326
- import_fs_extra6.default.writeFileSync(
2327
- import_path5.default.join(configManager.tinaFolderPath, tinaLockFilename),
4560
+ import_fs_extra7.default.writeFileSync(
4561
+ import_path7.default.join(configManager.tinaFolderPath, tinaLockFilename),
2328
4562
  tinaLockContent
2329
4563
  );
2330
4564
  if (configManager.hasSeparateContentRoot()) {
2331
4565
  const rootPath = await configManager.getTinaFolderPath(
2332
4566
  configManager.contentRootPath
2333
4567
  );
2334
- const filePath = import_path5.default.join(rootPath, tinaLockFilename);
2335
- await import_fs_extra6.default.ensureFile(filePath);
2336
- await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
4568
+ const filePath = import_path7.default.join(rootPath, tinaLockFilename);
4569
+ await import_fs_extra7.default.ensureFile(filePath);
4570
+ await import_fs_extra7.default.outputFile(filePath, tinaLockContent);
2337
4571
  }
2338
4572
  }
2339
4573
  if (!this.noWatch) {
@@ -2372,8 +4606,8 @@ ${dangerText(e.message)}
2372
4606
  const { apiURL, graphQLSchema, tinaSchema } = await setup({
2373
4607
  firstTime: true
2374
4608
  });
2375
- await import_fs_extra6.default.outputFile(configManager.outputHTMLFilePath, devHTML(this.port));
2376
- await import_fs_extra6.default.outputFile(
4609
+ await import_fs_extra7.default.outputFile(configManager.outputHTMLFilePath, devHTML(this.port));
4610
+ await import_fs_extra7.default.outputFile(
2377
4611
  configManager.outputGitignorePath,
2378
4612
  "index.html\nassets/"
2379
4613
  );
@@ -2478,7 +4712,7 @@ ${dangerText(e.message)}
2478
4712
  watchContentFiles(configManager, database, searchIndexer) {
2479
4713
  const collectionContentFiles = [];
2480
4714
  configManager.config.schema.collections.forEach((collection) => {
2481
- const collectionGlob = `${import_path5.default.join(
4715
+ const collectionGlob = `${import_path7.default.join(
2482
4716
  configManager.contentRootPath,
2483
4717
  collection.path
2484
4718
  )}/**/*.${collection.format || "md"}`;
@@ -2536,13 +4770,13 @@ DevCommand.usage = import_clipanion2.Command.Usage({
2536
4770
  // src/next/commands/build-command/index.ts
2537
4771
  var import_clipanion3 = require("clipanion");
2538
4772
  var import_progress2 = __toESM(require("progress"));
2539
- var import_fs_extra7 = __toESM(require("fs-extra"));
4773
+ var import_fs_extra8 = __toESM(require("fs-extra"));
2540
4774
  var import_crypto = __toESM(require("crypto"));
2541
- var import_path6 = __toESM(require("path"));
4775
+ var import_path8 = __toESM(require("path"));
2542
4776
  var import_graphql11 = require("@tinacms/graphql");
2543
4777
 
2544
4778
  // src/next/commands/build-command/server.ts
2545
- var import_vite5 = require("vite");
4779
+ var import_vite6 = require("vite");
2546
4780
  var buildProductionSpa = async (configManager, database, apiURL) => {
2547
4781
  const publicEnv = {};
2548
4782
  Object.keys(process.env).forEach((key) => {
@@ -2574,15 +4808,19 @@ var buildProductionSpa = async (configManager, database, apiURL) => {
2574
4808
  }
2575
4809
  warn(warning);
2576
4810
  }
4811
+ },
4812
+ viteConfigEnv: {
4813
+ command: "build",
4814
+ mode: "production"
2577
4815
  }
2578
4816
  });
2579
- return (0, import_vite5.build)(config2);
4817
+ return (0, import_vite6.build)(config2);
2580
4818
  };
2581
4819
 
2582
4820
  // src/next/commands/build-command/index.ts
2583
4821
  var import_schema_tools2 = require("@tinacms/schema-tools");
2584
4822
  var import_graphql12 = require("graphql");
2585
- var import_core2 = require("@graphql-inspector/core");
4823
+ var import_core3 = require("@graphql-inspector/core");
2586
4824
 
2587
4825
  // src/next/commands/build-command/waitForDB.ts
2588
4826
  var import_progress = __toESM(require("progress"));
@@ -2684,6 +4922,20 @@ var waitForDB = async (config2, apiUrl, previewName, verbose) => {
2684
4922
 
2685
4923
  // src/next/commands/build-command/index.ts
2686
4924
  var import_search2 = require("@tinacms/search");
4925
+
4926
+ // src/utils/index.ts
4927
+ var import_core2 = require("@graphql-inspector/core");
4928
+ var getFaqLink = (type) => {
4929
+ switch (type) {
4930
+ case import_core2.ChangeType.FieldRemoved: {
4931
+ return "https://tina.io/docs/introduction/faq#how-do-i-resolve-the-local-graphql-schema-doesnt-match-the-remote-graphql-schema-errors";
4932
+ }
4933
+ default:
4934
+ return null;
4935
+ }
4936
+ };
4937
+
4938
+ // src/next/commands/build-command/index.ts
2687
4939
  var BuildCommand = class extends BaseCommand {
2688
4940
  constructor() {
2689
4941
  super(...arguments);
@@ -2811,7 +5063,7 @@ ${dangerText(e.message)}
2811
5063
  }
2812
5064
  const skipCloudChecks = this.skipCloudChecks || configManager.hasSelfHostedConfig();
2813
5065
  if (!skipCloudChecks) {
2814
- const { hasUpstream } = await this.checkClientInfo(
5066
+ const { hasUpstream, timestamp } = await this.checkClientInfo(
2815
5067
  configManager,
2816
5068
  codegen2.productionUrl,
2817
5069
  this.previewBaseBranch
@@ -2839,18 +5091,20 @@ ${dangerText(e.message)}
2839
5091
  await this.checkGraphqlSchema(
2840
5092
  configManager,
2841
5093
  database,
2842
- codegen2.productionUrl
5094
+ codegen2.productionUrl,
5095
+ timestamp
2843
5096
  );
2844
5097
  await this.checkTinaSchema(
2845
5098
  configManager,
2846
5099
  database,
2847
5100
  codegen2.productionUrl,
2848
5101
  this.previewName,
2849
- this.verbose
5102
+ this.verbose,
5103
+ timestamp
2850
5104
  );
2851
5105
  }
2852
5106
  await buildProductionSpa(configManager, database, codegen2.productionUrl);
2853
- await import_fs_extra7.default.outputFile(
5107
+ await import_fs_extra8.default.outputFile(
2854
5108
  configManager.outputGitignorePath,
2855
5109
  "index.html\nassets/"
2856
5110
  );
@@ -2965,11 +5219,13 @@ ${dangerText(e.message)}
2965
5219
  const bar2 = new import_progress2.default("Checking clientId and token. :prog", 1);
2966
5220
  let branchKnown = false;
2967
5221
  let hasUpstream = false;
5222
+ let timestamp;
2968
5223
  try {
2969
5224
  const res = await request({
2970
5225
  token,
2971
5226
  url
2972
5227
  });
5228
+ timestamp = res.timestamp || 0;
2973
5229
  bar2.tick({
2974
5230
  prog: "\u2705"
2975
5231
  });
@@ -3011,7 +5267,8 @@ ${dangerText(e.message)}
3011
5267
  prog: "\u2705"
3012
5268
  });
3013
5269
  return {
3014
- hasUpstream
5270
+ hasUpstream,
5271
+ timestamp
3015
5272
  };
3016
5273
  }
3017
5274
  for (let i = 0; i <= 5; i++) {
@@ -3101,14 +5358,14 @@ ${dangerText(e.message)}
3101
5358
  throw e;
3102
5359
  }
3103
5360
  }
3104
- async checkGraphqlSchema(configManager, database, apiURL) {
5361
+ async checkGraphqlSchema(configManager, database, apiURL, timestamp) {
3105
5362
  const bar2 = new import_progress2.default(
3106
5363
  "Checking local GraphQL Schema matches server. :prog",
3107
5364
  1
3108
5365
  );
3109
5366
  const { config: config2 } = configManager;
3110
5367
  const token = config2.token;
3111
- const remoteSchema = await fetchRemoteGraphqlSchema({
5368
+ const { remoteSchema, remoteProjectVersion } = await fetchRemoteGraphqlSchema({
3112
5369
  url: apiURL,
3113
5370
  token
3114
5371
  });
@@ -3128,7 +5385,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3128
5385
  const localSchemaDocument = await database.getGraphQLSchemaFromBridge();
3129
5386
  const localGraphqlSchema = (0, import_graphql12.buildASTSchema)(localSchemaDocument);
3130
5387
  try {
3131
- const diffResult = await (0, import_core2.diff)(localGraphqlSchema, remoteGqlSchema);
5388
+ const diffResult = await (0, import_core3.diff)(localGraphqlSchema, remoteGqlSchema);
3132
5389
  if (diffResult.length === 0) {
3133
5390
  bar2.tick({
3134
5391
  prog: "\u2705"
@@ -3137,12 +5394,30 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3137
5394
  bar2.tick({
3138
5395
  prog: "\u274C"
3139
5396
  });
3140
- let errorMessage = `The local GraphQL schema doesn't match the remote GraphQL schema. Please push up your changes to GitHub to update your remote GraphQL schema.`;
3141
- if (config2 == null ? void 0 : config2.branch) {
3142
- errorMessage += `
5397
+ const type = diffResult[0].type;
5398
+ const reason = diffResult[0].message;
5399
+ const errorLevel = diffResult[0].criticality.level;
5400
+ const faqLink = getFaqLink(type);
5401
+ const tinaGraphQLVersion = configManager.getTinaGraphQLVersion();
5402
+ let errorMessage = `The local GraphQL schema doesn't match the remote GraphQL schema. Please push up your changes to GitHub to update your remote GraphQL schema. ${faqLink && `
5403
+ Check out '${faqLink}' for possible solutions.`}`;
5404
+ errorMessage += `
3143
5405
 
3144
- Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5406
+ Additional info:
5407
+
5408
+ `;
5409
+ if (config2 == null ? void 0 : config2.branch) {
5410
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5411
+ `;
3145
5412
  }
5413
+ errorMessage += ` Local GraphQL version: ${tinaGraphQLVersion.fullVersion} / Remote GraphQL version: ${remoteProjectVersion}
5414
+ `;
5415
+ errorMessage += ` Last indexed at: ${new Date(
5416
+ timestamp
5417
+ ).toUTCString()}
5418
+ `;
5419
+ errorMessage += ` Reason: [${errorLevel} - ${type}] ${reason}
5420
+ `;
3146
5421
  throw new Error(errorMessage);
3147
5422
  }
3148
5423
  } catch (e) {
@@ -3157,7 +5432,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3157
5432
  }
3158
5433
  }
3159
5434
  }
3160
- async checkTinaSchema(configManager, database, apiURL, previewName, verbose) {
5435
+ async checkTinaSchema(configManager, database, apiURL, previewName, verbose, timestamp) {
3161
5436
  const bar2 = new import_progress2.default(
3162
5437
  "Checking local Tina Schema matches server. :prog",
3163
5438
  1
@@ -3192,7 +5467,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3192
5467
  }
3193
5468
  const localTinaSchema = JSON.parse(
3194
5469
  await database.bridge.get(
3195
- import_path6.default.join(database.tinaDirectory, "__generated__", "_schema.json")
5470
+ import_path8.default.join(database.tinaDirectory, "__generated__", "_schema.json")
3196
5471
  )
3197
5472
  );
3198
5473
  localTinaSchema.version = void 0;
@@ -3206,11 +5481,19 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3206
5481
  prog: "\u274C"
3207
5482
  });
3208
5483
  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 += `
5484
+ errorMessage += `
3211
5485
 
3212
- Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5486
+ Additional info:
5487
+
5488
+ `;
5489
+ if (config2 == null ? void 0 : config2.branch) {
5490
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5491
+ `;
3213
5492
  }
5493
+ errorMessage += ` Last indexed at: ${new Date(
5494
+ timestamp
5495
+ ).toUTCString()}
5496
+ `;
3214
5497
  throw new Error(errorMessage);
3215
5498
  }
3216
5499
  }
@@ -3280,7 +5563,11 @@ var fetchRemoteGraphqlSchema = async ({
3280
5563
  body
3281
5564
  });
3282
5565
  const data = await res.json();
3283
- return data == null ? void 0 : data.data;
5566
+ return {
5567
+ remoteSchema: data == null ? void 0 : data.data,
5568
+ remoteRuntimeVersion: res.headers.get("tinacms-grapqhl-version"),
5569
+ remoteProjectVersion: res.headers.get("tinacms-graphql-project-version")
5570
+ };
3284
5571
  };
3285
5572
  var fetchSchemaSha = async ({
3286
5573
  url,
@@ -3549,26 +5836,26 @@ AuditCommand.usage = import_clipanion4.Command.Usage({
3549
5836
  var import_clipanion6 = require("clipanion");
3550
5837
 
3551
5838
  // src/cmds/init/detectEnvironment.ts
3552
- var import_fs_extra8 = __toESM(require("fs-extra"));
3553
- var import_path7 = __toESM(require("path"));
5839
+ var import_fs_extra9 = __toESM(require("fs-extra"));
5840
+ var import_path9 = __toESM(require("path"));
3554
5841
  var checkGitignoreForItem = async ({
3555
5842
  baseDir,
3556
5843
  line
3557
5844
  }) => {
3558
- const gitignoreContent = import_fs_extra8.default.readFileSync(import_path7.default.join(baseDir, ".gitignore")).toString();
5845
+ const gitignoreContent = import_fs_extra9.default.readFileSync(import_path9.default.join(baseDir, ".gitignore")).toString();
3559
5846
  return gitignoreContent.split("\n").some((item) => item === line);
3560
5847
  };
3561
5848
  var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3562
5849
  const result = {
3563
- fullPathTS: import_path7.default.join(
5850
+ fullPathTS: import_path9.default.join(
3564
5851
  parentPath,
3565
5852
  `${name2}.${(opts == null ? void 0 : opts.typescriptSuffix) || (opts == null ? void 0 : opts.extensionOverride) || "ts"}`
3566
5853
  ),
3567
- fullPathJS: import_path7.default.join(
5854
+ fullPathJS: import_path9.default.join(
3568
5855
  parentPath,
3569
5856
  `${name2}.${(opts == null ? void 0 : opts.extensionOverride) || "js"}`
3570
5857
  ),
3571
- fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path7.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
5858
+ fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path9.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
3572
5859
  generatedFileType,
3573
5860
  name: name2,
3574
5861
  parentPath,
@@ -3586,8 +5873,8 @@ var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3586
5873
  };
3587
5874
  }
3588
5875
  };
3589
- result.typescriptExists = await import_fs_extra8.default.pathExists(result.fullPathTS);
3590
- result.javascriptExists = await import_fs_extra8.default.pathExists(result.fullPathJS);
5876
+ result.typescriptExists = await import_fs_extra9.default.pathExists(result.fullPathTS);
5877
+ result.javascriptExists = await import_fs_extra9.default.pathExists(result.fullPathJS);
3591
5878
  return result;
3592
5879
  };
3593
5880
  var detectEnvironment = async ({
@@ -3597,19 +5884,19 @@ var detectEnvironment = async ({
3597
5884
  debug = false
3598
5885
  }) => {
3599
5886
  var _a;
3600
- const hasForestryConfig = await import_fs_extra8.default.pathExists(
3601
- import_path7.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5887
+ const hasForestryConfig = await import_fs_extra9.default.pathExists(
5888
+ import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
3602
5889
  );
3603
- const sampleContentPath = import_path7.default.join(
5890
+ const sampleContentPath = import_path9.default.join(
3604
5891
  baseDir,
3605
5892
  "content",
3606
5893
  "posts",
3607
5894
  "hello-world.md"
3608
5895
  );
3609
- const usingSrc = import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src", "pages")));
3610
- const tinaFolder = import_path7.default.join(baseDir, "tina");
5896
+ const usingSrc = import_fs_extra9.default.pathExistsSync(import_path9.default.join(baseDir, "src")) && (import_fs_extra9.default.pathExistsSync(import_path9.default.join(baseDir, "src", "app")) || import_fs_extra9.default.pathExistsSync(import_path9.default.join(baseDir, "src", "pages")));
5897
+ const tinaFolder = import_path9.default.join(baseDir, "tina");
3611
5898
  const tinaConfigExists = Boolean(
3612
- await import_fs_extra8.default.pathExists(tinaFolder) && (await import_fs_extra8.default.readdir(tinaFolder)).find((x) => x.includes("config"))
5899
+ await import_fs_extra9.default.pathExists(tinaFolder) && (await import_fs_extra9.default.readdir(tinaFolder)).find((x) => x.includes("config"))
3613
5900
  );
3614
5901
  const pagesDir = [baseDir, usingSrc ? "src" : false, "pages"].filter(
3615
5902
  Boolean
@@ -3621,12 +5908,12 @@ var detectEnvironment = async ({
3621
5908
  "next-api-handler": await makeGeneratedFile(
3622
5909
  "[...routes]",
3623
5910
  "next-api-handler",
3624
- import_path7.default.join(...pagesDir, "api", "tina")
5911
+ import_path9.default.join(...pagesDir, "api", "tina")
3625
5912
  ),
3626
5913
  "reactive-example": await makeGeneratedFile(
3627
5914
  "[filename]",
3628
5915
  "reactive-example",
3629
- import_path7.default.join(...pagesDir, "demo", "blog"),
5916
+ import_path9.default.join(...pagesDir, "demo", "blog"),
3630
5917
  {
3631
5918
  typescriptSuffix: "tsx"
3632
5919
  }
@@ -3634,22 +5921,22 @@ var detectEnvironment = async ({
3634
5921
  "users-json": await makeGeneratedFile(
3635
5922
  "index",
3636
5923
  "users-json",
3637
- import_path7.default.join(baseDir, "content", "users"),
5924
+ import_path9.default.join(baseDir, "content", "users"),
3638
5925
  { extensionOverride: "json" }
3639
5926
  ),
3640
5927
  "sample-content": await makeGeneratedFile(
3641
5928
  "hello-world",
3642
5929
  "sample-content",
3643
- import_path7.default.join(baseDir, "content", "posts"),
5930
+ import_path9.default.join(baseDir, "content", "posts"),
3644
5931
  { extensionOverride: "md" }
3645
5932
  )
3646
5933
  };
3647
- const hasSampleContent = await import_fs_extra8.default.pathExists(sampleContentPath);
3648
- const hasPackageJSON = await import_fs_extra8.default.pathExists("package.json");
5934
+ const hasSampleContent = await import_fs_extra9.default.pathExists(sampleContentPath);
5935
+ const hasPackageJSON = await import_fs_extra9.default.pathExists("package.json");
3649
5936
  let hasTinaDeps = false;
3650
5937
  if (hasPackageJSON) {
3651
5938
  try {
3652
- const packageJSON = await import_fs_extra8.default.readJSON("package.json");
5939
+ const packageJSON = await import_fs_extra9.default.readJSON("package.json");
3653
5940
  const deps = [];
3654
5941
  if (packageJSON == null ? void 0 : packageJSON.dependencies) {
3655
5942
  deps.push(...Object.keys(packageJSON.dependencies));
@@ -3666,15 +5953,15 @@ var detectEnvironment = async ({
3666
5953
  );
3667
5954
  }
3668
5955
  }
3669
- const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path7.default.join(".gitignore"));
5956
+ const hasGitIgnore = await import_fs_extra9.default.pathExists(import_path9.default.join(".gitignore"));
3670
5957
  const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
3671
5958
  const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
3672
5959
  const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
3673
5960
  let frontMatterFormat;
3674
5961
  if (hasForestryConfig) {
3675
- const hugoConfigPath = import_path7.default.join(rootPath, "config.toml");
3676
- if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
3677
- const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
5962
+ const hugoConfigPath = import_path9.default.join(rootPath, "config.toml");
5963
+ if (await import_fs_extra9.default.pathExists(hugoConfigPath)) {
5964
+ const hugoConfig = await import_fs_extra9.default.readFile(hugoConfigPath, "utf8");
3678
5965
  const metaDataFormat = (_a = hugoConfig.match(/metaDataFormat = "(.*)"/)) == null ? void 0 : _a[1];
3679
5966
  if (metaDataFormat && (metaDataFormat === "yaml" || metaDataFormat === "toml" || metaDataFormat === "json")) {
3680
5967
  frontMatterFormat = metaDataFormat;
@@ -4280,18 +6567,18 @@ var CLICommand = class {
4280
6567
  };
4281
6568
 
4282
6569
  // src/cmds/init/apply.ts
4283
- var import_path11 = __toESM(require("path"));
6570
+ var import_path13 = __toESM(require("path"));
4284
6571
 
4285
6572
  // src/cmds/forestry-migrate/index.ts
4286
- var import_fs_extra10 = __toESM(require("fs-extra"));
4287
- var import_path9 = __toESM(require("path"));
6573
+ var import_fs_extra11 = __toESM(require("fs-extra"));
6574
+ var import_path11 = __toESM(require("path"));
4288
6575
  var import_js_yaml2 = __toESM(require("js-yaml"));
4289
6576
  var import_minimatch = __toESM(require("minimatch"));
4290
6577
  var import_graphql16 = require("@tinacms/graphql");
4291
6578
 
4292
6579
  // src/cmds/forestry-migrate/util/index.ts
4293
- var import_fs_extra9 = __toESM(require("fs-extra"));
4294
- var import_path8 = __toESM(require("path"));
6580
+ var import_fs_extra10 = __toESM(require("fs-extra"));
6581
+ var import_path10 = __toESM(require("path"));
4295
6582
  var import_js_yaml = __toESM(require("js-yaml"));
4296
6583
  var import_zod = __toESM(require("zod"));
4297
6584
 
@@ -4702,7 +6989,7 @@ var transformForestryFieldsToTinaFields = ({
4702
6989
  return tinaFields;
4703
6990
  };
4704
6991
  var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
4705
- const templatePath = import_path8.default.join(
6992
+ const templatePath = import_path10.default.join(
4706
6993
  pathToForestryConfig,
4707
6994
  ".forestry",
4708
6995
  "front_matter",
@@ -4711,7 +6998,7 @@ var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false })
4711
6998
  );
4712
6999
  let templateString = "";
4713
7000
  try {
4714
- templateString = import_fs_extra9.default.readFileSync(templatePath).toString();
7001
+ templateString = import_fs_extra10.default.readFileSync(templatePath).toString();
4715
7002
  } catch {
4716
7003
  throw new Error(
4717
7004
  `Could not find template ${tem} at ${templatePath}
@@ -4776,9 +7063,9 @@ function checkExt(ext) {
4776
7063
  var generateAllTemplates = async ({
4777
7064
  pathToForestryConfig
4778
7065
  }) => {
4779
- const allTemplates = (await import_fs_extra10.default.readdir(
4780
- import_path9.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
4781
- )).map((tem) => import_path9.default.basename(tem, ".yml"));
7066
+ const allTemplates = (await import_fs_extra11.default.readdir(
7067
+ import_path11.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
7068
+ )).map((tem) => import_path11.default.basename(tem, ".yml"));
4782
7069
  const templateMap = /* @__PURE__ */ new Map();
4783
7070
  const proms = allTemplates.map(async (tem) => {
4784
7071
  try {
@@ -4920,9 +7207,9 @@ var generateCollectionFromForestrySection = (args) => {
4920
7207
  return c;
4921
7208
  } else if (section.type === "document") {
4922
7209
  const filePath = section.path;
4923
- const extname = import_path9.default.extname(filePath);
4924
- const fileName = import_path9.default.basename(filePath, extname);
4925
- const dir = import_path9.default.dirname(filePath);
7210
+ const extname = import_path11.default.extname(filePath);
7211
+ const fileName = import_path11.default.basename(filePath, extname);
7212
+ const dir = import_path11.default.dirname(filePath);
4926
7213
  const ext = checkExt(extname);
4927
7214
  if (ext) {
4928
7215
  const fields = [];
@@ -4984,8 +7271,8 @@ var generateCollections = async ({
4984
7271
  templateMap,
4985
7272
  usingTypescript
4986
7273
  });
4987
- const forestryConfig = await import_fs_extra10.default.readFile(
4988
- import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
7274
+ const forestryConfig = await import_fs_extra11.default.readFile(
7275
+ import_path11.default.join(pathToForestryConfig, ".forestry", "settings.yml")
4989
7276
  );
4990
7277
  rewriteTemplateKeysInDocs({
4991
7278
  templateMap,
@@ -5016,12 +7303,12 @@ var rewriteTemplateKeysInDocs = (args) => {
5016
7303
  const { templateObj } = templateMap.get(templateKey);
5017
7304
  (_a = templateObj == null ? void 0 : templateObj.pages) == null ? void 0 : _a.forEach((page) => {
5018
7305
  try {
5019
- const filePath = import_path9.default.join(page);
5020
- if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
7306
+ const filePath = import_path11.default.join(page);
7307
+ if (import_fs_extra11.default.lstatSync(filePath).isDirectory()) {
5021
7308
  return;
5022
7309
  }
5023
- const extname = import_path9.default.extname(filePath);
5024
- const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
7310
+ const extname = import_path11.default.extname(filePath);
7311
+ const fileContent = import_fs_extra11.default.readFileSync(filePath).toString();
5025
7312
  const content = (0, import_graphql16.parseFile)(
5026
7313
  fileContent,
5027
7314
  extname,
@@ -5032,7 +7319,7 @@ var rewriteTemplateKeysInDocs = (args) => {
5032
7319
  _template: stringifyLabel(templateKey),
5033
7320
  ...content
5034
7321
  };
5035
- import_fs_extra10.default.writeFileSync(
7322
+ import_fs_extra11.default.writeFileSync(
5036
7323
  filePath,
5037
7324
  (0, import_graphql16.stringifyFile)(newContent, extname, true, markdownParseConfig)
5038
7325
  );
@@ -5047,12 +7334,12 @@ var rewriteTemplateKeysInDocs = (args) => {
5047
7334
 
5048
7335
  // src/cmds/init/apply.ts
5049
7336
  var import_metrics2 = require("@tinacms/metrics");
5050
- var import_fs_extra13 = __toESM(require("fs-extra"));
7337
+ var import_fs_extra14 = __toESM(require("fs-extra"));
5051
7338
 
5052
7339
  // src/next/commands/codemod-command/index.ts
5053
7340
  var import_clipanion5 = require("clipanion");
5054
- var import_fs_extra11 = __toESM(require("fs-extra"));
5055
- var import_path10 = __toESM(require("path"));
7341
+ var import_fs_extra12 = __toESM(require("fs-extra"));
7342
+ var import_path12 = __toESM(require("path"));
5056
7343
  var CodemodCommand = class extends import_clipanion5.Command {
5057
7344
  constructor() {
5058
7345
  super(...arguments);
@@ -5096,13 +7383,13 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5096
7383
  logger.error(e.message);
5097
7384
  process.exit(1);
5098
7385
  }
5099
- const tinaDestination = import_path10.default.join(configManager.rootPath, "tina");
5100
- if (await import_fs_extra11.default.existsSync(tinaDestination)) {
7386
+ const tinaDestination = import_path12.default.join(configManager.rootPath, "tina");
7387
+ if (await import_fs_extra12.default.existsSync(tinaDestination)) {
5101
7388
  logger.info(
5102
7389
  `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.`
5103
7390
  );
5104
7391
  } else {
5105
- await import_fs_extra11.default.moveSync(configManager.tinaFolderPath, tinaDestination);
7392
+ await import_fs_extra12.default.moveSync(configManager.tinaFolderPath, tinaDestination);
5106
7393
  await writeGitignore(configManager.rootPath);
5107
7394
  logger.info(
5108
7395
  "Move to 'tina' folder complete. Be sure to update any imports of the autogenerated client!"
@@ -5110,8 +7397,8 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5110
7397
  }
5111
7398
  };
5112
7399
  var writeGitignore = async (rootPath) => {
5113
- await import_fs_extra11.default.outputFileSync(
5114
- import_path10.default.join(rootPath, "tina", ".gitignore"),
7400
+ await import_fs_extra12.default.outputFileSync(
7401
+ import_path12.default.join(rootPath, "tina", ".gitignore"),
5115
7402
  "__generated__"
5116
7403
  );
5117
7404
  };
@@ -5548,7 +7835,7 @@ function extendNextScripts(scripts, opts) {
5548
7835
 
5549
7836
  // src/cmds/init/codegen/index.ts
5550
7837
  var import_typescript3 = __toESM(require("typescript"));
5551
- var import_fs_extra12 = __toESM(require("fs-extra"));
7838
+ var import_fs_extra13 = __toESM(require("fs-extra"));
5552
7839
 
5553
7840
  // src/cmds/init/codegen/util.ts
5554
7841
  var import_typescript2 = __toESM(require("typescript"));
@@ -5785,7 +8072,7 @@ var addSelfHostedTinaAuthToConfig = async (config2, configFile) => {
5785
8072
  const pathToConfig = configFile.resolve(config2.typescript).path;
5786
8073
  const sourceFile = import_typescript3.default.createSourceFile(
5787
8074
  pathToConfig,
5788
- import_fs_extra12.default.readFileSync(pathToConfig, "utf8"),
8075
+ import_fs_extra13.default.readFileSync(pathToConfig, "utf8"),
5789
8076
  config2.typescript ? import_typescript3.default.ScriptTarget.Latest : import_typescript3.default.ScriptTarget.ESNext
5790
8077
  );
5791
8078
  const { configImports, configAuthProviderClass, extraTinaCollections } = config2.authProvider;
@@ -5831,7 +8118,7 @@ var addSelfHostedTinaAuthToConfig = async (config2, configFile) => {
5831
8118
  )
5832
8119
  ].map((visitor) => makeTransformer(visitor))
5833
8120
  );
5834
- return import_fs_extra12.default.writeFile(
8121
+ return import_fs_extra13.default.writeFile(
5835
8122
  pathToConfig,
5836
8123
  import_typescript3.default.createPrinter({ omitTrailingSemicolon: true }).printFile(transformedSourceFileResult.transformed[0])
5837
8124
  );
@@ -5949,8 +8236,8 @@ async function apply({
5949
8236
  await addConfigFile({
5950
8237
  configArgs: {
5951
8238
  config: config2,
5952
- publicFolder: import_path11.default.join(
5953
- import_path11.default.relative(process.cwd(), pathToForestryConfig),
8239
+ publicFolder: import_path13.default.join(
8240
+ import_path13.default.relative(process.cwd(), pathToForestryConfig),
5954
8241
  config2.publicFolder
5955
8242
  ),
5956
8243
  collections,
@@ -6017,18 +8304,18 @@ var createPackageJSON = async () => {
6017
8304
  };
6018
8305
  var createGitignore = async ({ baseDir }) => {
6019
8306
  logger.info(logText("No .gitignore found, creating one"));
6020
- import_fs_extra13.default.outputFileSync(import_path11.default.join(baseDir, ".gitignore"), "node_modules");
8307
+ import_fs_extra14.default.outputFileSync(import_path13.default.join(baseDir, ".gitignore"), "node_modules");
6021
8308
  };
6022
8309
  var updateGitIgnore = async ({
6023
8310
  baseDir,
6024
8311
  items
6025
8312
  }) => {
6026
8313
  logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
6027
- const gitignoreContent = import_fs_extra13.default.readFileSync(import_path11.default.join(baseDir, ".gitignore")).toString();
8314
+ const gitignoreContent = import_fs_extra14.default.readFileSync(import_path13.default.join(baseDir, ".gitignore")).toString();
6028
8315
  const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
6029
8316
  "\n"
6030
8317
  );
6031
- await import_fs_extra13.default.writeFile(import_path11.default.join(baseDir, ".gitignore"), newGitignoreContent);
8318
+ await import_fs_extra14.default.writeFile(import_path13.default.join(baseDir, ".gitignore"), newGitignoreContent);
6032
8319
  };
6033
8320
  var addDependencies = async (config2, env, params) => {
6034
8321
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
@@ -6098,22 +8385,22 @@ var writeGeneratedFile = async ({
6098
8385
  content,
6099
8386
  typescript
6100
8387
  }) => {
6101
- const { exists, path: path14, parentPath } = generatedFile.resolve(typescript);
8388
+ const { exists, path: path16, parentPath } = generatedFile.resolve(typescript);
6102
8389
  if (exists) {
6103
8390
  if (overwrite) {
6104
- logger.info(`Overwriting file at ${path14}... \u2705`);
6105
- import_fs_extra13.default.outputFileSync(path14, content);
8391
+ logger.info(`Overwriting file at ${path16}... \u2705`);
8392
+ import_fs_extra14.default.outputFileSync(path16, content);
6106
8393
  } else {
6107
- logger.info(`Not overwriting file at ${path14}.`);
8394
+ logger.info(`Not overwriting file at ${path16}.`);
6108
8395
  logger.info(
6109
- logText(`Please add the following to ${path14}:
8396
+ logText(`Please add the following to ${path16}:
6110
8397
  ${indentText(content)}}`)
6111
8398
  );
6112
8399
  }
6113
8400
  } else {
6114
- logger.info(`Adding file at ${path14}... \u2705`);
6115
- await import_fs_extra13.default.ensureDir(parentPath);
6116
- import_fs_extra13.default.outputFileSync(path14, content);
8401
+ logger.info(`Adding file at ${path16}... \u2705`);
8402
+ await import_fs_extra14.default.ensureDir(parentPath);
8403
+ import_fs_extra14.default.outputFileSync(path16, content);
6117
8404
  }
6118
8405
  };
6119
8406
  var addConfigFile = async ({
@@ -6196,7 +8483,7 @@ var addContentFile = async ({
6196
8483
  return () => ({
6197
8484
  exists: env.sampleContentExists,
6198
8485
  path: env.sampleContentPath,
6199
- parentPath: import_path11.default.dirname(env.sampleContentPath)
8486
+ parentPath: import_path13.default.dirname(env.sampleContentPath)
6200
8487
  });
6201
8488
  }
6202
8489
  },
@@ -6219,10 +8506,10 @@ ${titleText(" TinaCMS ")} backend initialized!`));
6219
8506
  return `${x.key}=${x.value || "***"}`;
6220
8507
  }).join("\n") + `
6221
8508
  TINA_PUBLIC_IS_LOCAL=true`;
6222
- const envFile = import_path11.default.join(process.cwd(), ".env");
6223
- if (!import_fs_extra13.default.existsSync(envFile)) {
8509
+ const envFile = import_path13.default.join(process.cwd(), ".env");
8510
+ if (!import_fs_extra14.default.existsSync(envFile)) {
6224
8511
  logger.info(`Adding .env file to your project... \u2705`);
6225
- import_fs_extra13.default.writeFileSync(envFile, envFileText);
8512
+ import_fs_extra14.default.writeFileSync(envFile, envFileText);
6226
8513
  } else {
6227
8514
  logger.info(
6228
8515
  "Please add the following environment variables to your .env file"
@@ -6283,7 +8570,7 @@ var addReactiveFile = {
6283
8570
  dataLayer
6284
8571
  }) => {
6285
8572
  var _a, _b;
6286
- const packageJsonPath = import_path11.default.join(baseDir, "package.json");
8573
+ const packageJsonPath = import_path13.default.join(baseDir, "package.json");
6287
8574
  await writeGeneratedFile({
6288
8575
  generatedFile,
6289
8576
  typescript: config2.typescript,
@@ -6296,7 +8583,7 @@ var addReactiveFile = {
6296
8583
  })
6297
8584
  });
6298
8585
  logger.info("Adding a nextjs example... \u2705");
6299
- const packageJson = JSON.parse(import_fs_extra13.default.readFileSync(packageJsonPath).toString());
8586
+ const packageJson = JSON.parse(import_fs_extra14.default.readFileSync(packageJsonPath).toString());
6300
8587
  const scripts = packageJson.scripts || {};
6301
8588
  const updatedPackageJson = JSON.stringify(
6302
8589
  {
@@ -6309,7 +8596,7 @@ var addReactiveFile = {
6309
8596
  null,
6310
8597
  2
6311
8598
  );
6312
- import_fs_extra13.default.writeFileSync(packageJsonPath, updatedPackageJson);
8599
+ import_fs_extra14.default.writeFileSync(packageJsonPath, updatedPackageJson);
6313
8600
  }
6314
8601
  };
6315
8602
  function execShellCommand(cmd) {