@tinacms/cli 0.0.0-ecea7ac-20241011043815 → 0.0.0-f00f07f-20241216063323

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 fs15 = require("fs");
35
+ function fileExistsSync(path15) {
36
+ if (!fs15.existsSync(path15)) {
37
+ return false;
38
+ }
39
+ try {
40
+ var stats = fs15.statSync(path15);
41
+ return stats.isFile();
42
+ } catch (err) {
43
+ return false;
44
+ }
45
+ }
46
+ exports.fileExistsSync = fileExistsSync;
47
+ function readJsonFromDiskSync(packageJsonPath) {
48
+ if (!fs15.existsSync(packageJsonPath)) {
49
+ return void 0;
50
+ }
51
+ return require(packageJsonPath);
52
+ }
53
+ exports.readJsonFromDiskSync = readJsonFromDiskSync;
54
+ function readJsonFromDiskAsync(path15, callback) {
55
+ fs15.readFile(path15, "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
+ fs15.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(path15) {
74
+ return path15.substring(0, path15.lastIndexOf(".")) || path15;
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.9";
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 path15 = 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 path15.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 path15 = 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: path15.join(physicalPath, "/package.json")
147
+ });
148
+ var indexPath = path15.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 path15 = 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 = path15.join(path15.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 path15 = 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 = path15.join(path15.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 path15 = require("path");
1546
+ var fs15 = 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 = fs15.lstatSync(filename).isDirectory() ? path15.resolve(filename, "./tsconfig.json") : path15.resolve(cwd, filename);
1576
+ return absolutePath;
1577
+ }
1578
+ if (fs15.statSync(cwd).isFile()) {
1579
+ return path15.resolve(cwd);
1580
+ }
1581
+ var configAbsolutePath = walkForTsConfig(cwd);
1582
+ return configAbsolutePath ? path15.resolve(configAbsolutePath) : void 0;
1583
+ }
1584
+ function walkForTsConfig(directory, readdirSync) {
1585
+ if (readdirSync === void 0) {
1586
+ readdirSync = fs15.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 path15.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 = path15.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 = fs15.existsSync;
1606
+ }
1607
+ if (readFileSync === void 0) {
1608
+ readFileSync = function(filename) {
1609
+ return fs15.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 = path15.dirname(configFilePath);
1644
+ var extendedConfigPath = path15.join(currentDir, extendedConfigValue);
1645
+ if (extendedConfigValue.indexOf("/") !== -1 && extendedConfigValue.indexOf(".") !== -1 && !existsSync(extendedConfigPath)) {
1646
+ extendedConfigPath = path15.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 = path15.dirname(extendedConfigValue);
1651
+ config2.compilerOptions.baseUrl = path15.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 path15 = 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 = path15.isAbsolute(explicitParams.baseUrl) ? explicitParams.baseUrl : path15.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: path15.resolve(path15.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_extra6 = __toESM(require("fs-extra"));
2092
+ var import_path6 = __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_extra2 = __toESM(require("fs-extra"));
2098
+ var import_path2 = __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,848 @@ 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
+ var import_esbuild_plugin_alias_path = require("esbuild-plugin-alias-path");
2576
+
2577
+ // src/logger/index.ts
2578
+ var import_chalk = __toESM(require("chalk"));
2579
+
2580
+ // src/logger/is-unicode-supported.ts
2581
+ function isUnicodeSupported() {
2582
+ if (process.platform !== "win32") {
2583
+ return process.env.TERM !== "linux";
2584
+ }
2585
+ 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";
2586
+ }
2587
+
2588
+ // src/logger/index.ts
2589
+ var import_log4js = __toESM(require("log4js"));
2590
+ var logger = import_log4js.default.getLogger();
2591
+ import_log4js.default.configure({
2592
+ appenders: {
2593
+ out: { type: "stdout", layout: { type: "messagePassThrough" } }
2594
+ },
2595
+ categories: { default: { appenders: ["out"], level: "info" } }
2596
+ });
2597
+ logger.level = "info";
2598
+ function ansiRegex() {
2599
+ const pattern = [
2600
+ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
2601
+ "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
2602
+ ].join("|");
2603
+ return new RegExp(pattern, "g");
2604
+ }
2605
+ var bar = "\u2502";
2606
+ var strip = (str) => str.replace(ansiRegex(), "");
2607
+ var note = (message = "", title = "") => {
2608
+ const lines = `
2609
+ ${message}
2610
+ `.split("\n");
2611
+ const len = lines.reduce((sum, ln) => {
2612
+ ln = strip(ln);
2613
+ return ln.length > sum ? ln.length : sum;
2614
+ }, 0) + 2;
2615
+ const msg = lines.map(
2616
+ (ln) => `${import_chalk.default.gray(bar)} ${import_chalk.default.white(ln)}${" ".repeat(
2617
+ len - strip(ln).length
2618
+ )}${import_chalk.default.gray(bar)}`
2619
+ ).join("\n");
2620
+ const underscoreLen = len - title.length - 1 > 0 ? len - title.length - 1 : 0;
2621
+ process.stdout.write(
2622
+ `${import_chalk.default.gray(bar)}
2623
+ ${import_chalk.default.green("\u25CB")} ${import_chalk.default.reset(
2624
+ title
2625
+ )} ${import_chalk.default.gray("\u2500".repeat(underscoreLen) + "\u256E")}
2626
+ ${msg}
2627
+ ${import_chalk.default.gray(
2628
+ "\u251C" + "\u2500".repeat(len + 2) + "\u256F"
2629
+ )}
2630
+ `
2631
+ );
2632
+ };
2633
+ var summary = (content) => {
2634
+ const outString = [];
2635
+ let longestKey = 0;
2636
+ content.items.forEach((item) => {
2637
+ item.subItems.forEach((subItem) => {
2638
+ if (subItem.key.length > longestKey) {
2639
+ longestKey = subItem.key.length;
2640
+ }
2641
+ });
2642
+ });
2643
+ content.items.forEach((item) => {
2644
+ outString.push(`${item.emoji} ${import_chalk.default.cyan(item.heading)}`);
2645
+ item.subItems.forEach((subItem) => {
2646
+ const spaces = longestKey - subItem.key.length + 4;
2647
+ outString.push(
2648
+ ` ${subItem.key}:${[...Array(spaces)].join(" ")}${import_chalk.default.cyan(
2649
+ subItem.value
2650
+ )}`
2651
+ );
2652
+ });
2653
+ outString.push(``);
2654
+ });
2655
+ if (process.env.CI) {
2656
+ logger.info(JSON.stringify(content, null, 2));
2657
+ } else {
2658
+ note(outString.join("\n"), content.heading);
2659
+ }
2660
+ };
2661
+ var unicode = isUnicodeSupported();
2662
+ var s = (c, fallback) => unicode ? c : fallback;
2663
+ var S_STEP_ACTIVE = s("\u25C6", "*");
2664
+ var S_STEP_CANCEL = s("\u25A0", "x");
2665
+ var S_STEP_ERROR = s("\u25B2", "x");
2666
+ var S_STEP_SUBMIT = s("\u25C7", "o");
2667
+ var S_BAR_START = s("\u250C", "T");
2668
+ var S_BAR = s("\u2502", "|");
2669
+ var S_BAR_END = s("\u2514", "\u2014");
2670
+ var S_RADIO_ACTIVE = s("\u25CF", ">");
2671
+ var S_RADIO_INACTIVE = s("\u25CB", " ");
2672
+ var S_CHECKBOX_ACTIVE = s("\u25FB", "[\u2022]");
2673
+ var S_CHECKBOX_SELECTED = s("\u25FC", "[+]");
2674
+ var S_CHECKBOX_INACTIVE = s("\u25FB", "[ ]");
2675
+ var S_PASSWORD_MASK = s("\u25AA", "\u2022");
2676
+ var S_BAR_H = s("\u2500", "-");
2677
+ var S_CORNER_TOP_RIGHT = s("\u256E", "+");
2678
+ var S_CONNECT_LEFT = s("\u251C", "+");
2679
+ var S_CORNER_BOTTOM_RIGHT = s("\u256F", "+");
2680
+ var S_INFO = s("\u25CF", "\u2022");
2681
+ var S_SUCCESS = s("\u25C6", "*");
2682
+ var S_WARN = s("\u25B2", "!");
2683
+ var S_ERROR = s("\u25A0", "x");
2684
+
2685
+ // src/utils/alias-helpers.ts
2686
+ var import_path = __toESM(require("path"));
2687
+ function resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths) {
2688
+ return Object.entries(paths).reduce((aliases, [aliasKey, aliasPaths]) => {
2689
+ if (aliasKey === "@/*") {
2690
+ console.warn('Ignoring "@/*" alias due to potential conflicts.');
2691
+ return aliases;
2692
+ }
2693
+ const hasWildcard = aliasKey.includes("*");
2694
+ const baseAliasKey = hasWildcard ? aliasKey.replace("/*", "") : aliasKey;
2695
+ const baseAliasPath = import_path.default.resolve(
2696
+ absoluteBaseUrl,
2697
+ aliasPaths[0].replace("/*", "")
2698
+ );
2699
+ if (hasWildcard) {
2700
+ aliases[`${baseAliasKey}/*`] = `${baseAliasPath}`;
2701
+ } else {
2702
+ aliases[baseAliasKey] = baseAliasPath;
2703
+ }
2704
+ return aliases;
2705
+ }, {});
2706
+ }
2707
+
2708
+ // src/next/config-manager.ts
2709
+ var TINA_FOLDER = "tina";
2710
+ var LEGACY_TINA_FOLDER = ".tina";
2711
+ var GENERATED_FOLDER = "__generated__";
2712
+ var GRAPHQL_JSON_FILE = "_graphql.json";
2713
+ var GRAPHQL_GQL_FILE = "schema.gql";
2714
+ var SCHEMA_JSON_FILE = "_schema.json";
2715
+ var LOOKUP_JSON_FILE = "_lookup.json";
2716
+ var ConfigManager = class {
2717
+ constructor({
2718
+ rootPath = process.cwd(),
2719
+ tinaGraphQLVersion,
2720
+ legacyNoSDK
2721
+ }) {
2722
+ this.rootPath = (0, import_normalize_path2.default)(rootPath);
2723
+ this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
2724
+ this.legacyNoSDK = legacyNoSDK;
2725
+ }
2726
+ isUsingTs() {
2727
+ return [".ts", ".tsx"].includes(import_path2.default.extname(this.tinaConfigFilePath));
2728
+ }
2729
+ hasSelfHostedConfig() {
2730
+ return !!this.selfHostedDatabaseFilePath;
2731
+ }
2732
+ hasSeparateContentRoot() {
2733
+ return this.rootPath !== this.contentRootPath;
2734
+ }
2735
+ shouldSkipSDK() {
2736
+ var _a;
2737
+ if (this.legacyNoSDK) {
2738
+ return this.legacyNoSDK;
2739
+ }
2740
+ return ((_a = this.config.client) == null ? void 0 : _a.skip) || false;
2741
+ }
2742
+ async processConfig() {
2743
+ this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
2744
+ this.envFilePath = import_path2.default.resolve(
2745
+ import_path2.default.join(this.tinaFolderPath, "..", ".env")
2746
+ );
2747
+ dotenv.config({ path: this.envFilePath });
2748
+ this.tinaConfigFilePath = await this.getPathWithExtension(
2749
+ import_path2.default.join(this.tinaFolderPath, "config")
2750
+ );
2751
+ if (!this.tinaConfigFilePath) {
2752
+ throw new Error(
2753
+ `Unable to find config file in ${this.tinaFolderPath}. Looking for a file named "config.{ts,tsx,js,jsx}"`
2754
+ );
2755
+ }
2756
+ this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
2757
+ import_path2.default.join(this.tinaFolderPath, "database")
2758
+ );
2759
+ this.generatedFolderPath = import_path2.default.join(this.tinaFolderPath, GENERATED_FOLDER);
2760
+ this.generatedCachePath = import_path2.default.join(
2761
+ this.generatedFolderPath,
2762
+ ".cache",
2763
+ String(new Date().getTime())
2764
+ );
2765
+ this.generatedGraphQLGQLPath = import_path2.default.join(
2766
+ this.generatedFolderPath,
2767
+ GRAPHQL_GQL_FILE
2768
+ );
2769
+ this.generatedGraphQLJSONPath = import_path2.default.join(
2770
+ this.generatedFolderPath,
2771
+ GRAPHQL_JSON_FILE
2772
+ );
2773
+ this.generatedSchemaJSONPath = import_path2.default.join(
2774
+ this.generatedFolderPath,
2775
+ SCHEMA_JSON_FILE
2776
+ );
2777
+ this.generatedLookupJSONPath = import_path2.default.join(
2778
+ this.generatedFolderPath,
2779
+ LOOKUP_JSON_FILE
2780
+ );
2781
+ this.generatedQueriesFilePath = import_path2.default.join(
2782
+ this.generatedFolderPath,
2783
+ "queries.gql"
2784
+ );
2785
+ this.generatedFragmentsFilePath = import_path2.default.join(
2786
+ this.generatedFolderPath,
2787
+ "frags.gql"
2788
+ );
2789
+ this.generatedTypesTSFilePath = import_path2.default.join(
2790
+ this.generatedFolderPath,
2791
+ "types.ts"
2792
+ );
2793
+ this.generatedTypesJSFilePath = import_path2.default.join(
2794
+ this.generatedFolderPath,
2795
+ "types.js"
2796
+ );
2797
+ this.generatedTypesDFilePath = import_path2.default.join(
2798
+ this.generatedFolderPath,
2799
+ "types.d.ts"
2800
+ );
2801
+ this.userQueriesAndFragmentsGlob = import_path2.default.join(
2802
+ this.tinaFolderPath,
2803
+ "queries/**/*.{graphql,gql}"
2804
+ );
2805
+ this.generatedQueriesAndFragmentsGlob = import_path2.default.join(
2806
+ this.generatedFolderPath,
2807
+ "*.{graphql,gql}"
2808
+ );
2809
+ this.generatedClientTSFilePath = import_path2.default.join(
2810
+ this.generatedFolderPath,
2811
+ "client.ts"
2812
+ );
2813
+ this.generatedClientJSFilePath = import_path2.default.join(
2814
+ this.generatedFolderPath,
2815
+ "client.js"
2816
+ );
2817
+ this.generatedClientDFilePath = import_path2.default.join(
2818
+ this.generatedFolderPath,
2819
+ "client.d.ts"
2820
+ );
2821
+ this.generatedDatabaseClientDFilePath = import_path2.default.join(
2822
+ this.generatedFolderPath,
2823
+ "databaseClient.d.ts"
2824
+ );
2825
+ this.generatedDatabaseClientTSFilePath = import_path2.default.join(
2826
+ this.generatedFolderPath,
2827
+ "databaseClient.ts"
2828
+ );
2829
+ this.generatedDatabaseClientJSFilePath = import_path2.default.join(
2830
+ this.generatedFolderPath,
2831
+ "databaseClient.js"
2832
+ );
2833
+ const clientExists = this.isUsingTs() ? await import_fs_extra2.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra2.default.pathExists(this.generatedClientJSFilePath);
2834
+ if (!clientExists) {
2835
+ const file = "export default ()=>({})\nexport const client = ()=>({})";
2836
+ if (this.isUsingTs()) {
2837
+ await import_fs_extra2.default.outputFile(this.generatedClientTSFilePath, file);
2838
+ } else {
2839
+ await import_fs_extra2.default.outputFile(this.generatedClientJSFilePath, file);
2840
+ }
2841
+ }
2842
+ const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
2843
+ this.generatedFolderPath,
2844
+ this.tinaConfigFilePath
2845
+ );
2846
+ this.watchList = watchList;
2847
+ this.config = config2;
2848
+ this.prebuildFilePath = prebuildPath;
2849
+ this.publicFolderPath = import_path2.default.join(
2850
+ this.rootPath,
2851
+ this.config.build.publicFolder
2852
+ );
2853
+ this.outputFolderPath = import_path2.default.join(
2854
+ this.publicFolderPath,
2855
+ this.config.build.outputFolder
2856
+ );
2857
+ this.outputHTMLFilePath = import_path2.default.join(this.outputFolderPath, "index.html");
2858
+ this.outputGitignorePath = import_path2.default.join(this.outputFolderPath, ".gitignore");
2859
+ const fullLocalContentPath = import_path2.default.join(
2860
+ this.tinaFolderPath,
2861
+ this.config.localContentPath || ""
2862
+ );
2863
+ if (this.config.localContentPath) {
2864
+ const localContentPathExists = await import_fs_extra2.default.pathExists(fullLocalContentPath);
2865
+ if (localContentPathExists) {
2866
+ logger.info(`Using separate content repo at ${fullLocalContentPath}`);
2867
+ this.contentRootPath = fullLocalContentPath;
2868
+ } else {
2869
+ logger.warn(
2870
+ `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
2871
+ fullLocalContentPath
2872
+ )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
2873
+ this.tinaConfigFilePath
2874
+ )}`
2875
+ );
2876
+ }
2877
+ }
2878
+ if (!this.contentRootPath) {
2879
+ this.contentRootPath = this.rootPath;
2880
+ }
2881
+ this.generatedFolderPathContentRepo = import_path2.default.join(
2882
+ await this.getTinaFolderPath(this.contentRootPath),
2883
+ GENERATED_FOLDER
2884
+ );
2885
+ this.spaMainPath = require.resolve("@tinacms/app");
2886
+ this.spaRootPath = import_path2.default.join(this.spaMainPath, "..", "..");
2887
+ }
2888
+ async getTinaFolderPath(rootPath) {
2889
+ const tinaFolderPath = import_path2.default.join(rootPath, TINA_FOLDER);
2890
+ const tinaFolderExists = await import_fs_extra2.default.pathExists(tinaFolderPath);
2891
+ if (tinaFolderExists) {
2892
+ this.isUsingLegacyFolder = false;
2893
+ return tinaFolderPath;
2894
+ }
2895
+ const legacyFolderPath = import_path2.default.join(rootPath, LEGACY_TINA_FOLDER);
2896
+ const legacyFolderExists = await import_fs_extra2.default.pathExists(legacyFolderPath);
2897
+ if (legacyFolderExists) {
2898
+ this.isUsingLegacyFolder = true;
2899
+ return legacyFolderPath;
2900
+ }
2901
+ throw new Error(
2902
+ `Unable to find Tina folder, if you're working in folder outside of the Tina config be sure to specify --rootPath`
2903
+ );
2904
+ }
2905
+ getTinaGraphQLVersion() {
2906
+ if (this.tinaGraphQLVersionFromCLI) {
2907
+ const version2 = this.tinaGraphQLVersionFromCLI.split(".");
2908
+ return {
2909
+ fullVersion: this.tinaGraphQLVersionFromCLI,
2910
+ major: version2[0] || "x",
2911
+ minor: version2[1] || "x",
2912
+ patch: version2[2] || "x"
884
2913
  };
885
2914
  }
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": [] };
2915
+ const generatedSchema = import_fs_extra2.default.readJSONSync(this.generatedSchemaJSONPath);
2916
+ if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined")) {
2917
+ throw new Error(
2918
+ `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
2919
+ );
2920
+ }
2921
+ return generatedSchema.version;
903
2922
  }
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
- });
2923
+ printGeneratedClientFilePath() {
2924
+ if (this.isUsingTs()) {
2925
+ return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
927
2926
  }
928
- staticMediaItems.push(staticMediaItem);
2927
+ return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
929
2928
  }
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);
2929
+ printGeneratedTypesFilePath() {
2930
+ return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
2931
+ }
2932
+ printoutputHTMLFilePath() {
2933
+ return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
2934
+ }
2935
+ printRelativePath(filename) {
2936
+ if (filename) {
2937
+ return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
935
2938
  }
936
- return result;
2939
+ throw `No path provided to print`;
937
2940
  }
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
- }
2941
+ printPrebuildFilePath() {
2942
+ return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
2943
+ }
2944
+ printContentRelativePath(filename) {
2945
+ if (filename) {
2946
+ return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
964
2947
  }
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
2948
+ throw `No path provided to print`;
2949
+ }
2950
+ async getPathWithExtension(filepath) {
2951
+ const extensions = ["tsx", "ts", "jsx", "js"];
2952
+ let result;
2953
+ await Promise.all(
2954
+ extensions.map(async (ext) => {
2955
+ if (result) {
2956
+ return;
2957
+ }
2958
+ const filepathWithExtension = `${filepath}.${ext}`;
2959
+ const exists = import_fs_extra2.default.existsSync(filepathWithExtension);
2960
+ if (exists) {
2961
+ result = filepathWithExtension;
2962
+ }
2963
+ })
2964
+ );
2965
+ return result;
2966
+ }
2967
+ async loadDatabaseFile() {
2968
+ const tmpdir = import_path2.default.join(import_os.default.tmpdir(), Date.now().toString());
2969
+ const outfile = import_path2.default.join(tmpdir, "database.build.js");
2970
+ await esbuild.build({
2971
+ entryPoints: [this.selfHostedDatabaseFilePath],
2972
+ bundle: true,
2973
+ platform: "node",
2974
+ outfile,
2975
+ loader: loaders
975
2976
  });
976
- await import_fs_extra2.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
977
- } else {
978
- await import_fs_extra2.default.outputFile(staticMediaPath, `[]`);
2977
+ const result = require(outfile);
2978
+ import_fs_extra2.default.removeSync(outfile);
2979
+ return result.default;
979
2980
  }
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"
2981
+ async loadConfigFile(generatedFolderPath, configFilePath) {
2982
+ var _a;
2983
+ const tmpdir = import_path2.default.join(import_os.default.tmpdir(), Date.now().toString());
2984
+ const preBuildConfigPath = import_path2.default.join(
2985
+ this.generatedFolderPath,
2986
+ "config.prebuild.jsx"
994
2987
  );
995
- } else {
996
- alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
2988
+ const outfile = import_path2.default.join(tmpdir, "config.build.jsx");
2989
+ const outfile2 = import_path2.default.join(tmpdir, "config.build.js");
2990
+ const tempTSConfigFile = import_path2.default.join(tmpdir, "tsconfig.json");
2991
+ const viteConfig = await loadProjectConfig({
2992
+ rootPath: this.rootPath,
2993
+ viteConfigEnv: {
2994
+ command: "build",
2995
+ mode: "production"
2996
+ }
2997
+ });
2998
+ const tsconfigPath = import_path2.default.join(this.rootPath, "tsconfig.json");
2999
+ let dynamicAliases = {};
3000
+ if (import_fs_extra2.default.existsSync(tsconfigPath)) {
3001
+ const tsConfigResult = (0, import_tsconfig_paths.loadConfig)(tsconfigPath);
3002
+ if (tsConfigResult.resultType === "success") {
3003
+ const { absoluteBaseUrl, paths } = tsConfigResult;
3004
+ dynamicAliases = resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths);
3005
+ } else {
3006
+ console.error("Failed to load tsconfig.json:", tsConfigResult.message);
3007
+ throw new Error(`Invalid tsconfig.json at ${tsconfigPath}`);
3008
+ }
3009
+ } else {
3010
+ console.warn(
3011
+ "Warning: tsconfig.json not found. Alias resolution will not be supported."
3012
+ );
3013
+ }
3014
+ import_fs_extra2.default.outputFileSync(tempTSConfigFile, "{}");
3015
+ const result2 = await esbuild.build({
3016
+ entryPoints: [configFilePath],
3017
+ bundle: true,
3018
+ target: ["es2020"],
3019
+ platform: "browser",
3020
+ format: "esm",
3021
+ logLevel: "silent",
3022
+ packages: "external",
3023
+ ignoreAnnotations: true,
3024
+ outfile: preBuildConfigPath,
3025
+ loader: loaders,
3026
+ metafile: true,
3027
+ plugins: Object.keys(dynamicAliases).length ? [(0, import_esbuild_plugin_alias_path.aliasPath)({ alias: dynamicAliases })] : []
3028
+ });
3029
+ const flattenedList = [];
3030
+ Object.keys(result2.metafile.inputs).forEach((key) => {
3031
+ if (key.includes("node_modules") || key.includes("__generated__")) {
3032
+ return;
3033
+ }
3034
+ flattenedList.push(key);
3035
+ });
3036
+ await esbuild.build({
3037
+ entryPoints: [configFilePath],
3038
+ bundle: true,
3039
+ target: ["es2020"],
3040
+ logLevel: "silent",
3041
+ platform: "node",
3042
+ outfile,
3043
+ loader: loaders,
3044
+ alias: (_a = viteConfig.config.resolve) == null ? void 0 : _a.alias
3045
+ });
3046
+ await esbuild.build({
3047
+ entryPoints: [outfile],
3048
+ bundle: true,
3049
+ logLevel: "silent",
3050
+ platform: "node",
3051
+ outfile: outfile2,
3052
+ loader: loaders
3053
+ });
3054
+ let result;
3055
+ try {
3056
+ result = require(outfile2);
3057
+ } catch (e) {
3058
+ console.error("Unexpected error loading config");
3059
+ console.error(e);
3060
+ throw e;
3061
+ }
3062
+ import_fs_extra2.default.removeSync(outfile);
3063
+ import_fs_extra2.default.removeSync(outfile2);
3064
+ return {
3065
+ config: result.default,
3066
+ prebuildPath: preBuildConfigPath,
3067
+ watchList: flattenedList
3068
+ };
997
3069
  }
998
- let basePath;
999
- if (configManager.config.build.basePath) {
1000
- basePath = configManager.config.build.basePath;
3070
+ };
3071
+ var loaders = {
3072
+ ".aac": "file",
3073
+ ".css": "file",
3074
+ ".eot": "file",
3075
+ ".flac": "file",
3076
+ ".gif": "file",
3077
+ ".jpeg": "file",
3078
+ ".jpg": "file",
3079
+ ".json": "json",
3080
+ ".mp3": "file",
3081
+ ".mp4": "file",
3082
+ ".ogg": "file",
3083
+ ".otf": "file",
3084
+ ".png": "file",
3085
+ ".svg": "file",
3086
+ ".ttf": "file",
3087
+ ".wav": "file",
3088
+ ".webm": "file",
3089
+ ".webp": "file",
3090
+ ".woff": "file",
3091
+ ".woff2": "file",
3092
+ ".js": "jsx",
3093
+ ".jsx": "jsx",
3094
+ ".tsx": "tsx"
3095
+ };
3096
+
3097
+ // src/next/commands/dev-command/html.ts
3098
+ var errorHTML = `<style type="text/css">
3099
+ #no-assets-placeholder body {
3100
+ font-family: sans-serif;
3101
+ font-size: 16px;
3102
+ line-height: 1.4;
3103
+ color: #333;
3104
+ background-color: #f5f5f5;
3105
+ }
3106
+ #no-assets-placeholder {
3107
+ max-width: 600px;
3108
+ margin: 0 auto;
3109
+ padding: 40px;
3110
+ text-align: center;
3111
+ background-color: #fff;
3112
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
3113
+ }
3114
+ #no-assets-placeholder h1 {
3115
+ font-size: 24px;
3116
+ margin-bottom: 20px;
3117
+ }
3118
+ #no-assets-placeholder p {
3119
+ margin-bottom: 10px;
3120
+ }
3121
+ #no-assets-placeholder a {
3122
+ color: #0077cc;
3123
+ text-decoration: none;
3124
+ }
3125
+ #no-assets-placeholder a:hover {
3126
+ text-decoration: underline;
3127
+ }
3128
+ </style>
3129
+ <div id="no-assets-placeholder">
3130
+ <h1>Failed loading TinaCMS assets</h1>
3131
+ <p>
3132
+ Your TinaCMS configuration may be misconfigured, and we could not load
3133
+ the assets for this page.
3134
+ </p>
3135
+ <p>
3136
+ 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.
3137
+ </p>
3138
+ </div>
3139
+ </div>`.trim().replace(/[\r\n\s]+/g, " ");
3140
+ var devHTML = (port) => `<!DOCTYPE html>
3141
+ <html lang="en">
3142
+ <head>
3143
+ <meta charset="UTF-8" />
3144
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3145
+ <title>TinaCMS</title>
3146
+ </head>
3147
+
3148
+ <!-- if development -->
3149
+ <script type="module">
3150
+ import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
3151
+ RefreshRuntime.injectIntoGlobalHook(window)
3152
+ window.$RefreshReg$ = () => {}
3153
+ window.$RefreshSig$ = () => (type) => type
3154
+ window.__vite_plugin_react_preamble_installed__ = true
3155
+ <\/script>
3156
+ <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
3157
+ <script>
3158
+ function handleLoadError() {
3159
+ // Assets have failed to load
3160
+ document.getElementById('root').innerHTML = '${errorHTML}';
1001
3161
  }
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;
3162
+ <\/script>
3163
+ <script
3164
+ type="module"
3165
+ src="http://localhost:${port}/src/main.tsx"
3166
+ onerror="handleLoadError()"
3167
+ ><\/script>
3168
+ <body class="tina-tailwind">
3169
+ <div id="root"></div>
3170
+ </body>
3171
+ </html>`;
3172
+
3173
+ // src/utils/theme.ts
3174
+ var import_chalk3 = __toESM(require("chalk"));
3175
+ var successText = import_chalk3.default.bold.green;
3176
+ var focusText = import_chalk3.default.bold;
3177
+ var dangerText = import_chalk3.default.bold.red;
3178
+ var neutralText = import_chalk3.default.bold.cyan;
3179
+ var linkText = import_chalk3.default.bold.cyan;
3180
+ var labelText = import_chalk3.default.bold;
3181
+ var cmdText = import_chalk3.default.inverse;
3182
+ var indentedCmd = (str) => {
3183
+ return ` \u2503 ` + str;
3184
+ };
3185
+ var indentText = (str) => {
3186
+ return String(str).split("\n").map((line) => ` ${line}`).join("\n");
1055
3187
  };
3188
+ var logText = import_chalk3.default.italic.gray;
3189
+ var warnText = import_chalk3.default.yellowBright.bgBlack;
3190
+ var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
3191
+ var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
3192
+
3193
+ // src/next/commands/dev-command/server/index.ts
3194
+ var import_vite4 = require("vite");
1056
3195
 
1057
3196
  // src/next/vite/plugins.ts
1058
3197
  var import_pluginutils = require("@rollup/pluginutils");
1059
3198
  var import_fs = __toESM(require("fs"));
1060
- var import_vite2 = require("vite");
3199
+ var import_vite3 = require("vite");
1061
3200
  var import_esbuild = require("esbuild");
1062
- var import_path3 = __toESM(require("path"));
3201
+ var import_path4 = __toESM(require("path"));
1063
3202
  var import_body_parser = __toESM(require("body-parser"));
1064
3203
  var import_cors = __toESM(require("cors"));
1065
3204
  var import_graphql = require("@tinacms/graphql");
1066
3205
 
1067
3206
  // src/next/commands/dev-command/server/media.ts
1068
3207
  var import_fs_extra3 = __toESM(require("fs-extra"));
1069
- var import_path2 = __toESM(require("path"));
3208
+ var import_path3 = __toESM(require("path"));
1070
3209
  var import_busboy = __toESM(require("busboy"));
1071
3210
  var createMediaRouter = (config2) => {
1072
- const mediaFolder = import_path2.default.join(
3211
+ const mediaFolder = import_path3.default.join(
1073
3212
  config2.rootPath,
1074
3213
  config2.publicFolder,
1075
3214
  config2.mediaRoot
@@ -1097,8 +3236,8 @@ var createMediaRouter = (config2) => {
1097
3236
  bb.on("file", async (_name, file, _info) => {
1098
3237
  var _a;
1099
3238
  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));
3239
+ const saveTo = import_path3.default.join(mediaFolder, ...fullPath.split("/"));
3240
+ await import_fs_extra3.default.ensureDir(import_path3.default.dirname(saveTo));
1102
3241
  file.pipe(import_fs_extra3.default.createWriteStream(saveTo));
1103
3242
  });
1104
3243
  bb.on("error", (error) => {
@@ -1133,7 +3272,7 @@ var MediaModel = class {
1133
3272
  }
1134
3273
  async listMedia(args) {
1135
3274
  try {
1136
- const folderPath = (0, import_path2.join)(
3275
+ const folderPath = (0, import_path3.join)(
1137
3276
  this.rootPath,
1138
3277
  this.publicFolder,
1139
3278
  this.mediaRoot,
@@ -1148,7 +3287,7 @@ var MediaModel = class {
1148
3287
  }
1149
3288
  const filesStr = await import_fs_extra3.default.readdir(folderPath);
1150
3289
  const filesProm = filesStr.map(async (file) => {
1151
- const filePath = (0, import_path2.join)(folderPath, file);
3290
+ const filePath = (0, import_path3.join)(folderPath, file);
1152
3291
  const stat = await import_fs_extra3.default.stat(filePath);
1153
3292
  let src = `/${file}`;
1154
3293
  const isFile = stat.isFile();
@@ -1205,7 +3344,7 @@ var MediaModel = class {
1205
3344
  }
1206
3345
  async deleteMedia(args) {
1207
3346
  try {
1208
- const file = (0, import_path2.join)(
3347
+ const file = (0, import_path3.join)(
1209
3348
  this.rootPath,
1210
3349
  this.publicFolder,
1211
3350
  this.mediaRoot,
@@ -1270,7 +3409,7 @@ var transformTsxPlugin = ({
1270
3409
  const plug = {
1271
3410
  name: "transform-tsx",
1272
3411
  async transform(code, id) {
1273
- const extName = import_path3.default.extname(id);
3412
+ const extName = import_path4.default.extname(id);
1274
3413
  if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
1275
3414
  const result = await (0, import_esbuild.transform)(code, { loader: "tsx" });
1276
3415
  return {
@@ -1380,7 +3519,7 @@ function viteTransformExtension({
1380
3519
  previousExport: exportAsDefault ? null : code
1381
3520
  }
1382
3521
  });
1383
- const res = await (0, import_vite2.transformWithEsbuild)(componentCode, id, {
3522
+ const res = await (0, import_vite3.transformWithEsbuild)(componentCode, id, {
1384
3523
  loader: "jsx",
1385
3524
  ...esbuildOptions
1386
3525
  });
@@ -1400,7 +3539,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1400
3539
  devServerEndPointsPlugin({ apiURL, configManager, database, searchIndex }),
1401
3540
  viteTransformExtension()
1402
3541
  ];
1403
- return (0, import_vite3.createServer)(
3542
+ return (0, import_vite4.createServer)(
1404
3543
  await createConfig({
1405
3544
  configManager,
1406
3545
  database,
@@ -1415,6 +3554,10 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1415
3554
  }
1416
3555
  warn(warning);
1417
3556
  }
3557
+ },
3558
+ viteConfigEnv: {
3559
+ command: "serve",
3560
+ mode: "development"
1418
3561
  }
1419
3562
  })
1420
3563
  );
@@ -1422,7 +3565,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1422
3565
 
1423
3566
  // src/next/codegen/index.ts
1424
3567
  var import_fs_extra4 = __toESM(require("fs-extra"));
1425
- var import_path4 = __toESM(require("path"));
3568
+ var import_path5 = __toESM(require("path"));
1426
3569
  var import_graphql6 = require("graphql");
1427
3570
 
1428
3571
  // src/next/codegen/codegen/index.ts
@@ -1668,11 +3811,11 @@ var Codegen = class {
1668
3811
  this.noClientBuildCache = noClientBuildCache;
1669
3812
  }
1670
3813
  async writeConfigFile(fileName, data) {
1671
- const filePath = import_path4.default.join(this.configManager.generatedFolderPath, fileName);
3814
+ const filePath = import_path5.default.join(this.configManager.generatedFolderPath, fileName);
1672
3815
  await import_fs_extra4.default.ensureFile(filePath);
1673
3816
  await import_fs_extra4.default.outputFile(filePath, data);
1674
3817
  if (this.configManager.hasSeparateContentRoot()) {
1675
- const filePath2 = import_path4.default.join(
3818
+ const filePath2 = import_path5.default.join(
1676
3819
  this.configManager.generatedFolderPathContentRepo,
1677
3820
  fileName
1678
3821
  );
@@ -1788,7 +3931,8 @@ var Codegen = class {
1788
3931
  const branch = (_a = this.configManager.config) == null ? void 0 : _a.branch;
1789
3932
  const clientId = (_b = this.configManager.config) == null ? void 0 : _b.clientId;
1790
3933
  const token = (_c = this.configManager.config) == null ? void 0 : _c.token;
1791
- const version2 = this.configManager.getTinaGraphQLVersion();
3934
+ const fullVersion = this.configManager.getTinaGraphQLVersion();
3935
+ const version2 = `${fullVersion.major}.${fullVersion.minor}`;
1792
3936
  const baseUrl = ((_d = this.configManager.config.tinaioConfig) == null ? void 0 : _d.contentApiUrlOverride) || `https://${TINA_HOST}`;
