@tinacms/cli 0.0.0-f03fd62-20241023052950 → 0.0.0-f5b2d65-20241216014706

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,678 +25,2166 @@ 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(path14) {
36
+ if (!fs15.existsSync(path14)) {
37
+ return false;
38
+ }
39
+ try {
40
+ var stats = fs15.statSync(path14);
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(path14, callback) {
55
+ fs15.readFile(path14, "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(path14) {
74
+ return path14.substring(0, path14.lastIndexOf(".")) || path14;
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.10";
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 path14 = 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 path14.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
- }
118
+ });
62
119
 
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" } }
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 path14 = 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;
132
+ }
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: path14.join(physicalPath, "/package.json")
147
+ });
148
+ var indexPath = path14.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
+ }
191
+ }
71
192
  });
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;
193
+
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 path14 = 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"];
115
207
  }
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);
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 = path14.join(path14.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
+ }
134
279
  }
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");
280
+ });
159
281
 
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;
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 path14 = 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 = path14.join(path14.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
+ }
177
396
  }
178
- isUsingTs() {
179
- return [".ts", ".tsx"].includes(import_path.default.extname(this.tinaConfigFilePath));
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]/;
180
405
  }
181
- hasSelfHostedConfig() {
182
- return !!this.selfHostedDatabaseFilePath;
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
+ };
183
429
  }
184
- hasSeparateContentRoot() {
185
- return this.rootPath !== this.contentRootPath;
186
- }
187
- shouldSkipSDK() {
188
- var _a;
189
- if (this.legacyNoSDK) {
190
- return this.legacyNoSDK;
191
- }
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
- );
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
+ }
207
517
  }
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);
290
- } else {
291
- await import_fs_extra.default.outputFile(this.generatedClientJSFilePath, file);
518
+ function peek() {
519
+ if (source[pos]) {
520
+ return String.fromCodePoint(source.codePointAt(pos));
292
521
  }
293
522
  }
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;
523
+ function read() {
524
+ const c2 = peek();
525
+ if (c2 === "\n") {
526
+ line++;
527
+ column = 0;
528
+ } else if (c2) {
529
+ column += c2.length;
320
530
  } 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
- );
531
+ column++;
328
532
  }
329
- }
330
- if (!this.contentRootPath) {
331
- this.contentRootPath = this.rootPath;
332
- }
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;
346
- }
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;
352
- }
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;
361
- }
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
- );
367
- }
368
- return `${generatedSchema.version.major}.${generatedSchema.version.minor}`;
369
- }
370
- printGeneratedClientFilePath() {
371
- if (this.isUsingTs()) {
372
- return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
373
- }
374
- return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
375
- }
376
- printGeneratedTypesFilePath() {
377
- return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
378
- }
379
- printoutputHTMLFilePath() {
380
- return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
381
- }
382
- printRelativePath(filename) {
383
- if (filename) {
384
- return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
385
- }
386
- throw `No path provided to print`;
387
- }
388
- printPrebuildFilePath() {
389
- return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
390
- }
391
- printContentRelativePath(filename) {
392
- if (filename) {
393
- return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
394
- }
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) {
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();
403
563
  return;
404
564
  }
405
- const filepathWithExtension = `${filepath}.${ext}`;
406
- const exists = import_fs_extra.default.existsSync(filepathWithExtension);
407
- if (exists) {
408
- result = filepathWithExtension;
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;
409
577
  }
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;
427
- }
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;
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());
452
992
  }
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;
993
+ };
994
+ function newToken(type, value) {
995
+ return {
996
+ type,
997
+ value,
998
+ line,
999
+ column
1000
+ };
479
1001
  }
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
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();
1009
+ }
1010
+ }
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();
1069
+ }
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));
1095
+ }
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
+ }
486
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
+ }
1218
+ }
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
+ }
1229
+ }
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;
1269
+ }
1270
+ function syntaxError(message) {
1271
+ const err = new SyntaxError(message);
1272
+ err.lineNumber = line;
1273
+ err.columnNumber = column;
1274
+ return err;
1275
+ }
487
1276
  }
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
- };
1277
+ });
514
1278
 
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>
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
+ };
1495
+ }
1496
+ });
565
1497
 
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}';
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;
579
1508
  }
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>`;
1509
+ });
590
1510
 
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");
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
+ };
1524
+ }
1525
+ });
610
1526
 
611
- // src/next/commands/dev-command/server/index.ts
612
- var import_vite3 = require("vite");
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 path14 = 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
+ };
1572
+ }
1573
+ function resolveConfigPath(cwd, filename) {
1574
+ if (filename) {
1575
+ var absolutePath = fs15.lstatSync(filename).isDirectory() ? path14.resolve(filename, "./tsconfig.json") : path14.resolve(cwd, filename);
1576
+ return absolutePath;
1577
+ }
1578
+ if (fs15.statSync(cwd).isFile()) {
1579
+ return path14.resolve(cwd);
1580
+ }
1581
+ var configAbsolutePath = walkForTsConfig(cwd);
1582
+ return configAbsolutePath ? path14.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 path14.join(directory, fileToCheck);
1594
+ }
1595
+ }
1596
+ var parentDirectory = path14.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);
1632
+ }
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 = path14.dirname(configFilePath);
1644
+ var extendedConfigPath = path14.join(currentDir, extendedConfigValue);
1645
+ if (extendedConfigValue.indexOf("/") !== -1 && extendedConfigValue.indexOf(".") !== -1 && !existsSync(extendedConfigPath)) {
1646
+ extendedConfigPath = path14.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 = path14.dirname(extendedConfigValue);
1651
+ config2.compilerOptions.baseUrl = path14.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
+ }
1660
+ }
1661
+ });
613
1662
 
614
- // src/next/vite/index.ts
615
- var import_node_path2 = __toESM(require("path"));
616
- 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"));
619
- var import_vite = require("vite");
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 path14 = require("path");
1671
+ function loadConfig2(cwd) {
1672
+ if (cwd === void 0) {
1673
+ cwd = process.cwd();
1674
+ }
1675
+ return configLoader({ cwd });
1676
+ }
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 = path14.isAbsolute(explicitParams.baseUrl) ? explicitParams.baseUrl : path14.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: path14.resolve(path14.dirname(loadResult.tsConfigPath), loadResult.baseUrl || ""),
1709
+ paths: loadResult.paths || {},
1710
+ addMatchAll: loadResult.baseUrl !== void 0
1711
+ };
1712
+ }
1713
+ exports.configLoader = configLoader;
1714
+ }
1715
+ });
620
1716
 
621
- // src/next/vite/tailwind.ts
622
- var import_node_path = __toESM(require("path"));
623
- var import_aspect_ratio = __toESM(require("@tailwindcss/aspect-ratio"));
624
- var import_container_queries = __toESM(require("@tailwindcss/container-queries"));
625
- var import_typography = __toESM(require("@tailwindcss/typography"));
626
- var import_tailwindcss = __toESM(require("tailwindcss"));
627
- var import_defaultTheme = __toESM(require("tailwindcss/defaultTheme.js"));
628
- var tinaTailwind = (spaPath, prebuildFilePath) => {
629
- return {
630
- name: "vite-plugin-tina",
631
- config: (viteConfig) => {
632
- const plugins = [];
633
- const content = [
634
- import_node_path.default.join(spaPath, "src/**/*.{vue,js,ts,jsx,tsx,svelte}"),
635
- prebuildFilePath,
636
- require.resolve("tinacms")
637
- ];
638
- const tw = (0, import_tailwindcss.default)({
639
- theme: {
640
- columns: {
641
- auto: "auto",
642
- 1: "1",
643
- 2: "2",
644
- 3: "3",
645
- 4: "4",
646
- 5: "5",
647
- 6: "6",
648
- 7: "7",
649
- 8: "8",
650
- 9: "9",
651
- 10: "10",
652
- 11: "11",
653
- 12: "12",
654
- "3xs": "256px",
655
- "2xs": "288px",
656
- xs: "320px",
657
- sm: "384px",
658
- md: "448px",
659
- lg: "512px",
660
- xl: "576px",
661
- "2xl": "672px",
662
- "3xl": "768px",
663
- "4xl": "896px",
664
- "5xl": "1024px",
665
- "6xl": "1152px",
666
- "7xl": "1280px"
667
- },
668
- spacing: {
669
- px: "1px",
670
- 0: "0px",
671
- 0.5: "2px",
672
- 1: "4px",
673
- 1.5: "6px",
674
- 2: "8px",
675
- 2.5: "10px",
676
- 3: "12px",
677
- 3.5: "14px",
678
- 4: "16px",
679
- 5: "20px",
680
- 6: "24px",
681
- 7: "28px",
682
- 8: "32px",
683
- 9: "36px",
684
- 10: "40px",
685
- 11: "44px",
686
- 12: "48px",
687
- 14: "56px",
688
- 16: "64px",
689
- 18: "72px",
690
- 20: "80px",
691
- 24: "96px",
692
- 28: "114px",
693
- 32: "128px",
694
- 36: "144px",
695
- 40: "160px",
696
- 44: "176px",
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
+ });
1938
+
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;
2044
+ }
2045
+ });
2046
+
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
+ });
2077
+
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_path5 = __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_path = __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"));
2104
+
2105
+ // src/next/vite/index.ts
2106
+ var import_node_path2 = __toESM(require("path"));
2107
+ var import_plugin_react = __toESM(require("@vitejs/plugin-react"));
2108
+ var import_fs_extra = __toESM(require("fs-extra"));
2109
+ var import_normalize_path = __toESM(require("normalize-path"));
2110
+ var import_vite = require("vite");
2111
+
2112
+ // src/next/vite/tailwind.ts
2113
+ var import_node_path = __toESM(require("path"));
2114
+ var import_aspect_ratio = __toESM(require("@tailwindcss/aspect-ratio"));
2115
+ var import_container_queries = __toESM(require("@tailwindcss/container-queries"));
2116
+ var import_typography = __toESM(require("@tailwindcss/typography"));
2117
+ var import_tailwindcss = __toESM(require("tailwindcss"));
2118
+ var import_defaultTheme = __toESM(require("tailwindcss/defaultTheme.js"));
2119
+ var tinaTailwind = (spaPath, prebuildFilePath) => {
2120
+ return {
2121
+ name: "vite-plugin-tina",
2122
+ config: (viteConfig) => {
2123
+ const plugins = [];
2124
+ const content = [
2125
+ import_node_path.default.join(spaPath, "src/**/*.{vue,js,ts,jsx,tsx,svelte}"),
2126
+ prebuildFilePath,
2127
+ require.resolve("tinacms")
2128
+ ];
2129
+ const tw = (0, import_tailwindcss.default)({
2130
+ theme: {
2131
+ columns: {
2132
+ auto: "auto",
2133
+ 1: "1",
2134
+ 2: "2",
2135
+ 3: "3",
2136
+ 4: "4",
2137
+ 5: "5",
2138
+ 6: "6",
2139
+ 7: "7",
2140
+ 8: "8",
2141
+ 9: "9",
2142
+ 10: "10",
2143
+ 11: "11",
2144
+ 12: "12",
2145
+ "3xs": "256px",
2146
+ "2xs": "288px",
2147
+ xs: "320px",
2148
+ sm: "384px",
2149
+ md: "448px",
2150
+ lg: "512px",
2151
+ xl: "576px",
2152
+ "2xl": "672px",
2153
+ "3xl": "768px",
2154
+ "4xl": "896px",
2155
+ "5xl": "1024px",
2156
+ "6xl": "1152px",
2157
+ "7xl": "1280px"
2158
+ },
2159
+ spacing: {
2160
+ px: "1px",
2161
+ 0: "0px",
2162
+ 0.5: "2px",
2163
+ 1: "4px",
2164
+ 1.5: "6px",
2165
+ 2: "8px",
2166
+ 2.5: "10px",
2167
+ 3: "12px",
2168
+ 3.5: "14px",
2169
+ 4: "16px",
2170
+ 5: "20px",
2171
+ 6: "24px",
2172
+ 7: "28px",
2173
+ 8: "32px",
2174
+ 9: "36px",
2175
+ 10: "40px",
2176
+ 11: "44px",
2177
+ 12: "48px",
2178
+ 14: "56px",
2179
+ 16: "64px",
2180
+ 18: "72px",
2181
+ 20: "80px",
2182
+ 24: "96px",
2183
+ 28: "114px",
2184
+ 32: "128px",
2185
+ 36: "144px",
2186
+ 40: "160px",
2187
+ 44: "176px",
697
2188
  48: "192px",
698
2189
  52: "208px",
699
2190
  56: "224px",
@@ -876,188 +2367,834 @@ 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/next/config-manager.ts
2686
+ var TINA_FOLDER = "tina";
2687
+ var LEGACY_TINA_FOLDER = ".tina";
2688
+ var GENERATED_FOLDER = "__generated__";
2689
+ var GRAPHQL_JSON_FILE = "_graphql.json";
2690
+ var GRAPHQL_GQL_FILE = "schema.gql";
2691
+ var SCHEMA_JSON_FILE = "_schema.json";
2692
+ var LOOKUP_JSON_FILE = "_lookup.json";
2693
+ var ConfigManager = class {
2694
+ constructor({
2695
+ rootPath = process.cwd(),
2696
+ tinaGraphQLVersion,
2697
+ legacyNoSDK
2698
+ }) {
2699
+ this.rootPath = (0, import_normalize_path2.default)(rootPath);
2700
+ this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
2701
+ this.legacyNoSDK = legacyNoSDK;
2702
+ }
2703
+ isUsingTs() {
2704
+ return [".ts", ".tsx"].includes(import_path.default.extname(this.tinaConfigFilePath));
2705
+ }
2706
+ hasSelfHostedConfig() {
2707
+ return !!this.selfHostedDatabaseFilePath;
2708
+ }
2709
+ hasSeparateContentRoot() {
2710
+ return this.rootPath !== this.contentRootPath;
2711
+ }
2712
+ shouldSkipSDK() {
2713
+ var _a;
2714
+ if (this.legacyNoSDK) {
2715
+ return this.legacyNoSDK;
2716
+ }
2717
+ return ((_a = this.config.client) == null ? void 0 : _a.skip) || false;
2718
+ }
2719
+ async processConfig() {
2720
+ this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
2721
+ this.envFilePath = import_path.default.resolve(
2722
+ import_path.default.join(this.tinaFolderPath, "..", ".env")
2723
+ );
2724
+ dotenv.config({ path: this.envFilePath });
2725
+ this.tinaConfigFilePath = await this.getPathWithExtension(
2726
+ import_path.default.join(this.tinaFolderPath, "config")
2727
+ );
2728
+ if (!this.tinaConfigFilePath) {
2729
+ throw new Error(
2730
+ `Unable to find config file in ${this.tinaFolderPath}. Looking for a file named "config.{ts,tsx,js,jsx}"`
2731
+ );
2732
+ }
2733
+ this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
2734
+ import_path.default.join(this.tinaFolderPath, "database")
2735
+ );
2736
+ this.generatedFolderPath = import_path.default.join(this.tinaFolderPath, GENERATED_FOLDER);
2737
+ this.generatedCachePath = import_path.default.join(
2738
+ this.generatedFolderPath,
2739
+ ".cache",
2740
+ String(new Date().getTime())
2741
+ );
2742
+ this.generatedGraphQLGQLPath = import_path.default.join(
2743
+ this.generatedFolderPath,
2744
+ GRAPHQL_GQL_FILE
2745
+ );
2746
+ this.generatedGraphQLJSONPath = import_path.default.join(
2747
+ this.generatedFolderPath,
2748
+ GRAPHQL_JSON_FILE
2749
+ );
2750
+ this.generatedSchemaJSONPath = import_path.default.join(
2751
+ this.generatedFolderPath,
2752
+ SCHEMA_JSON_FILE
2753
+ );
2754
+ this.generatedLookupJSONPath = import_path.default.join(
2755
+ this.generatedFolderPath,
2756
+ LOOKUP_JSON_FILE
2757
+ );
2758
+ this.generatedQueriesFilePath = import_path.default.join(
2759
+ this.generatedFolderPath,
2760
+ "queries.gql"
2761
+ );
2762
+ this.generatedFragmentsFilePath = import_path.default.join(
2763
+ this.generatedFolderPath,
2764
+ "frags.gql"
2765
+ );
2766
+ this.generatedTypesTSFilePath = import_path.default.join(
2767
+ this.generatedFolderPath,
2768
+ "types.ts"
2769
+ );
2770
+ this.generatedTypesJSFilePath = import_path.default.join(
2771
+ this.generatedFolderPath,
2772
+ "types.js"
2773
+ );
2774
+ this.generatedTypesDFilePath = import_path.default.join(
2775
+ this.generatedFolderPath,
2776
+ "types.d.ts"
2777
+ );
2778
+ this.userQueriesAndFragmentsGlob = import_path.default.join(
2779
+ this.tinaFolderPath,
2780
+ "queries/**/*.{graphql,gql}"
2781
+ );
2782
+ this.generatedQueriesAndFragmentsGlob = import_path.default.join(
2783
+ this.generatedFolderPath,
2784
+ "*.{graphql,gql}"
2785
+ );
2786
+ this.generatedClientTSFilePath = import_path.default.join(
2787
+ this.generatedFolderPath,
2788
+ "client.ts"
2789
+ );
2790
+ this.generatedClientJSFilePath = import_path.default.join(
2791
+ this.generatedFolderPath,
2792
+ "client.js"
2793
+ );
2794
+ this.generatedClientDFilePath = import_path.default.join(
2795
+ this.generatedFolderPath,
2796
+ "client.d.ts"
2797
+ );
2798
+ this.generatedDatabaseClientDFilePath = import_path.default.join(
2799
+ this.generatedFolderPath,
2800
+ "databaseClient.d.ts"
2801
+ );
2802
+ this.generatedDatabaseClientTSFilePath = import_path.default.join(
2803
+ this.generatedFolderPath,
2804
+ "databaseClient.ts"
2805
+ );
2806
+ this.generatedDatabaseClientJSFilePath = import_path.default.join(
2807
+ this.generatedFolderPath,
2808
+ "databaseClient.js"
2809
+ );
2810
+ const clientExists = this.isUsingTs() ? await import_fs_extra2.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra2.default.pathExists(this.generatedClientJSFilePath);
2811
+ if (!clientExists) {
2812
+ const file = "export default ()=>({})\nexport const client = ()=>({})";
2813
+ if (this.isUsingTs()) {
2814
+ await import_fs_extra2.default.outputFile(this.generatedClientTSFilePath, file);
2815
+ } else {
2816
+ await import_fs_extra2.default.outputFile(this.generatedClientJSFilePath, file);
2817
+ }
2818
+ }
2819
+ const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
2820
+ this.generatedFolderPath,
2821
+ this.tinaConfigFilePath
2822
+ );
2823
+ this.watchList = watchList;
2824
+ this.config = config2;
2825
+ this.prebuildFilePath = prebuildPath;
2826
+ this.publicFolderPath = import_path.default.join(
2827
+ this.rootPath,
2828
+ this.config.build.publicFolder
2829
+ );
2830
+ this.outputFolderPath = import_path.default.join(
2831
+ this.publicFolderPath,
2832
+ this.config.build.outputFolder
2833
+ );
2834
+ this.outputHTMLFilePath = import_path.default.join(this.outputFolderPath, "index.html");
2835
+ this.outputGitignorePath = import_path.default.join(this.outputFolderPath, ".gitignore");
2836
+ const fullLocalContentPath = import_path.default.join(
2837
+ this.tinaFolderPath,
2838
+ this.config.localContentPath || ""
2839
+ );
2840
+ if (this.config.localContentPath) {
2841
+ const localContentPathExists = await import_fs_extra2.default.pathExists(fullLocalContentPath);
2842
+ if (localContentPathExists) {
2843
+ logger.info(`Using separate content repo at ${fullLocalContentPath}`);
2844
+ this.contentRootPath = fullLocalContentPath;
2845
+ } else {
2846
+ logger.warn(
2847
+ `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
2848
+ fullLocalContentPath
2849
+ )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
2850
+ this.tinaConfigFilePath
2851
+ )}`
2852
+ );
2853
+ }
2854
+ }
2855
+ if (!this.contentRootPath) {
2856
+ this.contentRootPath = this.rootPath;
2857
+ }
2858
+ this.generatedFolderPathContentRepo = import_path.default.join(
2859
+ await this.getTinaFolderPath(this.contentRootPath),
2860
+ GENERATED_FOLDER
2861
+ );
2862
+ this.spaMainPath = require.resolve("@tinacms/app");
2863
+ this.spaRootPath = import_path.default.join(this.spaMainPath, "..", "..");
2864
+ }
2865
+ async getTinaFolderPath(rootPath) {
2866
+ const tinaFolderPath = import_path.default.join(rootPath, TINA_FOLDER);
2867
+ const tinaFolderExists = await import_fs_extra2.default.pathExists(tinaFolderPath);
2868
+ if (tinaFolderExists) {
2869
+ this.isUsingLegacyFolder = false;
2870
+ return tinaFolderPath;
2871
+ }
2872
+ const legacyFolderPath = import_path.default.join(rootPath, LEGACY_TINA_FOLDER);
2873
+ const legacyFolderExists = await import_fs_extra2.default.pathExists(legacyFolderPath);
2874
+ if (legacyFolderExists) {
2875
+ this.isUsingLegacyFolder = true;
2876
+ return legacyFolderPath;
2877
+ }
2878
+ throw new Error(
2879
+ `Unable to find Tina folder, if you're working in folder outside of the Tina config be sure to specify --rootPath`
2880
+ );
2881
+ }
2882
+ getTinaGraphQLVersion() {
2883
+ if (this.tinaGraphQLVersionFromCLI) {
2884
+ const version2 = this.tinaGraphQLVersionFromCLI.split(".");
2885
+ return {
2886
+ fullVersion: this.tinaGraphQLVersionFromCLI,
2887
+ major: version2[0] || "x",
2888
+ minor: version2[1] || "x",
2889
+ patch: version2[2] || "x"
884
2890
  };
885
2891
  }
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": [] };
2892
+ const generatedSchema = import_fs_extra2.default.readJSONSync(this.generatedSchemaJSONPath);
2893
+ if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined")) {
2894
+ throw new Error(
2895
+ `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
2896
+ );
2897
+ }
2898
+ return generatedSchema.version;
903
2899
  }
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
- });
2900
+ printGeneratedClientFilePath() {
2901
+ if (this.isUsingTs()) {
2902
+ return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
927
2903
  }
928
- staticMediaItems.push(staticMediaItem);
2904
+ return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
929
2905
  }
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);
2906
+ printGeneratedTypesFilePath() {
2907
+ return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
2908
+ }
2909
+ printoutputHTMLFilePath() {
2910
+ return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
2911
+ }
2912
+ printRelativePath(filename) {
2913
+ if (filename) {
2914
+ return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
935
2915
  }
936
- return result;
2916
+ throw `No path provided to print`;
937
2917
  }
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]);
2918
+ printPrebuildFilePath() {
2919
+ return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
2920
+ }
2921
+ printContentRelativePath(filename) {
2922
+ if (filename) {
2923
+ return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
2924
+ }
2925
+ throw `No path provided to print`;
2926
+ }
2927
+ async getPathWithExtension(filepath) {
2928
+ const extensions = ["tsx", "ts", "jsx", "js"];
2929
+ let result;
2930
+ await Promise.all(
2931
+ extensions.map(async (ext) => {
2932
+ if (result) {
2933
+ return;
957
2934
  }
958
- } catch (error) {
959
- console.warn(
960
- `Could not stringify public env process.env.${key} env variable`
2935
+ const filepathWithExtension = `${filepath}.${ext}`;
2936
+ const exists = import_fs_extra2.default.existsSync(filepathWithExtension);
2937
+ if (exists) {
2938
+ result = filepathWithExtension;
2939
+ }
2940
+ })
2941
+ );
2942
+ return result;
2943
+ }
2944
+ async loadDatabaseFile() {
2945
+ const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
2946
+ const outfile = import_path.default.join(tmpdir, "database.build.js");
2947
+ await esbuild.build({
2948
+ entryPoints: [this.selfHostedDatabaseFilePath],
2949
+ bundle: true,
2950
+ platform: "node",
2951
+ outfile,
2952
+ loader: loaders
2953
+ });
2954
+ const result = require(outfile);
2955
+ import_fs_extra2.default.removeSync(outfile);
2956
+ return result.default;
2957
+ }
2958
+ async loadConfigFile(generatedFolderPath, configFilePath) {
2959
+ var _a;
2960
+ console.log("Here is the configFilePath");
2961
+ console.dir({ generatedFolderPath, configFilePath }, { depth: Infinity });
2962
+ const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
2963
+ const preBuildConfigPath = import_path.default.join(
2964
+ this.generatedFolderPath,
2965
+ "config.prebuild.jsx"
2966
+ );
2967
+ const outfile = import_path.default.join(tmpdir, "config.build.jsx");
2968
+ const outfile2 = import_path.default.join(tmpdir, "config.build.js");
2969
+ const tempTSConfigFile = import_path.default.join(tmpdir, "tsconfig.json");
2970
+ const viteConfig = await loadProjectConfig({
2971
+ rootPath: this.rootPath,
2972
+ viteConfigEnv: {
2973
+ command: "build",
2974
+ mode: "production"
2975
+ }
2976
+ });
2977
+ const tsconfigPath = import_path.default.join(this.rootPath, "tsconfig.json");
2978
+ let dynamicAliases = {};
2979
+ if (import_fs_extra2.default.existsSync(tsconfigPath)) {
2980
+ console.log("Found tsconfig.json at:", tsconfigPath);
2981
+ const tsConfigResult = (0, import_tsconfig_paths.loadConfig)(tsconfigPath);
2982
+ if (tsConfigResult.resultType === "success") {
2983
+ const { absoluteBaseUrl, paths } = tsConfigResult;
2984
+ console.log("Loaded tsconfig:", { absoluteBaseUrl, paths });
2985
+ dynamicAliases = Object.entries(paths).reduce(
2986
+ (aliases, [aliasKey, aliasPaths]) => {
2987
+ const hasWildcard = aliasKey.includes("*");
2988
+ const baseAliasKey = hasWildcard ? aliasKey.replace("/*", "") : aliasKey;
2989
+ const baseAliasPath = import_path.default.resolve(
2990
+ absoluteBaseUrl,
2991
+ aliasPaths[0].replace("/*", "")
2992
+ );
2993
+ if (hasWildcard) {
2994
+ aliases[`${baseAliasKey}/*`] = `${baseAliasPath}`;
2995
+ } else {
2996
+ aliases[baseAliasKey] = baseAliasPath;
2997
+ }
2998
+ return aliases;
2999
+ },
3000
+ {}
961
3001
  );
962
- console.warn(error);
3002
+ console.log("Resolved dynamicAliases:", dynamicAliases);
3003
+ } else {
3004
+ console.error("Failed to load tsconfig.json:", tsConfigResult.message);
3005
+ throw new Error(`Invalid tsconfig.json at ${tsconfigPath}`);
963
3006
  }
3007
+ } else {
3008
+ console.warn(
3009
+ "Warning: tsconfig.json not found. Alias resolution will not be supported."
3010
+ );
964
3011
  }
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
3012
+ import_fs_extra2.default.outputFileSync(tempTSConfigFile, "{}");
3013
+ const result2 = await esbuild.build({
3014
+ entryPoints: [configFilePath],
3015
+ bundle: true,
3016
+ target: ["es2020"],
3017
+ platform: "browser",
3018
+ format: "esm",
3019
+ logLevel: "silent",
3020
+ packages: "external",
3021
+ ignoreAnnotations: true,
3022
+ outfile: preBuildConfigPath,
3023
+ loader: loaders,
3024
+ metafile: true,
3025
+ plugins: Object.keys(dynamicAliases).length ? [(0, import_esbuild_plugin_alias_path.aliasPath)({ alias: dynamicAliases })] : []
975
3026
  });
976
- await import_fs_extra2.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
977
- } else {
978
- await import_fs_extra2.default.outputFile(staticMediaPath, `[]`);
979
- }
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"
994
- );
995
- } else {
996
- alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
3027
+ const flattenedList = [];
3028
+ Object.keys(result2.metafile.inputs).forEach((key) => {
3029
+ if (key.includes("node_modules") || key.includes("__generated__")) {
3030
+ return;
3031
+ }
3032
+ flattenedList.push(key);
3033
+ });
3034
+ await esbuild.build({
3035
+ entryPoints: [configFilePath],
3036
+ bundle: true,
3037
+ target: ["es2020"],
3038
+ logLevel: "silent",
3039
+ platform: "node",
3040
+ outfile,
3041
+ loader: loaders,
3042
+ alias: (_a = viteConfig.config.resolve) == null ? void 0 : _a.alias
3043
+ });
3044
+ await esbuild.build({
3045
+ entryPoints: [outfile],
3046
+ bundle: true,
3047
+ logLevel: "silent",
3048
+ platform: "node",
3049
+ outfile: outfile2,
3050
+ loader: loaders
3051
+ });
3052
+ let result;
3053
+ try {
3054
+ result = require(outfile2);
3055
+ } catch (e) {
3056
+ console.error("Unexpected error loading config");
3057
+ console.error(e);
3058
+ throw e;
3059
+ }
3060
+ import_fs_extra2.default.removeSync(outfile);
3061
+ import_fs_extra2.default.removeSync(outfile2);
3062
+ return {
3063
+ config: result.default,
3064
+ prebuildPath: preBuildConfigPath,
3065
+ watchList: flattenedList
3066
+ };
997
3067
  }
998
- let basePath;
999
- if (configManager.config.build.basePath) {
1000
- basePath = configManager.config.build.basePath;
3068
+ };
3069
+ var loaders = {
3070
+ ".aac": "file",
3071
+ ".css": "file",
3072
+ ".eot": "file",
3073
+ ".flac": "file",
3074
+ ".gif": "file",
3075
+ ".jpeg": "file",
3076
+ ".jpg": "file",
3077
+ ".json": "json",
3078
+ ".mp3": "file",
3079
+ ".mp4": "file",
3080
+ ".ogg": "file",
3081
+ ".otf": "file",
3082
+ ".png": "file",
3083
+ ".svg": "file",
3084
+ ".ttf": "file",
3085
+ ".wav": "file",
3086
+ ".webm": "file",
3087
+ ".webp": "file",
3088
+ ".woff": "file",
3089
+ ".woff2": "file",
3090
+ ".js": "jsx",
3091
+ ".jsx": "jsx",
3092
+ ".tsx": "tsx"
3093
+ };
3094
+
3095
+ // src/next/commands/dev-command/html.ts
3096
+ var errorHTML = `<style type="text/css">
3097
+ #no-assets-placeholder body {
3098
+ font-family: sans-serif;
3099
+ font-size: 16px;
3100
+ line-height: 1.4;
3101
+ color: #333;
3102
+ background-color: #f5f5f5;
3103
+ }
3104
+ #no-assets-placeholder {
3105
+ max-width: 600px;
3106
+ margin: 0 auto;
3107
+ padding: 40px;
3108
+ text-align: center;
3109
+ background-color: #fff;
3110
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
3111
+ }
3112
+ #no-assets-placeholder h1 {
3113
+ font-size: 24px;
3114
+ margin-bottom: 20px;
3115
+ }
3116
+ #no-assets-placeholder p {
3117
+ margin-bottom: 10px;
3118
+ }
3119
+ #no-assets-placeholder a {
3120
+ color: #0077cc;
3121
+ text-decoration: none;
3122
+ }
3123
+ #no-assets-placeholder a:hover {
3124
+ text-decoration: underline;
3125
+ }
3126
+ </style>
3127
+ <div id="no-assets-placeholder">
3128
+ <h1>Failed loading TinaCMS assets</h1>
3129
+ <p>
3130
+ Your TinaCMS configuration may be misconfigured, and we could not load
3131
+ the assets for this page.
3132
+ </p>
3133
+ <p>
3134
+ 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.
3135
+ </p>
3136
+ </div>
3137
+ </div>`.trim().replace(/[\r\n\s]+/g, " ");
3138
+ var devHTML = (port) => `<!DOCTYPE html>
3139
+ <html lang="en">
3140
+ <head>
3141
+ <meta charset="UTF-8" />
3142
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3143
+ <title>TinaCMS</title>
3144
+ </head>
3145
+
3146
+ <!-- if development -->
3147
+ <script type="module">
3148
+ import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
3149
+ RefreshRuntime.injectIntoGlobalHook(window)
3150
+ window.$RefreshReg$ = () => {}
3151
+ window.$RefreshSig$ = () => (type) => type
3152
+ window.__vite_plugin_react_preamble_installed__ = true
3153
+ <\/script>
3154
+ <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
3155
+ <script>
3156
+ function handleLoadError() {
3157
+ // Assets have failed to load
3158
+ document.getElementById('root').innerHTML = '${errorHTML}';
1001
3159
  }
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;
3160
+ <\/script>
3161
+ <script
3162
+ type="module"
3163
+ src="http://localhost:${port}/src/main.tsx"
3164
+ onerror="handleLoadError()"
3165
+ ><\/script>
3166
+ <body class="tina-tailwind">
3167
+ <div id="root"></div>
3168
+ </body>
3169
+ </html>`;
3170
+
3171
+ // src/utils/theme.ts
3172
+ var import_chalk3 = __toESM(require("chalk"));
3173
+ var successText = import_chalk3.default.bold.green;
3174
+ var focusText = import_chalk3.default.bold;
3175
+ var dangerText = import_chalk3.default.bold.red;
3176
+ var neutralText = import_chalk3.default.bold.cyan;
3177
+ var linkText = import_chalk3.default.bold.cyan;
3178
+ var labelText = import_chalk3.default.bold;
3179
+ var cmdText = import_chalk3.default.inverse;
3180
+ var indentedCmd = (str) => {
3181
+ return ` \u2503 ` + str;
1055
3182
  };
3183
+ var indentText = (str) => {
3184
+ return String(str).split("\n").map((line) => ` ${line}`).join("\n");
3185
+ };
3186
+ var logText = import_chalk3.default.italic.gray;
3187
+ var warnText = import_chalk3.default.yellowBright.bgBlack;
3188
+ var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
3189
+ var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
3190
+
3191
+ // src/next/commands/dev-command/server/index.ts
3192
+ var import_vite4 = require("vite");
1056
3193
 
1057
3194
  // src/next/vite/plugins.ts
1058
3195
  var import_pluginutils = require("@rollup/pluginutils");
1059
3196
  var import_fs = __toESM(require("fs"));
1060
- var import_vite2 = require("vite");
3197
+ var import_vite3 = require("vite");
1061
3198
  var import_esbuild = require("esbuild");
1062
3199
  var import_path3 = __toESM(require("path"));
1063
3200
  var import_body_parser = __toESM(require("body-parser"));
@@ -1380,7 +3517,7 @@ function viteTransformExtension({
1380
3517
  previousExport: exportAsDefault ? null : code
1381
3518
  }
1382
3519
  });
1383
- const res = await (0, import_vite2.transformWithEsbuild)(componentCode, id, {
3520
+ const res = await (0, import_vite3.transformWithEsbuild)(componentCode, id, {
1384
3521
  loader: "jsx",
1385
3522
  ...esbuildOptions
1386
3523
  });
@@ -1400,7 +3537,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1400
3537
  devServerEndPointsPlugin({ apiURL, configManager, database, searchIndex }),
1401
3538
  viteTransformExtension()
1402
3539
  ];
1403
- return (0, import_vite3.createServer)(
3540
+ return (0, import_vite4.createServer)(
1404
3541
  await createConfig({
1405
3542
  configManager,
1406
3543
  database,
@@ -1415,6 +3552,10 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
1415
3552
  }
1416
3553
  warn(warning);
1417
3554
  }
3555
+ },
3556
+ viteConfigEnv: {
3557
+ command: "serve",
3558
+ mode: "development"
1418
3559
  }
1419
3560
  })
1420
3561
  );
@@ -1788,7 +3929,8 @@ var Codegen = class {
1788
3929
  const branch = (_a = this.configManager.config) == null ? void 0 : _a.branch;
1789
3930
  const clientId = (_b = this.configManager.config) == null ? void 0 : _b.clientId;
1790
3931
  const token = (_c = this.configManager.config) == null ? void 0 : _c.token;
1791
- const version2 = this.configManager.getTinaGraphQLVersion();
3932
+ const fullVersion = this.configManager.getTinaGraphQLVersion();
3933
+ const version2 = `${fullVersion.major}.${fullVersion.minor}`;
1792
3934
  const baseUrl = ((_d = this.configManager.config.tinaioConfig) == null ? void 0 : _d.contentApiUrlOverride) || `https://${TINA_HOST}`;
1793
3935
  if ((!branch || !clientId || !token) && !this.port && !this.configManager.config.contentApiUrlOverride) {
1794
3936
  const missing = [];
@@ -2209,7 +4351,7 @@ var BaseCommand = class extends import_clipanion.Command {
2209
4351
  pathFilter
2210
4352
  });
2211
4353
  const tinaPathUpdates = modified.filter(
2212
- (path13) => path13.startsWith(".tina/__generated__/_schema.json") || path13.startsWith("tina/tina-lock.json")
4354
+ (path14) => path14.startsWith(".tina/__generated__/_schema.json") || path14.startsWith("tina/tina-lock.json")
2213
4355
  );
2214
4356
  if (tinaPathUpdates.length > 0) {
2215
4357
  res = await database.indexContent({
@@ -2537,10 +4679,12 @@ DevCommand.usage = import_clipanion2.Command.Usage({
2537
4679
  var import_clipanion3 = require("clipanion");
2538
4680
  var import_progress2 = __toESM(require("progress"));
2539
4681
  var import_fs_extra7 = __toESM(require("fs-extra"));
4682
+ var import_crypto = __toESM(require("crypto"));
4683
+ var import_path6 = __toESM(require("path"));
2540
4684
  var import_graphql11 = require("@tinacms/graphql");
2541
4685
 
2542
4686
  // src/next/commands/build-command/server.ts
2543
- var import_vite5 = require("vite");
4687
+ var import_vite6 = require("vite");
2544
4688
  var buildProductionSpa = async (configManager, database, apiURL) => {
2545
4689
  const publicEnv = {};
2546
4690
  Object.keys(process.env).forEach((key) => {
@@ -2572,15 +4716,19 @@ var buildProductionSpa = async (configManager, database, apiURL) => {
2572
4716
  }
2573
4717
  warn(warning);
2574
4718
  }
4719
+ },
4720
+ viteConfigEnv: {
4721
+ command: "build",
4722
+ mode: "production"
2575
4723
  }
2576
4724
  });
2577
- return (0, import_vite5.build)(config2);
4725
+ return (0, import_vite6.build)(config2);
2578
4726
  };
2579
4727
 
2580
4728
  // src/next/commands/build-command/index.ts
2581
4729
  var import_schema_tools2 = require("@tinacms/schema-tools");
2582
4730
  var import_graphql12 = require("graphql");
2583
- var import_core2 = require("@graphql-inspector/core");
4731
+ var import_core3 = require("@graphql-inspector/core");
2584
4732
 
2585
4733
  // src/next/commands/build-command/waitForDB.ts
2586
4734
  var import_progress = __toESM(require("progress"));
@@ -2682,6 +4830,20 @@ var waitForDB = async (config2, apiUrl, previewName, verbose) => {
2682
4830
 
2683
4831
  // src/next/commands/build-command/index.ts
2684
4832
  var import_search2 = require("@tinacms/search");
4833
+
4834
+ // src/utils/index.ts
4835
+ var import_core2 = require("@graphql-inspector/core");
4836
+ var getFaqLink = (type) => {
4837
+ switch (type) {
4838
+ case import_core2.ChangeType.FieldRemoved: {
4839
+ return "https://tina.io/docs/introduction/faq#how-do-i-resolve-the-local-graphql-schema-doesnt-match-the-remote-graphql-schema-errors";
4840
+ }
4841
+ default:
4842
+ return null;
4843
+ }
4844
+ };
4845
+
4846
+ // src/next/commands/build-command/index.ts
2685
4847
  var BuildCommand = class extends BaseCommand {
2686
4848
  constructor() {
2687
4849
  super(...arguments);
@@ -2809,7 +4971,7 @@ ${dangerText(e.message)}
2809
4971
  }
2810
4972
  const skipCloudChecks = this.skipCloudChecks || configManager.hasSelfHostedConfig();
2811
4973
  if (!skipCloudChecks) {
2812
- const { hasUpstream } = await this.checkClientInfo(
4974
+ const { hasUpstream, timestamp } = await this.checkClientInfo(
2813
4975
  configManager,
2814
4976
  codegen2.productionUrl,
2815
4977
  this.previewBaseBranch
@@ -2837,7 +4999,16 @@ ${dangerText(e.message)}
2837
4999
  await this.checkGraphqlSchema(
2838
5000
  configManager,
2839
5001
  database,
2840
- codegen2.productionUrl
5002
+ codegen2.productionUrl,
5003
+ timestamp
5004
+ );
5005
+ await this.checkTinaSchema(
5006
+ configManager,
5007
+ database,
5008
+ codegen2.productionUrl,
5009
+ this.previewName,
5010
+ this.verbose,
5011
+ timestamp
2841
5012
  );
2842
5013
  }
2843
5014
  await buildProductionSpa(configManager, database, codegen2.productionUrl);
@@ -2956,11 +5127,13 @@ ${dangerText(e.message)}
2956
5127
  const bar2 = new import_progress2.default("Checking clientId and token. :prog", 1);
2957
5128
  let branchKnown = false;
2958
5129
  let hasUpstream = false;
5130
+ let timestamp;
2959
5131
  try {
2960
5132
  const res = await request({
2961
5133
  token,
2962
5134
  url
2963
5135
  });
5136
+ timestamp = res.timestamp || 0;
2964
5137
  bar2.tick({
2965
5138
  prog: "\u2705"
2966
5139
  });
@@ -3002,7 +5175,8 @@ ${dangerText(e.message)}
3002
5175
  prog: "\u2705"
3003
5176
  });
3004
5177
  return {
3005
- hasUpstream
5178
+ hasUpstream,
5179
+ timestamp
3006
5180
  };
3007
5181
  }
3008
5182
  for (let i = 0; i <= 5; i++) {
@@ -3092,14 +5266,14 @@ ${dangerText(e.message)}
3092
5266
  throw e;
3093
5267
  }
3094
5268
  }
3095
- async checkGraphqlSchema(configManager, database, apiURL) {
5269
+ async checkGraphqlSchema(configManager, database, apiURL, timestamp) {
3096
5270
  const bar2 = new import_progress2.default(
3097
5271
  "Checking local GraphQL Schema matches server. :prog",
3098
5272
  1
3099
5273
  );
3100
5274
  const { config: config2 } = configManager;
3101
5275
  const token = config2.token;
3102
- const remoteSchema = await fetchRemoteGraphqlSchema({
5276
+ const { remoteSchema, remoteProjectVersion } = await fetchRemoteGraphqlSchema({
3103
5277
  url: apiURL,
3104
5278
  token
3105
5279
  });
@@ -3119,7 +5293,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3119
5293
  const localSchemaDocument = await database.getGraphQLSchemaFromBridge();
3120
5294
  const localGraphqlSchema = (0, import_graphql12.buildASTSchema)(localSchemaDocument);
3121
5295
  try {
3122
- const diffResult = await (0, import_core2.diff)(localGraphqlSchema, remoteGqlSchema);
5296
+ const diffResult = await (0, import_core3.diff)(localGraphqlSchema, remoteGqlSchema);
3123
5297
  if (diffResult.length === 0) {
3124
5298
  bar2.tick({
3125
5299
  prog: "\u2705"
@@ -3128,12 +5302,30 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3128
5302
  bar2.tick({
3129
5303
  prog: "\u274C"
3130
5304
  });
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 += `
5305
+ const type = diffResult[0].type;
5306
+ const reason = diffResult[0].message;
5307
+ const errorLevel = diffResult[0].criticality.level;
5308
+ const faqLink = getFaqLink(type);
5309
+ const tinaGraphQLVersion = configManager.getTinaGraphQLVersion();
5310
+ 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 && `
5311
+ Check out '${faqLink}' for possible solutions.`}`;
5312
+ errorMessage += `
3134
5313
 
3135
- Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5314
+ Additional info:
5315
+
5316
+ `;
5317
+ if (config2 == null ? void 0 : config2.branch) {
5318
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5319
+ `;
3136
5320
  }
5321
+ errorMessage += ` Local GraphQL version: ${tinaGraphQLVersion.fullVersion} / Remote GraphQL version: ${remoteProjectVersion}
5322
+ `;
5323
+ errorMessage += ` Last indexed at: ${new Date(
5324
+ timestamp
5325
+ ).toUTCString()}
5326
+ `;
5327
+ errorMessage += ` Reason: [${errorLevel} - ${type}] ${reason}
5328
+ `;
3137
5329
  throw new Error(errorMessage);
3138
5330
  }
3139
5331
  } catch (e) {
@@ -3148,6 +5340,71 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3148
5340
  }
3149
5341
  }
3150
5342
  }
5343
+ async checkTinaSchema(configManager, database, apiURL, previewName, verbose, timestamp) {
5344
+ const bar2 = new import_progress2.default(
5345
+ "Checking local Tina Schema matches server. :prog",
5346
+ 1
5347
+ );
5348
+ const { config: config2 } = configManager;
5349
+ const token = config2.token;
5350
+ const { clientId, branch, isLocalClient, host } = (0, import_schema_tools2.parseURL)(apiURL);
5351
+ if (isLocalClient || !host || !clientId || !branch) {
5352
+ if (verbose) {
5353
+ logger.info(logText("Not using Tina Cloud, skipping Tina Schema check"));
5354
+ }
5355
+ return;
5356
+ }
5357
+ const { tinaSchema: remoteTinaSchemaSha } = await fetchSchemaSha({
5358
+ url: `https://${host}/db/${clientId}/${previewName || branch}/schemaSha`,
5359
+ token
5360
+ });
5361
+ if (!remoteTinaSchemaSha) {
5362
+ bar2.tick({
5363
+ prog: "\u274C"
5364
+ });
5365
+ let errorMessage = `The remote Tina schema does not exist. Check indexing for this branch.`;
5366
+ if (config2 == null ? void 0 : config2.branch) {
5367
+ errorMessage += `
5368
+
5369
+ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5370
+ }
5371
+ throw new Error(errorMessage);
5372
+ }
5373
+ if (!database.bridge) {
5374
+ throw new Error(`No bridge configured`);
5375
+ }
5376
+ const localTinaSchema = JSON.parse(
5377
+ await database.bridge.get(
5378
+ import_path6.default.join(database.tinaDirectory, "__generated__", "_schema.json")
5379
+ )
5380
+ );
5381
+ localTinaSchema.version = void 0;
5382
+ const localTinaSchemaSha = import_crypto.default.createHash("sha256").update(JSON.stringify(localTinaSchema)).digest("hex");
5383
+ if (localTinaSchemaSha === remoteTinaSchemaSha) {
5384
+ bar2.tick({
5385
+ prog: "\u2705"
5386
+ });
5387
+ } else {
5388
+ bar2.tick({
5389
+ prog: "\u274C"
5390
+ });
5391
+ 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.`;
5392
+ errorMessage += `
5393
+
5394
+ Additional info:
5395
+
5396
+ `;
5397
+ if (config2 == null ? void 0 : config2.branch) {
5398
+ errorMessage += ` Branch: ${config2.branch}, Client ID: ${config2.clientId}
5399
+ `;
5400
+ }
5401
+ errorMessage += ` Last indexed at: ${new Date(
5402
+ timestamp
5403
+ ).toUTCString()}
5404
+ `;
5405
+ throw new Error(errorMessage);
5406
+ }
5407
+ }
3151
5408
  };
3152
5409
  BuildCommand.paths = [["build"]];
3153
5410
  BuildCommand.usage = import_clipanion3.Command.Usage({
@@ -3214,7 +5471,26 @@ var fetchRemoteGraphqlSchema = async ({
3214
5471
  body
3215
5472
  });
3216
5473
  const data = await res.json();
3217
- return data == null ? void 0 : data.data;
5474
+ return {
5475
+ remoteSchema: data == null ? void 0 : data.data,
5476
+ remoteRuntimeVersion: res.headers.get("tinacms-grapqhl-version"),
5477
+ remoteProjectVersion: res.headers.get("tinacms-graphql-project-version")
5478
+ };
5479
+ };
5480
+ var fetchSchemaSha = async ({
5481
+ url,
5482
+ token
5483
+ }) => {
5484
+ const headers = new Headers();
5485
+ if (token) {
5486
+ headers.append("X-API-KEY", token);
5487
+ }
5488
+ const res = await fetch(url, {
5489
+ method: "GET",
5490
+ headers,
5491
+ cache: "no-cache"
5492
+ });
5493
+ return res.json();
3218
5494
  };
3219
5495
 
3220
5496
  // src/next/commands/audit-command/index.ts
@@ -3469,25 +5745,25 @@ var import_clipanion6 = require("clipanion");
3469
5745
 
3470
5746
  // src/cmds/init/detectEnvironment.ts
3471
5747
  var import_fs_extra8 = __toESM(require("fs-extra"));
3472
- var import_path6 = __toESM(require("path"));
5748
+ var import_path7 = __toESM(require("path"));
3473
5749
  var checkGitignoreForItem = async ({
3474
5750
  baseDir,
3475
5751
  line
3476
5752
  }) => {
3477
- const gitignoreContent = import_fs_extra8.default.readFileSync(import_path6.default.join(baseDir, ".gitignore")).toString();
5753
+ const gitignoreContent = import_fs_extra8.default.readFileSync(import_path7.default.join(baseDir, ".gitignore")).toString();
3478
5754
  return gitignoreContent.split("\n").some((item) => item === line);
3479
5755
  };
3480
5756
  var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3481
5757
  const result = {
3482
- fullPathTS: import_path6.default.join(
5758
+ fullPathTS: import_path7.default.join(
3483
5759
  parentPath,
3484
5760
  `${name2}.${(opts == null ? void 0 : opts.typescriptSuffix) || (opts == null ? void 0 : opts.extensionOverride) || "ts"}`
3485
5761
  ),
3486
- fullPathJS: import_path6.default.join(
5762
+ fullPathJS: import_path7.default.join(
3487
5763
  parentPath,
3488
5764
  `${name2}.${(opts == null ? void 0 : opts.extensionOverride) || "js"}`
3489
5765
  ),
3490
- fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path6.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
5766
+ fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path7.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
3491
5767
  generatedFileType,
3492
5768
  name: name2,
3493
5769
  parentPath,
@@ -3517,16 +5793,16 @@ var detectEnvironment = async ({
3517
5793
  }) => {
3518
5794
  var _a;
3519
5795
  const hasForestryConfig = await import_fs_extra8.default.pathExists(
3520
- import_path6.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5796
+ import_path7.default.join(pathToForestryConfig, ".forestry", "settings.yml")
3521
5797
  );
3522
- const sampleContentPath = import_path6.default.join(
5798
+ const sampleContentPath = import_path7.default.join(
3523
5799
  baseDir,
3524
5800
  "content",
3525
5801
  "posts",
3526
5802
  "hello-world.md"
3527
5803
  );
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");
5804
+ const usingSrc = import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path7.default.join(baseDir, "src", "pages")));
5805
+ const tinaFolder = import_path7.default.join(baseDir, "tina");
3530
5806
  const tinaConfigExists = Boolean(
3531
5807
  await import_fs_extra8.default.pathExists(tinaFolder) && (await import_fs_extra8.default.readdir(tinaFolder)).find((x) => x.includes("config"))
3532
5808
  );
@@ -3540,12 +5816,12 @@ var detectEnvironment = async ({
3540
5816
  "next-api-handler": await makeGeneratedFile(
3541
5817
  "[...routes]",
3542
5818
  "next-api-handler",
3543
- import_path6.default.join(...pagesDir, "api", "tina")
5819
+ import_path7.default.join(...pagesDir, "api", "tina")
3544
5820
  ),
3545
5821
  "reactive-example": await makeGeneratedFile(
3546
5822
  "[filename]",
3547
5823
  "reactive-example",
3548
- import_path6.default.join(...pagesDir, "demo", "blog"),
5824
+ import_path7.default.join(...pagesDir, "demo", "blog"),
3549
5825
  {
3550
5826
  typescriptSuffix: "tsx"
3551
5827
  }
@@ -3553,13 +5829,13 @@ var detectEnvironment = async ({
3553
5829
  "users-json": await makeGeneratedFile(
3554
5830
  "index",
3555
5831
  "users-json",
3556
- import_path6.default.join(baseDir, "content", "users"),
5832
+ import_path7.default.join(baseDir, "content", "users"),
3557
5833
  { extensionOverride: "json" }
3558
5834
  ),
3559
5835
  "sample-content": await makeGeneratedFile(
3560
5836
  "hello-world",
3561
5837
  "sample-content",
3562
- import_path6.default.join(baseDir, "content", "posts"),
5838
+ import_path7.default.join(baseDir, "content", "posts"),
3563
5839
  { extensionOverride: "md" }
3564
5840
  )
3565
5841
  };
@@ -3585,13 +5861,13 @@ var detectEnvironment = async ({
3585
5861
  );
3586
5862
  }
3587
5863
  }
3588
- const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path6.default.join(".gitignore"));
5864
+ const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path7.default.join(".gitignore"));
3589
5865
  const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
3590
5866
  const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
3591
5867
  const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
3592
5868
  let frontMatterFormat;
3593
5869
  if (hasForestryConfig) {
3594
- const hugoConfigPath = import_path6.default.join(rootPath, "config.toml");
5870
+ const hugoConfigPath = import_path7.default.join(rootPath, "config.toml");
3595
5871
  if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
3596
5872
  const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
3597
5873
  const metaDataFormat = (_a = hugoConfig.match(/metaDataFormat = "(.*)"/)) == null ? void 0 : _a[1];
@@ -4199,18 +6475,18 @@ var CLICommand = class {
4199
6475
  };
4200
6476
 
4201
6477
  // src/cmds/init/apply.ts
4202
- var import_path10 = __toESM(require("path"));
6478
+ var import_path11 = __toESM(require("path"));
4203
6479
 
4204
6480
  // src/cmds/forestry-migrate/index.ts
4205
6481
  var import_fs_extra10 = __toESM(require("fs-extra"));
4206
- var import_path8 = __toESM(require("path"));
6482
+ var import_path9 = __toESM(require("path"));
4207
6483
  var import_js_yaml2 = __toESM(require("js-yaml"));
4208
6484
  var import_minimatch = __toESM(require("minimatch"));
4209
6485
  var import_graphql16 = require("@tinacms/graphql");
4210
6486
 
4211
6487
  // src/cmds/forestry-migrate/util/index.ts
4212
6488
  var import_fs_extra9 = __toESM(require("fs-extra"));
4213
- var import_path7 = __toESM(require("path"));
6489
+ var import_path8 = __toESM(require("path"));
4214
6490
  var import_js_yaml = __toESM(require("js-yaml"));
4215
6491
  var import_zod = __toESM(require("zod"));
4216
6492
 
@@ -4621,7 +6897,7 @@ var transformForestryFieldsToTinaFields = ({
4621
6897
  return tinaFields;
4622
6898
  };
4623
6899
  var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
4624
- const templatePath = import_path7.default.join(
6900
+ const templatePath = import_path8.default.join(
4625
6901
  pathToForestryConfig,
4626
6902
  ".forestry",
4627
6903
  "front_matter",
@@ -4696,8 +6972,8 @@ var generateAllTemplates = async ({
4696
6972
  pathToForestryConfig
4697
6973
  }) => {
4698
6974
  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"));
6975
+ import_path9.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
6976
+ )).map((tem) => import_path9.default.basename(tem, ".yml"));
4701
6977
  const templateMap = /* @__PURE__ */ new Map();
4702
6978
  const proms = allTemplates.map(async (tem) => {
4703
6979
  try {
@@ -4839,9 +7115,9 @@ var generateCollectionFromForestrySection = (args) => {
4839
7115
  return c;
4840
7116
  } else if (section.type === "document") {
4841
7117
  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);
7118
+ const extname = import_path9.default.extname(filePath);
7119
+ const fileName = import_path9.default.basename(filePath, extname);
7120
+ const dir = import_path9.default.dirname(filePath);
4845
7121
  const ext = checkExt(extname);
4846
7122
  if (ext) {
4847
7123
  const fields = [];
@@ -4904,7 +7180,7 @@ var generateCollections = async ({
4904
7180
  usingTypescript
4905
7181
  });
4906
7182
  const forestryConfig = await import_fs_extra10.default.readFile(
4907
- import_path8.default.join(pathToForestryConfig, ".forestry", "settings.yml")
7183
+ import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
4908
7184
  );
4909
7185
  rewriteTemplateKeysInDocs({
4910
7186
  templateMap,
@@ -4935,11 +7211,11 @@ var rewriteTemplateKeysInDocs = (args) => {
4935
7211
  const { templateObj } = templateMap.get(templateKey);
4936
7212
  (_a = templateObj == null ? void 0 : templateObj.pages) == null ? void 0 : _a.forEach((page) => {
4937
7213
  try {
4938
- const filePath = import_path8.default.join(page);
7214
+ const filePath = import_path9.default.join(page);
4939
7215
  if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
4940
7216
  return;
4941
7217
  }
4942
- const extname = import_path8.default.extname(filePath);
7218
+ const extname = import_path9.default.extname(filePath);
4943
7219
  const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
4944
7220
  const content = (0, import_graphql16.parseFile)(
4945
7221
  fileContent,
@@ -4971,7 +7247,7 @@ var import_fs_extra13 = __toESM(require("fs-extra"));
4971
7247
  // src/next/commands/codemod-command/index.ts
4972
7248
  var import_clipanion5 = require("clipanion");
4973
7249
  var import_fs_extra11 = __toESM(require("fs-extra"));
4974
- var import_path9 = __toESM(require("path"));
7250
+ var import_path10 = __toESM(require("path"));
4975
7251
  var CodemodCommand = class extends import_clipanion5.Command {
4976
7252
  constructor() {
4977
7253
  super(...arguments);
@@ -5015,7 +7291,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5015
7291
  logger.error(e.message);
5016
7292
  process.exit(1);
5017
7293
  }
5018
- const tinaDestination = import_path9.default.join(configManager.rootPath, "tina");
7294
+ const tinaDestination = import_path10.default.join(configManager.rootPath, "tina");
5019
7295
  if (await import_fs_extra11.default.existsSync(tinaDestination)) {
5020
7296
  logger.info(
5021
7297
  `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 +7306,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5030
7306
  };
5031
7307
  var writeGitignore = async (rootPath) => {
5032
7308
  await import_fs_extra11.default.outputFileSync(
5033
- import_path9.default.join(rootPath, "tina", ".gitignore"),
7309
+ import_path10.default.join(rootPath, "tina", ".gitignore"),
5034
7310
  "__generated__"
5035
7311
  );
5036
7312
  };
@@ -5868,8 +8144,8 @@ async function apply({
5868
8144
  await addConfigFile({
5869
8145
  configArgs: {
5870
8146
  config: config2,
5871
- publicFolder: import_path10.default.join(
5872
- import_path10.default.relative(process.cwd(), pathToForestryConfig),
8147
+ publicFolder: import_path11.default.join(
8148
+ import_path11.default.relative(process.cwd(), pathToForestryConfig),
5873
8149
  config2.publicFolder
5874
8150
  ),
5875
8151
  collections,
@@ -5936,18 +8212,18 @@ var createPackageJSON = async () => {
5936
8212
  };
5937
8213
  var createGitignore = async ({ baseDir }) => {
5938
8214
  logger.info(logText("No .gitignore found, creating one"));
5939
- import_fs_extra13.default.outputFileSync(import_path10.default.join(baseDir, ".gitignore"), "node_modules");
8215
+ import_fs_extra13.default.outputFileSync(import_path11.default.join(baseDir, ".gitignore"), "node_modules");
5940
8216
  };
5941
8217
  var updateGitIgnore = async ({
5942
8218
  baseDir,
5943
8219
  items
5944
8220
  }) => {
5945
8221
  logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
5946
- const gitignoreContent = import_fs_extra13.default.readFileSync(import_path10.default.join(baseDir, ".gitignore")).toString();
8222
+ const gitignoreContent = import_fs_extra13.default.readFileSync(import_path11.default.join(baseDir, ".gitignore")).toString();
5947
8223
  const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
5948
8224
  "\n"
5949
8225
  );
5950
- await import_fs_extra13.default.writeFile(import_path10.default.join(baseDir, ".gitignore"), newGitignoreContent);
8226
+ await import_fs_extra13.default.writeFile(import_path11.default.join(baseDir, ".gitignore"), newGitignoreContent);
5951
8227
  };
5952
8228
  var addDependencies = async (config2, env, params) => {
5953
8229
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
@@ -6017,22 +8293,22 @@ var writeGeneratedFile = async ({
6017
8293
  content,
6018
8294
  typescript
6019
8295
  }) => {
6020
- const { exists, path: path13, parentPath } = generatedFile.resolve(typescript);
8296
+ const { exists, path: path14, parentPath } = generatedFile.resolve(typescript);
6021
8297
  if (exists) {
6022
8298
  if (overwrite) {
6023
- logger.info(`Overwriting file at ${path13}... \u2705`);
6024
- import_fs_extra13.default.outputFileSync(path13, content);
8299
+ logger.info(`Overwriting file at ${path14}... \u2705`);
8300
+ import_fs_extra13.default.outputFileSync(path14, content);
6025
8301
  } else {
6026
- logger.info(`Not overwriting file at ${path13}.`);
8302
+ logger.info(`Not overwriting file at ${path14}.`);
6027
8303
  logger.info(
6028
- logText(`Please add the following to ${path13}:
8304
+ logText(`Please add the following to ${path14}:
6029
8305
  ${indentText(content)}}`)
6030
8306
  );
6031
8307
  }
6032
8308
  } else {
6033
- logger.info(`Adding file at ${path13}... \u2705`);
8309
+ logger.info(`Adding file at ${path14}... \u2705`);
6034
8310
  await import_fs_extra13.default.ensureDir(parentPath);
6035
- import_fs_extra13.default.outputFileSync(path13, content);
8311
+ import_fs_extra13.default.outputFileSync(path14, content);
6036
8312
  }
6037
8313
  };
6038
8314
  var addConfigFile = async ({
@@ -6115,7 +8391,7 @@ var addContentFile = async ({
6115
8391
  return () => ({
6116
8392
  exists: env.sampleContentExists,
6117
8393
  path: env.sampleContentPath,
6118
- parentPath: import_path10.default.dirname(env.sampleContentPath)
8394
+ parentPath: import_path11.default.dirname(env.sampleContentPath)
6119
8395
  });
6120
8396
  }
6121
8397
  },
@@ -6138,7 +8414,7 @@ ${titleText(" TinaCMS ")} backend initialized!`));
6138
8414
  return `${x.key}=${x.value || "***"}`;
6139
8415
  }).join("\n") + `
6140
8416
  TINA_PUBLIC_IS_LOCAL=true`;
6141
- const envFile = import_path10.default.join(process.cwd(), ".env");
8417
+ const envFile = import_path11.default.join(process.cwd(), ".env");
6142
8418
  if (!import_fs_extra13.default.existsSync(envFile)) {
6143
8419
  logger.info(`Adding .env file to your project... \u2705`);
6144
8420
  import_fs_extra13.default.writeFileSync(envFile, envFileText);
@@ -6202,7 +8478,7 @@ var addReactiveFile = {
6202
8478
  dataLayer
6203
8479
  }) => {
6204
8480
  var _a, _b;
6205
- const packageJsonPath = import_path10.default.join(baseDir, "package.json");
8481
+ const packageJsonPath = import_path11.default.join(baseDir, "package.json");
6206
8482
  await writeGeneratedFile({
6207
8483
  generatedFile,
6208
8484
  typescript: config2.typescript,