1793
3937
  if ((!branch || !clientId || !token) && !this.port && !this.configManager.config.contentApiUrlOverride) {
1794
3938
  const missing = [];
@@ -2209,7 +4353,7 @@ var BaseCommand = class extends import_clipanion.Command {
2209
4353
  pathFilter
2210
4354
  });
2211
4355
  const tinaPathUpdates = modified.filter(
2212
- (path13) => path13.startsWith(".tina/__generated__/_schema.json") || path13.startsWith("tina/tina-lock.json")
4356
+ (path15) => path15.startsWith(".tina/__generated__/_schema.json") || path15.startsWith("tina/tina-lock.json")
2213
4357
  );
2214
4358
  if (tinaPathUpdates.length > 0) {
2215
4359
  res = await database.indexContent({
@@ -2324,14 +4468,14 @@ var DevCommand = class extends BaseCommand {
2324
4468
  graphql: graphqlSchemaObject
2325
4469
  });
2326
4470
  import_fs_extra6.default.writeFileSync(
2327
- import_path5.default.join(configManager.tinaFolderPath, tinaLockFilename),
4471
+ import_path6.default.join(configManager.tinaFolderPath, tinaLockFilename),
2328
4472
  tinaLockContent
2329
4473
  );
2330
4474
  if (configManager.hasSeparateContentRoot()) {
2331
4475
  const rootPath = await configManager.getTinaFolderPath(
2332
4476
  configManager.contentRootPath
2333
4477
  );
2334
- const filePath = import_path5.default.join(rootPath, tinaLockFilename);
4478
+ const filePath = import_path6.default.join(rootPath, tinaLockFilename);
2335
4479
  await import_fs_extra6.default.ensureFile(filePath);
2336
4480
  await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
2337
4481
  }
@@ -2478,7 +4622,7 @@ ${dangerText(e.message)}
2478
4622
  watchContentFiles(configManager, database, searchIndexer) {
2479
4623
  const collectionContentFiles = [];
2480
4624
  configManager.config.schema.collections.forEach((collection) => {
2481
- const collectionGlob = `${import_path5.default.join(
4625
+ const collectionGlob = `${import_path6.default.join(
2482
4626
  configManager.contentRootPath,
2483
4627
  collection.path
2484
4628
  )}/**/*.${collection.format || "md"}`;
@@ -2537,10 +4681,12 @@ DevCommand.usage = import_clipanion2.Command.Usage({
2537
4681
  var import_clipanion3 = require("clipanion");
2538
4682
  var import_progress2 = __toESM(require("progress"));
2539
4683
  var import_fs_extra7 = __toESM(require("fs-extra"));
4684
+ var import_crypto = __toESM(require("crypto"));
4685
+ var import_path7 = __toESM(require("path"));
2540
4686
  var import_graphql11 = require("@tinacms/graphql");
2541
4687
 
2542
4688
  // src/next/commands/build-command/server.ts
2543
- var import_vite5 = require("vite");
4689
+ var import_vite6 = require("vite");
2544
4690
  var buildProductionSpa = async (configManager, database, apiURL) => {
2545
4691
  const publicEnv = {};
2546
4692
  Object.keys(process.env).forEach((key) => {
@@ -2572,15 +4718,19 @@ var buildProductionSpa = async (configManager, database, apiURL) => {
2572
4718
  }
2573
4719
  warn(warning);
2574
4720
  }
4721
+ },
4722
+ viteConfigEnv: {
4723
+ command: "build",
4724
+ mode: "production"
2575
4725
  }
2576
4726
  });
2577
- return (0, import_vite5.build)(config2);
4727
+ return (0, import_vite6.build)(config2);
2578
4728
  };
2579
4729
 
2580
4730
  // src/next/commands/build-command/index.ts
2581
4731
  var import_schema_tools2 = require("@tinacms/schema-tools");
2582
4732
  var import_graphql12 = require("graphql");
2583
- var import_core2 = require("@graphql-inspector/core");
4733
+ var import_core3 = require("@graphql-inspector/core");
2584
4734
 
2585
4735
  // src/next/commands/build-command/waitForDB.ts
2586
4736
  var import_progress = __toESM(require("progress"));
@@ -2682,6 +4832,20 @@ var waitForDB = async (config2, apiUrl, previewName, verbose) => {
2682
4832
 
2683
4833
  // src/next/commands/build-command/index.ts
2684
4834
  var import_search2 = require("@tinacms/search");
4835
+
4836
+ // src/utils/index.ts
4837
+ var import_core2 = require("@graphql-inspector/core");
4838
+ var getFaqLink = (type) => {
4839
+ switch (type) {
4840
+ case import_core2.ChangeType.FieldRemoved: {
4841
+ return "https://tina.io/docs/introduction/faq#how-do-i-resolve-the-local-graphql-schema-doesnt-match-the-remote-graphql-schema-errors";
4842
+ }
4843
+ default:
4844
+ return null;
4845
+ }
4846
+ };
4847
+
4848
+ // src/next/commands/build-command/index.ts
2685
4849
  var BuildCommand = class extends BaseCommand {
2686
4850
  constructor() {
2687
4851
  super(...arguments);
@@ -2809,7 +4973,7 @@ ${dangerText(e.message)}
2809
4973
  }
2810
4974
  const skipCloudChecks = this.skipCloudChecks || configManager.hasSelfHostedConfig();
2811
4975
  if (!skipCloudChecks) {
2812
- const { hasUpstream } = await this.checkClientInfo(
4976
+ const { hasUpstream, timestamp } = await this.checkClientInfo(
2813
4977
  configManager,
2814
4978
  codegen2.productionUrl,
2815
4979
  this.previewBaseBranch
@@ -2837,7 +5001,16 @@ ${dangerText(e.message)}
2837
5001
  await this.checkGraphqlSchema(
2838
5002
  configManager,
2839
5003
  database,
2840
- codegen2.productionUrl
5004
+ codegen2.productionUrl,
5005
+ timestamp
5006
+ );
5007
+ await this.checkTinaSchema(
5008
+ configManager,
5009
+ database,
5010
+ codegen2.productionUrl,
5011
+ this.previewName,
5012
+ this.verbose,
5013
+ timestamp
2841
5014
  );
2842
5015
  }
2843
5016
  await buildProductionSpa(configManager, database, codegen2.productionUrl);
@@ -2956,11 +5129,13 @@ ${dangerText(e.message)}
2956
5129
  const bar2 = new import_progress2.default("Checking clientId and token. :prog", 1);
2957
5130
  let branchKnown = false;
2958
5131
  let hasUpstream = false;
5132
+ let timestamp;
2959
5133
  try {
2960
5134
  const res = await request({
2961
5135
  token,
2962
5136
  url
2963
5137
  });
5138
+ timestamp = res.timestamp || 0;
2964
5139
  bar2.tick({
2965
5140
  prog: "\u2705"
2966
5141
  });
@@ -3002,7 +5177,8 @@ ${dangerText(e.message)}
3002
5177
  prog: "\u2705"
3003
5178
  });
3004
5179
  return {
3005
- hasUpstream
5180
+ hasUpstream,
5181
+ timestamp
3006
5182
  };
3007
5183
  }
3008
5184
  for (let i = 0; i <= 5; i++) {
@@ -3092,14 +5268,14 @@ ${dangerText(e.message)}
3092
5268
  throw e;
3093
5269
  }
3094
5270
  }
3095
- async checkGraphqlSchema(configManager, database, apiURL) {
5271
+ async checkGraphqlSchema(configManager, database, apiURL, timestamp) {
3096
5272
  const bar2 = new import_progress2.default(
3097
5273
  "Checking local GraphQL Schema matches server. :prog",
3098
5274
  1
3099
5275
  );
3100
5276
  const { config: config2 } = configManager;
3101
5277
  const token = config2.token;
3102
- const remoteSchema = await fetchRemoteGraphqlSchema({
5278
+ const { remoteSchema, remoteProjectVersion } = await fetchRemoteGraphqlSchema({
3103
5279
  url: apiURL,
3104
5280
  token
3105
5281
  });
@@ -3119,7 +5295,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3119
5295
  const localSchemaDocument = await database.getGraphQLSchemaFromBridge();
3120
5296
  const localGraphqlSchema = (0, import_graphql12.buildASTSchema)(localSchemaDocument);
3121
5297
  try {
3122
- const diffResult = await (0, import_core2.diff)(localGraphqlSchema, remoteGqlSchema);
5298
+ const diffResult = await (0, import_core3.diff)(localGraphqlSchema, remoteGqlSchema);
3123
5299
  if (diffResult.length === 0) {
3124
5300
  bar2.tick({
3125
5301
  prog: "\u2705"
@@ -3128,12 +5304,30 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3128
5304
  bar2.tick({
3129
5305
  prog: "\u274C"
3130
5306
  });
3131
- 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.`;
3132
- if (config2 == null ? void 0 : config2.branch) {
3133
- errorMessage += `
5307
+ const type = diffResult[0].type;
5308
+ const reason = diffResult[0].message;
5309
+ const errorLevel = diffResult[0].criticality.level;
5310
+ const faqLink = getFaqLink(type);
5311
+ const tinaGraphQLVersion = configManager.getTinaGraphQLVersion();
5312
+ 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 && `
5313
+ Check out '${faqLink}' for possible solutions.`}`;
5314
+ errorMessage += `
3134
5315
 
3135
- Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5316
+ Additional info:
5317
+
5318
+ `;
5319
+ if (config2 == null ? void 0 : config2.branch) {
5320
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5321
+ `;
3136
5322
  }
5323
+ errorMessage += ` Local GraphQL version: ${tinaGraphQLVersion.fullVersion} / Remote GraphQL version: ${remoteProjectVersion}
5324
+ `;
5325
+ errorMessage += ` Last indexed at: ${new Date(
5326
+ timestamp
5327
+ ).toUTCString()}
5328
+ `;
5329
+ errorMessage += ` Reason: [${errorLevel} - ${type}] ${reason}
5330
+ `;
3137
5331
  throw new Error(errorMessage);
3138
5332
  }
3139
5333
  } catch (e) {
@@ -3148,6 +5342,71 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3148
5342
  }
3149
5343
  }
3150
5344
  }
5345
+ async checkTinaSchema(configManager, database, apiURL, previewName, verbose, timestamp) {
5346
+ const bar2 = new import_progress2.default(
5347
+ "Checking local Tina Schema matches server. :prog",
5348
+ 1
5349
+ );
5350
+ const { config: config2 } = configManager;
5351
+ const token = config2.token;
5352
+ const { clientId, branch, isLocalClient, host } = (0, import_schema_tools2.parseURL)(apiURL);
5353
+ if (isLocalClient || !host || !clientId || !branch) {
5354
+ if (verbose) {
5355
+ logger.info(logText("Not using Tina Cloud, skipping Tina Schema check"));
5356
+ }
5357
+ return;
5358
+ }
5359
+ const { tinaSchema: remoteTinaSchemaSha } = await fetchSchemaSha({
5360
+ url: `https://${host}/db/${clientId}/${previewName || branch}/schemaSha`,
5361
+ token
5362
+ });
5363
+ if (!remoteTinaSchemaSha) {
5364
+ bar2.tick({
5365
+ prog: "\u274C"
5366
+ });
5367
+ let errorMessage = `The remote Tina schema does not exist. Check indexing for this branch.`;
5368
+ if (config2 == null ? void 0 : config2.branch) {
5369
+ errorMessage += `
5370
+
5371
+ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5372
+ }
5373
+ throw new Error(errorMessage);
5374
+ }
5375
+ if (!database.bridge) {
5376
+ throw new Error(`No bridge configured`);
5377
+ }
5378
+ const localTinaSchema = JSON.parse(
5379
+ await database.bridge.get(
5380
+ import_path7.default.join(database.tinaDirectory, "__generated__", "_schema.json")
5381
+ )
5382
+ );
5383
+ localTinaSchema.version = void 0;
5384
+ const localTinaSchemaSha = import_crypto.default.createHash("sha256").update(JSON.stringify(localTinaSchema)).digest("hex");
5385
+ if (localTinaSchemaSha === remoteTinaSchemaSha) {
5386
+ bar2.tick({
5387
+ prog: "\u2705"
5388
+ });
5389
+ } else {
5390
+ bar2.tick({
5391
+ prog: "\u274C"
5392
+ });
5393
+ 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.`;
5394
+ errorMessage += `
5395
+
5396
+ Additional info:
5397
+
5398
+ `;
5399
+ if (config2 == null ? void 0 : config2.branch) {
5400
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5401
+ `;
5402
+ }
5403
+ errorMessage += ` Last indexed at: ${new Date(
5404
+ timestamp
5405
+ ).toUTCString()}
5406
+ `;
5407
+ throw new Error(errorMessage);
5408
+ }
5409
+ }
3151
5410
  };
3152
5411
  BuildCommand.paths = [["build"]];
3153
5412
  BuildCommand.usage = import_clipanion3.Command.Usage({
@@ -3214,7 +5473,26 @@ var fetchRemoteGraphqlSchema = async ({
3214
5473
  body
3215
5474
  });
3216
5475
  const data = await res.json();
3217
- return data == null ? void 0 : data.data;
5476
+ return {
5477
+ remoteSchema: data == null ? void 0 : data.data,
5478
+ remoteRuntimeVersion: res.headers.get("tinacms-grapqhl-version"),
5479
+ remoteProjectVersion: res.headers.get("tinacms-graphql-project-version")
5480
+ };
5481
+ };
5482
+ var fetchSchemaSha = async ({
5483
+ url,
5484
+ token
5485
+ }) => {
5486
+ const headers = new Headers();
5487
+ if (token) {
5488
+ headers.append("X-API-KEY", token);
5489
+ }
5490
+ const res = await fetch(url, {
5491
+ method: "GET",
5492
+ headers,
5493
+ cache: "no-cache"
5494
+ });
5495
+ return res.json();
3218
5496
  };
3219
5497
 
3220
5498
  // src/next/commands/audit-command/index.ts
@@ -3469,25 +5747,25 @@ var import_clipanion6 = require("clipanion");
3469
5747
 
3470
5748
  // src/cmds/init/detectEnvironment.ts
3471
5749
  var import_fs_extra8 = __toESM(require("fs-extra"));
3472
- var import_path6 = __toESM(require("path"));
5750
+ var import_path8 = __toESM(require("path"));
3473
5751
  var checkGitignoreForItem = async ({
3474
5752
  baseDir,
3475
5753
  line
3476
5754
  }) => {
3477
- const gitignoreContent = import_fs_extra8.default.readFileSync(import_path6.default.join(baseDir, ".gitignore")).toString();
5755
+ const gitignoreContent = import_fs_extra8.default.readFileSync(import_path8.default.join(baseDir, ".gitignore")).toString();
3478
5756
  return gitignoreContent.split("\n").some((item) => item === line);
3479
5757
  };
3480
5758
  var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3481
5759
  const result = {
3482
- fullPathTS: import_path6.default.join(
5760
+ fullPathTS: import_path8.default.join(
3483
5761
  parentPath,
3484
5762
  `${name2}.${(opts == null ? void 0 : opts.typescriptSuffix) || (opts == null ? void 0 : opts.extensionOverride) || "ts"}`
3485
5763
  ),
3486
- fullPathJS: import_path6.default.join(
5764
+ fullPathJS: import_path8.default.join(
3487
5765
  parentPath,
3488
5766
  `${name2}.${(opts == null ? void 0 : opts.extensionOverride) || "js"}`
3489
5767
  ),
3490
- fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path6.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
5768
+ fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path8.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
3491
5769
  generatedFileType,
3492
5770
  name: name2,
3493
5771
  parentPath,
@@ -3517,16 +5795,16 @@ var detectEnvironment = async ({
3517
5795
  }) => {
3518
5796
  var _a;
3519
5797
  const hasForestryConfig = await import_fs_extra8.default.pathExists(
3520
- import_path6.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5798
+ import_path8.default.join(pathToForestryConfig, ".forestry", "settings.yml")
3521
5799
  );
3522
- const sampleContentPath = import_path6.default.join(
5800
+ const sampleContentPath = import_path8.default.join(
3523
5801
  baseDir,
3524
5802
  "content",
3525
5803
  "posts",
3526
5804
  "hello-world.md"
3527
5805
  );
3528
- const usingSrc = import_fs_extra8.default.pathExistsSync(import_path6.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path6.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path6.default.join(baseDir, "src", "pages")));
3529
- const tinaFolder = import_path6.default.join(baseDir, "tina");
5806
+ const usingSrc = import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src", "pages")));
5807
+ const tinaFolder = import_path8.default.join(baseDir, "tina");
3530
5808
  const tinaConfigExists = Boolean(
3531
5809
  await import_fs_extra8.default.pathExists(tinaFolder) && (await import_fs_extra8.default.readdir(tinaFolder)).find((x) => x.includes("config"))
3532
5810
  );
@@ -3540,12 +5818,12 @@ var detectEnvironment = async ({
3540
5818
  "next-api-handler": await makeGeneratedFile(
3541
5819
  "[...routes]",
3542
5820
  "next-api-handler",
3543
- import_path6.default.join(...pagesDir, "api", "tina")
5821
+ import_path8.default.join(...pagesDir, "api", "tina")
3544
5822
  ),
3545
5823
  "reactive-example": await makeGeneratedFile(
3546
5824
  "[filename]",
3547
5825
  "reactive-example",
3548
- import_path6.default.join(...pagesDir, "demo", "blog"),
5826
+ import_path8.default.join(...pagesDir, "demo", "blog"),
3549
5827
  {
3550
5828
  typescriptSuffix: "tsx"
3551
5829
  }
@@ -3553,13 +5831,13 @@ var detectEnvironment = async ({
3553
5831
  "users-json": await makeGeneratedFile(
3554
5832
  "index",
3555
5833
  "users-json",
3556
- import_path6.default.join(baseDir, "content", "users"),
5834
+ import_path8.default.join(baseDir, "content", "users"),
3557
5835
  { extensionOverride: "json" }
3558
5836
  ),
3559
5837
  "sample-content": await makeGeneratedFile(
3560
5838
  "hello-world",
3561
5839
  "sample-content",
3562
- import_path6.default.join(baseDir, "content", "posts"),
5840
+ import_path8.default.join(baseDir, "content", "posts"),
3563
5841
  { extensionOverride: "md" }
3564
5842
  )
3565
5843
  };
@@ -3585,13 +5863,13 @@ var detectEnvironment = async ({
3585
5863
  );
3586
5864
  }
3587
5865
  }
3588
- const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path6.default.join(".gitignore"));
5866
+ const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path8.default.join(".gitignore"));
3589
5867
  const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
3590
5868
  const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
3591
5869
  const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
3592
5870
  let frontMatterFormat;
3593
5871
  if (hasForestryConfig) {
3594
- const hugoConfigPath = import_path6.default.join(rootPath, "config.toml");
5872
+ const hugoConfigPath = import_path8.default.join(rootPath, "config.toml");
3595
5873
  if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
3596
5874
  const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
3597
5875
  const metaDataFormat = (_a = hugoConfig.match(/metaDataFormat = "(.*)"/)) == null ? void 0 : _a[1];
@@ -4199,18 +6477,18 @@ var CLICommand = class {
4199
6477
  };
4200
6478
 
4201
6479
  // src/cmds/init/apply.ts
4202
- var import_path10 = __toESM(require("path"));
6480
+ var import_path12 = __toESM(require("path"));
4203
6481
 
4204
6482
  // src/cmds/forestry-migrate/index.ts
4205
6483
  var import_fs_extra10 = __toESM(require("fs-extra"));
4206
- var import_path8 = __toESM(require("path"));
6484
+ var import_path10 = __toESM(require("path"));
4207
6485
  var import_js_yaml2 = __toESM(require("js-yaml"));
4208
6486
  var import_minimatch = __toESM(require("minimatch"));
4209
6487
  var import_graphql16 = require("@tinacms/graphql");
4210
6488
 
4211
6489
  // src/cmds/forestry-migrate/util/index.ts
4212
6490
  var import_fs_extra9 = __toESM(require("fs-extra"));
4213
- var import_path7 = __toESM(require("path"));
6491
+ var import_path9 = __toESM(require("path"));
4214
6492
  var import_js_yaml = __toESM(require("js-yaml"));
4215
6493
  var import_zod = __toESM(require("zod"));
4216
6494
 
@@ -4621,7 +6899,7 @@ var transformForestryFieldsToTinaFields = ({
4621
6899
  return tinaFields;
4622
6900
  };
4623
6901
  var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
4624
- const templatePath = import_path7.default.join(
6902
+ const templatePath = import_path9.default.join(
4625
6903
  pathToForestryConfig,
4626
6904
  ".forestry",
4627
6905
  "front_matter",
@@ -4696,8 +6974,8 @@ var generateAllTemplates = async ({
4696
6974
  pathToForestryConfig
4697
6975
  }) => {
4698
6976
  const allTemplates = (await import_fs_extra10.default.readdir(
4699
- import_path8.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
4700
- )).map((tem) => import_path8.default.basename(tem, ".yml"));
6977
+ import_path10.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
6978
+ )).map((tem) => import_path10.default.basename(tem, ".yml"));
4701
6979
  const templateMap = /* @__PURE__ */ new Map();
4702
6980
  const proms = allTemplates.map(async (tem) => {
4703
6981
  try {
@@ -4839,9 +7117,9 @@ var generateCollectionFromForestrySection = (args) => {
4839
7117
  return c;
4840
7118
  } else if (section.type === "document") {
4841
7119
  const filePath = section.path;
4842
- const extname = import_path8.default.extname(filePath);
4843
- const fileName = import_path8.default.basename(filePath, extname);
4844
- const dir = import_path8.default.dirname(filePath);
7120
+ const extname = import_path10.default.extname(filePath);
7121
+ const fileName = import_path10.default.basename(filePath, extname);
7122
+ const dir = import_path10.default.dirname(filePath);
4845
7123
  const ext = checkExt(extname);
4846
7124
  if (ext) {
4847
7125
  const fields = [];
@@ -4904,7 +7182,7 @@ var generateCollections = async ({
4904
7182
  usingTypescript
4905
7183
  });
4906
7184
  const forestryConfig = await import_fs_extra10.default.readFile(
4907
- import_path8.default.join(pathToForestryConfig, ".forestry", "settings.yml")
7185
+ import_path10.default.join(pathToForestryConfig, ".forestry", "settings.yml")
4908
7186
  );
4909
7187
  rewriteTemplateKeysInDocs({
4910
7188
  templateMap,
@@ -4935,11 +7213,11 @@ var rewriteTemplateKeysInDocs = (args) => {
4935
7213
  const { templateObj } = templateMap.get(templateKey);
4936
7214
  (_a = templateObj == null ? void 0 : templateObj.pages) == null ? void 0 : _a.forEach((page) => {
4937
7215
  try {
4938
- const filePath = import_path8.default.join(page);
7216
+ const filePath = import_path10.default.join(page);
4939
7217
  if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
4940
7218
  return;
4941
7219
  }
4942
- const extname = import_path8.default.extname(filePath);
7220
+ const extname = import_path10.default.extname(filePath);
4943
7221
  const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
4944
7222
  const content = (0, import_graphql16.parseFile)(
4945
7223
  fileContent,
@@ -4971,7 +7249,7 @@ var import_fs_extra13 = __toESM(require("fs-extra"));
4971
7249
  // src/next/commands/codemod-command/index.ts
4972
7250
  var import_clipanion5 = require("clipanion");
4973
7251
  var import_fs_extra11 = __toESM(require("fs-extra"));
4974
- var import_path9 = __toESM(require("path"));
7252
+ var import_path11 = __toESM(require("path"));
4975
7253
  var CodemodCommand = class extends import_clipanion5.Command {
4976
7254
  constructor() {
4977
7255
  super(...arguments);
@@ -5015,7 +7293,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5015
7293
  logger.error(e.message);
5016
7294
  process.exit(1);
5017
7295
  }
5018
- const tinaDestination = import_path9.default.join(configManager.rootPath, "tina");
7296
+ const tinaDestination = import_path11.default.join(configManager.rootPath, "tina");
5019
7297
  if (await import_fs_extra11.default.existsSync(tinaDestination)) {
5020
7298
  logger.info(
5021
7299
  `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.`
@@ -5030,7 +7308,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5030
7308
  };
5031
7309
  var writeGitignore = async (rootPath) => {
5032
7310
  await import_fs_extra11.default.outputFileSync(
5033
- import_path9.default.join(rootPath, "tina", ".gitignore"),
7311
+ import_path11.default.join(rootPath, "tina", ".gitignore"),
5034
7312
  "__generated__"
5035
7313
  );
5036
7314
  };
@@ -5868,8 +8146,8 @@ async function apply({
5868
8146
  await addConfigFile({
5869
8147
  configArgs: {
5870
8148
  config: config2,
5871
- publicFolder: import_path10.default.join(
5872
- import_path10.default.relative(process.cwd(), pathToForestryConfig),
8149
+ publicFolder: import_path12.default.join(
8150
+ import_path12.default.relative(process.cwd(), pathToForestryConfig),
5873
8151
  config2.publicFolder
5874
8152
  ),
5875
8153
  collections,
@@ -5936,18 +8214,18 @@ var createPackageJSON = async () => {
5936
8214
  };
5937
8215
  var createGitignore = async ({ baseDir }) => {
5938
8216
  logger.info(logText("No .gitignore found, creating one"));
5939
- import_fs_extra13.default.outputFileSync(import_path10.default.join(baseDir, ".gitignore"), "node_modules");
8217
+ import_fs_extra13.default.outputFileSync(import_path12.default.join(baseDir, ".gitignore"), "node_modules");
5940
8218
  };
5941
8219
  var updateGitIgnore = async ({
5942
8220
  baseDir,
5943
8221
  items
5944
8222
  }) => {
5945
8223
  logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
5946
- const gitignoreContent = import_fs_extra13.default.readFileSync(import_path10.default.join(baseDir, ".gitignore")).toString();
8224
+ const gitignoreContent = import_fs_extra13.default.readFileSync(import_path12.default.join(baseDir, ".gitignore")).toString();
5947
8225
  const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
5948
8226
  "\n"
5949
8227
  );
5950
- await import_fs_extra13.default.writeFile(import_path10.default.join(baseDir, ".gitignore"), newGitignoreContent);
8228
+ await import_fs_extra13.default.writeFile(import_path12.default.join(baseDir, ".gitignore"), newGitignoreContent);
5951
8229
  };
5952
8230
  var addDependencies = async (config2, env, params) => {
5953
8231
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
@@ -6017,22 +8295,22 @@ var writeGeneratedFile = async ({
6017
8295
  content,
6018
8296
  typescript
6019
8297
  }) => {
6020
- const { exists, path: path13, parentPath } = generatedFile.resolve(typescript);
8298
+ const { exists, path: path15, parentPath } = generatedFile.resolve(typescript);
6021
8299
  if (exists) {
6022
8300
  if (overwrite) {
6023
- logger.info(`Overwriting file at ${path13}... \u2705`);
6024
- import_fs_extra13.default.outputFileSync(path13, content);
8301
+ logger.info(`Overwriting file at ${path15}... \u2705`);
8302
+ import_fs_extra13.default.outputFileSync(path15, content);
6025
8303
  } else {
6026
- logger.info(`Not overwriting file at ${path13}.`);
8304
+ logger.info(`Not overwriting file at ${path15}.`);
6027
8305
  logger.info(
6028
- logText(`Please add the following to ${path13}:
8306
+ logText(`Please add the following to ${path15}:
6029
8307
  ${indentText(content)}}`)
6030
8308
  );
6031
8309
  }
6032
8310
  } else {
6033
- logger.info(`Adding file at ${path13}... \u2705`);
8311
+ logger.info(`Adding file at ${path15}... \u2705`);
6034
8312
  await import_fs_extra13.default.ensureDir(parentPath);
6035
- import_fs_extra13.default.outputFileSync(path13, content);
8313
+ import_fs_extra13.default.outputFileSync(path15, content);
6036
8314
  }
6037
8315
  };
6038
8316
  var addConfigFile = async ({
@@ -6115,7 +8393,7 @@ var addContentFile = async ({
6115
8393
  return () => ({
6116
8394
  exists: env.sampleContentExists,
6117
8395
  path: env.sampleContentPath,
6118
- parentPath: import_path10.default.dirname(env.sampleContentPath)
8396
+ parentPath: import_path12.default.dirname(env.sampleContentPath)
6119
8397
  });
6120
8398
  }
6121
8399
  },
@@ -6138,7 +8416,7 @@ ${titleText(" TinaCMS ")} backend initialized!`));
6138
8416
  return `${x.key}=${x.value || "***"}`;
6139
8417
  }).join("\n") + `
6140
8418
  TINA_PUBLIC_IS_LOCAL=true`;
6141
- const envFile = import_path10.default.join(process.cwd(), ".env");
8419
+ const envFile = import_path12.default.join(process.cwd(), ".env");
6142
8420
  if (!import_fs_extra13.default.existsSync(envFile)) {
6143
8421
  logger.info(`Adding .env file to your project... \u2705`);
6144
8422
  import_fs_extra13.default.writeFileSync(envFile, envFileText);
@@ -6202,7 +8480,7 @@ var addReactiveFile = {
6202
8480
  dataLayer
6203
8481
  }) => {
6204
8482
  var _a, _b;
6205
- const packageJsonPath = import_path10.default.join(baseDir, "package.json");
8483
+ const packageJsonPath = import_path12.default.join(baseDir, "package.json");
6206
8484
  await writeGeneratedFile({
6207
8485
  generatedFile,
6208
8486
  typescript: config2.typescript,