@tinacms/cli 0.0.0-8c4ebd1-20241218045206 → 0.0.0-8e4b842-20241220011109

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,9 +4,6 @@ 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
- };
10
7
  var __export = (target, all) => {
11
8
  for (var name2 in all)
12
9
  __defProp(target, name2, { get: all[name2], enumerable: true });
@@ -25,2088 +22,605 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
22
  ));
26
23
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
24
 
28
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/filesystem.js
29
- var require_filesystem = __commonJS({
30
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/filesystem.js"(exports) {
31
- "use strict";
32
- Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.removeExtension = exports.fileExistsAsync = exports.readJsonFromDiskAsync = exports.readJsonFromDiskSync = exports.fileExistsSync = void 0;
34
- var fs15 = require("fs");
35
- function fileExistsSync(path15) {
36
- if (!fs15.existsSync(path15)) {
37
- return false;
38
- }
39
- try {
40
- var stats = fs15.statSync(path15);
41
- return stats.isFile();
42
- } catch (err) {
43
- return false;
44
- }
45
- }
46
- exports.fileExistsSync = fileExistsSync;
47
- function readJsonFromDiskSync(packageJsonPath) {
48
- if (!fs15.existsSync(packageJsonPath)) {
49
- return void 0;
50
- }
51
- return require(packageJsonPath);
52
- }
53
- exports.readJsonFromDiskSync = readJsonFromDiskSync;
54
- function readJsonFromDiskAsync(path15, callback) {
55
- fs15.readFile(path15, "utf8", function(err, result) {
56
- if (err || !result) {
57
- return callback();
58
- }
59
- var json = JSON.parse(result);
60
- return callback(void 0, json);
61
- });
62
- }
63
- exports.readJsonFromDiskAsync = readJsonFromDiskAsync;
64
- function fileExistsAsync(path22, callback2) {
65
- fs15.stat(path22, function(err, stats) {
66
- if (err) {
67
- return callback2(void 0, false);
68
- }
69
- callback2(void 0, stats ? stats.isFile() : false);
70
- });
71
- }
72
- exports.fileExistsAsync = fileExistsAsync;
73
- function removeExtension(path15) {
74
- return path15.substring(0, path15.lastIndexOf(".")) || path15;
75
- }
76
- exports.removeExtension = removeExtension;
77
- }
25
+ // src/index.ts
26
+ var src_exports = {};
27
+ __export(src_exports, {
28
+ default: () => src_default
78
29
  });
30
+ module.exports = __toCommonJS(src_exports);
31
+ var import_clipanion8 = require("clipanion");
79
32
 
80
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/mapping-entry.js
81
- var require_mapping_entry = __commonJS({
82
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/mapping-entry.js"(exports) {
83
- "use strict";
84
- Object.defineProperty(exports, "__esModule", { value: true });
85
- exports.getAbsoluteMappingEntries = void 0;
86
- var path15 = require("path");
87
- function getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll) {
88
- var sortedKeys = sortByLongestPrefix(Object.keys(paths));
89
- var absolutePaths = [];
90
- for (var _i = 0, sortedKeys_1 = sortedKeys; _i < sortedKeys_1.length; _i++) {
91
- var key = sortedKeys_1[_i];
92
- absolutePaths.push({
93
- pattern: key,
94
- paths: paths[key].map(function(pathToResolve) {
95
- return path15.resolve(absoluteBaseUrl, pathToResolve);
96
- })
97
- });
98
- }
99
- if (!paths["*"] && addMatchAll) {
100
- absolutePaths.push({
101
- pattern: "*",
102
- paths: ["".concat(absoluteBaseUrl.replace(/\/$/, ""), "/*")]
103
- });
104
- }
105
- return absolutePaths;
106
- }
107
- exports.getAbsoluteMappingEntries = getAbsoluteMappingEntries;
108
- function sortByLongestPrefix(arr) {
109
- return arr.concat().sort(function(a, b) {
110
- return getPrefixLength(b) - getPrefixLength(a);
111
- });
112
- }
113
- function getPrefixLength(pattern) {
114
- var prefixLength = pattern.indexOf("*");
115
- return pattern.substr(0, prefixLength).length;
116
- }
117
- }
118
- });
33
+ // package.json
34
+ var version = "1.7.0";
119
35
 
120
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/try-path.js
121
- var require_try_path = __commonJS({
122
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/try-path.js"(exports) {
123
- "use strict";
124
- Object.defineProperty(exports, "__esModule", { value: true });
125
- exports.exhaustiveTypeException = exports.getStrippedPath = exports.getPathsToTry = void 0;
126
- var path15 = require("path");
127
- var path_1 = require("path");
128
- var filesystem_1 = require_filesystem();
129
- function getPathsToTry(extensions, absolutePathMappings, requestedModule) {
130
- if (!absolutePathMappings || !requestedModule || requestedModule[0] === ".") {
131
- return void 0;
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: path15.join(physicalPath, "/package.json")
147
- });
148
- var indexPath = path15.join(physicalPath, "/index");
149
- pathsToTry.push.apply(pathsToTry, extensions.map(function(e) {
150
- return { type: "index", path: indexPath + e };
151
- }));
152
- };
153
- for (var _a = 0, _b = entry.paths; _a < _b.length; _a++) {
154
- var physicalPathPattern = _b[_a];
155
- _loop_1(physicalPathPattern);
156
- }
157
- }
158
- }
159
- return pathsToTry.length === 0 ? void 0 : pathsToTry;
160
- }
161
- exports.getPathsToTry = getPathsToTry;
162
- function getStrippedPath(tryPath) {
163
- return tryPath.type === "index" ? (0, path_1.dirname)(tryPath.path) : tryPath.type === "file" ? tryPath.path : tryPath.type === "extension" ? (0, filesystem_1.removeExtension)(tryPath.path) : tryPath.type === "package" ? tryPath.path : exhaustiveTypeException(tryPath.type);
164
- }
165
- exports.getStrippedPath = getStrippedPath;
166
- function exhaustiveTypeException(check) {
167
- throw new Error("Unknown type ".concat(check));
168
- }
169
- exports.exhaustiveTypeException = exhaustiveTypeException;
170
- function matchStar(pattern, search) {
171
- if (search.length < pattern.length) {
172
- return void 0;
173
- }
174
- if (pattern === "*") {
175
- return search;
176
- }
177
- var star = pattern.indexOf("*");
178
- if (star === -1) {
179
- return void 0;
180
- }
181
- var part1 = pattern.substring(0, star);
182
- var part2 = pattern.substring(star + 1);
183
- if (search.substr(0, star) !== part1) {
184
- return void 0;
185
- }
186
- if (search.substr(search.length - part2.length) !== part2) {
187
- return void 0;
188
- }
189
- return search.substr(star, search.length - part2.length);
190
- }
191
- }
192
- });
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");
193
42
 
194
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-sync.js
195
- var require_match_path_sync = __commonJS({
196
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-sync.js"(exports) {
197
- "use strict";
198
- Object.defineProperty(exports, "__esModule", { value: true });
199
- exports.matchFromAbsolutePaths = exports.createMatchPath = void 0;
200
- var path15 = require("path");
201
- var Filesystem = require_filesystem();
202
- var MappingEntry = require_mapping_entry();
203
- var TryPath = require_try_path();
204
- function createMatchPath(absoluteBaseUrl, paths, mainFields, addMatchAll) {
205
- if (mainFields === void 0) {
206
- mainFields = ["main"];
207
- }
208
- if (addMatchAll === void 0) {
209
- addMatchAll = true;
210
- }
211
- var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
212
- return function(requestedModule, readJson, fileExists, extensions) {
213
- return matchFromAbsolutePaths(absolutePaths, requestedModule, readJson, fileExists, extensions, mainFields);
214
- };
215
- }
216
- exports.createMatchPath = createMatchPath;
217
- function matchFromAbsolutePaths(absolutePathMappings, requestedModule, readJson, fileExists, extensions, mainFields) {
218
- if (readJson === void 0) {
219
- readJson = Filesystem.readJsonFromDiskSync;
220
- }
221
- if (fileExists === void 0) {
222
- fileExists = Filesystem.fileExistsSync;
223
- }
224
- if (extensions === void 0) {
225
- extensions = Object.keys(require.extensions);
226
- }
227
- if (mainFields === void 0) {
228
- mainFields = ["main"];
229
- }
230
- var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
231
- if (!tryPaths) {
232
- return void 0;
233
- }
234
- return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);
235
- }
236
- exports.matchFromAbsolutePaths = matchFromAbsolutePaths;
237
- function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExists) {
238
- for (var index = 0; index < mainFields.length; index++) {
239
- var mainFieldSelector = mainFields[index];
240
- var candidateMapping = typeof mainFieldSelector === "string" ? packageJson[mainFieldSelector] : mainFieldSelector.reduce(function(obj, key) {
241
- return obj[key];
242
- }, packageJson);
243
- if (candidateMapping && typeof candidateMapping === "string") {
244
- var candidateFilePath = path15.join(path15.dirname(packageJsonPath), candidateMapping);
245
- if (fileExists(candidateFilePath)) {
246
- return candidateFilePath;
247
- }
248
- }
249
- }
250
- return void 0;
251
- }
252
- function findFirstExistingPath(tryPaths, readJson, fileExists, mainFields) {
253
- if (readJson === void 0) {
254
- readJson = Filesystem.readJsonFromDiskSync;
255
- }
256
- if (mainFields === void 0) {
257
- mainFields = ["main"];
258
- }
259
- for (var _i = 0, tryPaths_1 = tryPaths; _i < tryPaths_1.length; _i++) {
260
- var tryPath = tryPaths_1[_i];
261
- if (tryPath.type === "file" || tryPath.type === "extension" || tryPath.type === "index") {
262
- if (fileExists(tryPath.path)) {
263
- return TryPath.getStrippedPath(tryPath);
264
- }
265
- } else if (tryPath.type === "package") {
266
- var packageJson = readJson(tryPath.path);
267
- if (packageJson) {
268
- var mainFieldMappedFile = findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists);
269
- if (mainFieldMappedFile) {
270
- return mainFieldMappedFile;
271
- }
272
- }
273
- } else {
274
- TryPath.exhaustiveTypeException(tryPath.type);
275
- }
276
- }
277
- return void 0;
278
- }
279
- }
280
- });
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"));
281
51
 
282
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-async.js
283
- var require_match_path_async = __commonJS({
284
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/match-path-async.js"(exports) {
285
- "use strict";
286
- Object.defineProperty(exports, "__esModule", { value: true });
287
- exports.matchFromAbsolutePathsAsync = exports.createMatchPathAsync = void 0;
288
- var path15 = require("path");
289
- var TryPath = require_try_path();
290
- var MappingEntry = require_mapping_entry();
291
- var Filesystem = require_filesystem();
292
- function createMatchPathAsync(absoluteBaseUrl, paths, mainFields, addMatchAll) {
293
- if (mainFields === void 0) {
294
- mainFields = ["main"];
295
- }
296
- if (addMatchAll === void 0) {
297
- addMatchAll = true;
298
- }
299
- var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
300
- return function(requestedModule, readJson, fileExists, extensions, callback) {
301
- return matchFromAbsolutePathsAsync(absolutePaths, requestedModule, readJson, fileExists, extensions, callback, mainFields);
302
- };
303
- }
304
- exports.createMatchPathAsync = createMatchPathAsync;
305
- function matchFromAbsolutePathsAsync(absolutePathMappings, requestedModule, readJson, fileExists, extensions, callback, mainFields) {
306
- if (readJson === void 0) {
307
- readJson = Filesystem.readJsonFromDiskAsync;
308
- }
309
- if (fileExists === void 0) {
310
- fileExists = Filesystem.fileExistsAsync;
311
- }
312
- if (extensions === void 0) {
313
- extensions = Object.keys(require.extensions);
314
- }
315
- if (mainFields === void 0) {
316
- mainFields = ["main"];
317
- }
318
- var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
319
- if (!tryPaths) {
320
- return callback();
321
- }
322
- findFirstExistingPath(tryPaths, readJson, fileExists, callback, 0, mainFields);
323
- }
324
- exports.matchFromAbsolutePathsAsync = matchFromAbsolutePathsAsync;
325
- function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index) {
326
- if (index === void 0) {
327
- index = 0;
328
- }
329
- if (index >= mainFields.length) {
330
- return doneCallback(void 0, void 0);
331
- }
332
- var tryNext = function() {
333
- return findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index + 1);
334
- };
335
- var mainFieldSelector = mainFields[index];
336
- var mainFieldMapping = typeof mainFieldSelector === "string" ? packageJson[mainFieldSelector] : mainFieldSelector.reduce(function(obj, key) {
337
- return obj[key];
338
- }, packageJson);
339
- if (typeof mainFieldMapping !== "string") {
340
- return tryNext();
341
- }
342
- var mappedFilePath = path15.join(path15.dirname(packageJsonPath), mainFieldMapping);
343
- fileExistsAsync(mappedFilePath, function(err, exists) {
344
- if (err) {
345
- return doneCallback(err);
346
- }
347
- if (exists) {
348
- return doneCallback(void 0, mappedFilePath);
349
- }
350
- return tryNext();
351
- });
352
- }
353
- function findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index, mainFields) {
354
- if (index === void 0) {
355
- index = 0;
356
- }
357
- if (mainFields === void 0) {
358
- mainFields = ["main"];
359
- }
360
- var tryPath = tryPaths[index];
361
- if (tryPath.type === "file" || tryPath.type === "extension" || tryPath.type === "index") {
362
- fileExists(tryPath.path, function(err, exists) {
363
- if (err) {
364
- return doneCallback(err);
365
- }
366
- if (exists) {
367
- return doneCallback(void 0, TryPath.getStrippedPath(tryPath));
368
- }
369
- if (index === tryPaths.length - 1) {
370
- return doneCallback();
371
- }
372
- return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
373
- });
374
- } else if (tryPath.type === "package") {
375
- readJson(tryPath.path, function(err, packageJson) {
376
- if (err) {
377
- return doneCallback(err);
378
- }
379
- if (packageJson) {
380
- return findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists, function(mainFieldErr, mainFieldMappedFile) {
381
- if (mainFieldErr) {
382
- return doneCallback(mainFieldErr);
383
- }
384
- if (mainFieldMappedFile) {
385
- return doneCallback(void 0, mainFieldMappedFile);
386
- }
387
- return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
388
- });
389
- }
390
- return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
391
- });
392
- } else {
393
- TryPath.exhaustiveTypeException(tryPath.type);
394
- }
395
- }
396
- }
397
- });
52
+ // src/logger/index.ts
53
+ var import_chalk = __toESM(require("chalk"));
398
54
 
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]/;
55
+ // src/logger/is-unicode-supported.ts
56
+ function isUnicodeSupported() {
57
+ if (process.platform !== "win32") {
58
+ return process.env.TERM !== "linux";
405
59
  }
406
- });
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
+ }
407
62
 
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);
63
+ // src/logger/index.ts
64
+ var import_log4js = __toESM(require("log4js"));
65
+ var logger = import_log4js.default.getLogger();
66
+ import_log4js.default.configure({
67
+ appenders: {
68
+ out: { type: "stdout", layout: { type: "messagePassThrough" } }
69
+ },
70
+ categories: { default: { appenders: ["out"], level: "info" } }
71
+ });
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;
427
115
  }
428
- };
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);
429
134
  }
430
- });
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");
431
159
 
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
- }
517
- }
518
- function peek() {
519
- if (source[pos]) {
520
- return String.fromCodePoint(source.codePointAt(pos));
521
- }
522
- }
523
- function read() {
524
- const c2 = peek();
525
- if (c2 === "\n") {
526
- line++;
527
- column = 0;
528
- } else if (c2) {
529
- column += c2.length;
530
- } else {
531
- column++;
532
- }
533
- if (c2) {
534
- pos += c2.length;
535
- }
536
- return c2;
537
- }
538
- var lexStates = {
539
- default() {
540
- switch (c) {
541
- case " ":
542
- case "\v":
543
- case "\f":
544
- case " ":
545
- case "\xA0":
546
- case "\uFEFF":
547
- case "\n":
548
- case "\r":
549
- case "\u2028":
550
- case "\u2029":
551
- read();
552
- return;
553
- case "/":
554
- read();
555
- lexState = "comment";
556
- return;
557
- case void 0:
558
- read();
559
- return newToken("eof");
560
- }
561
- if (util.isSpaceSeparator(c)) {
562
- read();
563
- return;
564
- }
565
- return lexStates[parseState]();
566
- },
567
- comment() {
568
- switch (c) {
569
- case "*":
570
- read();
571
- lexState = "multiLineComment";
572
- return;
573
- case "/":
574
- read();
575
- lexState = "singleLineComment";
576
- return;
577
- }
578
- throw invalidChar(read());
579
- },
580
- multiLineComment() {
581
- switch (c) {
582
- case "*":
583
- read();
584
- lexState = "multiLineCommentAsterisk";
585
- return;
586
- case void 0:
587
- throw invalidChar(read());
588
- }
589
- read();
590
- },
591
- multiLineCommentAsterisk() {
592
- switch (c) {
593
- case "*":
594
- read();
595
- return;
596
- case "/":
597
- read();
598
- lexState = "default";
599
- return;
600
- case void 0:
601
- throw invalidChar(read());
602
- }
603
- read();
604
- lexState = "multiLineComment";
605
- },
606
- singleLineComment() {
607
- switch (c) {
608
- case "\n":
609
- case "\r":
610
- case "\u2028":
611
- case "\u2029":
612
- read();
613
- lexState = "default";
614
- return;
615
- case void 0:
616
- read();
617
- return newToken("eof");
618
- }
619
- read();
620
- },
621
- value() {
622
- switch (c) {
623
- case "{":
624
- case "[":
625
- return newToken("punctuator", read());
626
- case "n":
627
- read();
628
- literal("ull");
629
- return newToken("null", null);
630
- case "t":
631
- read();
632
- literal("rue");
633
- return newToken("boolean", true);
634
- case "f":
635
- read();
636
- literal("alse");
637
- return newToken("boolean", false);
638
- case "-":
639
- case "+":
640
- if (read() === "-") {
641
- sign = -1;
642
- }
643
- lexState = "sign";
644
- return;
645
- case ".":
646
- buffer = read();
647
- lexState = "decimalPointLeading";
648
- return;
649
- case "0":
650
- buffer = read();
651
- lexState = "zero";
652
- return;
653
- case "1":
654
- case "2":
655
- case "3":
656
- case "4":
657
- case "5":
658
- case "6":
659
- case "7":
660
- case "8":
661
- case "9":
662
- buffer = read();
663
- lexState = "decimalInteger";
664
- return;
665
- case "I":
666
- read();
667
- literal("nfinity");
668
- return newToken("numeric", Infinity);
669
- case "N":
670
- read();
671
- literal("aN");
672
- return newToken("numeric", NaN);
673
- case '"':
674
- case "'":
675
- doubleQuote = read() === '"';
676
- buffer = "";
677
- lexState = "string";
678
- return;
679
- }
680
- throw invalidChar(read());
681
- },
682
- identifierNameStartEscape() {
683
- if (c !== "u") {
684
- throw invalidChar(read());
685
- }
686
- read();
687
- const u = unicodeEscape();
688
- switch (u) {
689
- case "$":
690
- case "_":
691
- break;
692
- default:
693
- if (!util.isIdStartChar(u)) {
694
- throw invalidIdentifier();
695
- }
696
- break;
697
- }
698
- buffer += u;
699
- lexState = "identifierName";
700
- },
701
- identifierName() {
702
- switch (c) {
703
- case "$":
704
- case "_":
705
- case "\u200C":
706
- case "\u200D":
707
- buffer += read();
708
- return;
709
- case "\\":
710
- read();
711
- lexState = "identifierNameEscape";
712
- return;
713
- }
714
- if (util.isIdContinueChar(c)) {
715
- buffer += read();
716
- return;
717
- }
718
- return newToken("identifier", buffer);
719
- },
720
- identifierNameEscape() {
721
- if (c !== "u") {
722
- throw invalidChar(read());
723
- }
724
- read();
725
- const u = unicodeEscape();
726
- switch (u) {
727
- case "$":
728
- case "_":
729
- case "\u200C":
730
- case "\u200D":
731
- break;
732
- default:
733
- if (!util.isIdContinueChar(u)) {
734
- throw invalidIdentifier();
735
- }
736
- break;
737
- }
738
- buffer += u;
739
- lexState = "identifierName";
740
- },
741
- sign() {
742
- switch (c) {
743
- case ".":
744
- buffer = read();
745
- lexState = "decimalPointLeading";
746
- return;
747
- case "0":
748
- buffer = read();
749
- lexState = "zero";
750
- return;
751
- case "1":
752
- case "2":
753
- case "3":
754
- case "4":
755
- case "5":
756
- case "6":
757
- case "7":
758
- case "8":
759
- case "9":
760
- buffer = read();
761
- lexState = "decimalInteger";
762
- return;
763
- case "I":
764
- read();
765
- literal("nfinity");
766
- return newToken("numeric", sign * Infinity);
767
- case "N":
768
- read();
769
- literal("aN");
770
- return newToken("numeric", NaN);
771
- }
772
- throw invalidChar(read());
773
- },
774
- zero() {
775
- switch (c) {
776
- case ".":
777
- buffer += read();
778
- lexState = "decimalPoint";
779
- return;
780
- case "e":
781
- case "E":
782
- buffer += read();
783
- lexState = "decimalExponent";
784
- return;
785
- case "x":
786
- case "X":
787
- buffer += read();
788
- lexState = "hexadecimal";
789
- return;
790
- }
791
- return newToken("numeric", sign * 0);
792
- },
793
- decimalInteger() {
794
- switch (c) {
795
- case ".":
796
- buffer += read();
797
- lexState = "decimalPoint";
798
- return;
799
- case "e":
800
- case "E":
801
- buffer += read();
802
- lexState = "decimalExponent";
803
- return;
804
- }
805
- if (util.isDigit(c)) {
806
- buffer += read();
807
- return;
808
- }
809
- return newToken("numeric", sign * Number(buffer));
810
- },
811
- decimalPointLeading() {
812
- if (util.isDigit(c)) {
813
- buffer += read();
814
- lexState = "decimalFraction";
815
- return;
816
- }
817
- throw invalidChar(read());
818
- },
819
- decimalPoint() {
820
- switch (c) {
821
- case "e":
822
- case "E":
823
- buffer += read();
824
- lexState = "decimalExponent";
825
- return;
826
- }
827
- if (util.isDigit(c)) {
828
- buffer += read();
829
- lexState = "decimalFraction";
830
- return;
831
- }
832
- return newToken("numeric", sign * Number(buffer));
833
- },
834
- decimalFraction() {
835
- switch (c) {
836
- case "e":
837
- case "E":
838
- buffer += read();
839
- lexState = "decimalExponent";
840
- return;
841
- }
842
- if (util.isDigit(c)) {
843
- buffer += read();
844
- return;
845
- }
846
- return newToken("numeric", sign * Number(buffer));
847
- },
848
- decimalExponent() {
849
- switch (c) {
850
- case "+":
851
- case "-":
852
- buffer += read();
853
- lexState = "decimalExponentSign";
854
- return;
855
- }
856
- if (util.isDigit(c)) {
857
- buffer += read();
858
- lexState = "decimalExponentInteger";
859
- return;
860
- }
861
- throw invalidChar(read());
862
- },
863
- decimalExponentSign() {
864
- if (util.isDigit(c)) {
865
- buffer += read();
866
- lexState = "decimalExponentInteger";
867
- return;
868
- }
869
- throw invalidChar(read());
870
- },
871
- decimalExponentInteger() {
872
- if (util.isDigit(c)) {
873
- buffer += read();
874
- return;
875
- }
876
- return newToken("numeric", sign * Number(buffer));
877
- },
878
- hexadecimal() {
879
- if (util.isHexDigit(c)) {
880
- buffer += read();
881
- lexState = "hexadecimalInteger";
882
- return;
883
- }
884
- throw invalidChar(read());
885
- },
886
- hexadecimalInteger() {
887
- if (util.isHexDigit(c)) {
888
- buffer += read();
889
- return;
890
- }
891
- return newToken("numeric", sign * Number(buffer));
892
- },
893
- string() {
894
- switch (c) {
895
- case "\\":
896
- read();
897
- buffer += escape();
898
- return;
899
- case '"':
900
- if (doubleQuote) {
901
- read();
902
- return newToken("string", buffer);
903
- }
904
- buffer += read();
905
- return;
906
- case "'":
907
- if (!doubleQuote) {
908
- read();
909
- return newToken("string", buffer);
910
- }
911
- buffer += read();
912
- return;
913
- case "\n":
914
- case "\r":
915
- throw invalidChar(read());
916
- case "\u2028":
917
- case "\u2029":
918
- separatorChar(c);
919
- break;
920
- case void 0:
921
- throw invalidChar(read());
922
- }
923
- buffer += read();
924
- },
925
- start() {
926
- switch (c) {
927
- case "{":
928
- case "[":
929
- return newToken("punctuator", read());
930
- }
931
- lexState = "value";
932
- },
933
- beforePropertyName() {
934
- switch (c) {
935
- case "$":
936
- case "_":
937
- buffer = read();
938
- lexState = "identifierName";
939
- return;
940
- case "\\":
941
- read();
942
- lexState = "identifierNameStartEscape";
943
- return;
944
- case "}":
945
- return newToken("punctuator", read());
946
- case '"':
947
- case "'":
948
- doubleQuote = read() === '"';
949
- lexState = "string";
950
- return;
951
- }
952
- if (util.isIdStartChar(c)) {
953
- buffer += read();
954
- lexState = "identifierName";
955
- return;
956
- }
957
- throw invalidChar(read());
958
- },
959
- afterPropertyName() {
960
- if (c === ":") {
961
- return newToken("punctuator", read());
962
- }
963
- throw invalidChar(read());
964
- },
965
- beforePropertyValue() {
966
- lexState = "value";
967
- },
968
- afterPropertyValue() {
969
- switch (c) {
970
- case ",":
971
- case "}":
972
- return newToken("punctuator", read());
973
- }
974
- throw invalidChar(read());
975
- },
976
- beforeArrayValue() {
977
- if (c === "]") {
978
- return newToken("punctuator", read());
979
- }
980
- lexState = "value";
981
- },
982
- afterArrayValue() {
983
- switch (c) {
984
- case ",":
985
- case "]":
986
- return newToken("punctuator", read());
987
- }
988
- throw invalidChar(read());
989
- },
990
- end() {
991
- throw invalidChar(read());
992
- }
993
- };
994
- function newToken(type, value) {
995
- return {
996
- type,
997
- value,
998
- line,
999
- column
1000
- };
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;
177
+ }
178
+ isUsingTs() {
179
+ return [".ts", ".tsx"].includes(import_path.default.extname(this.tinaConfigFilePath));
180
+ }
181
+ hasSelfHostedConfig() {
182
+ return !!this.selfHostedDatabaseFilePath;
183
+ }
184
+ hasSeparateContentRoot() {
185
+ return this.rootPath !== this.contentRootPath;
186
+ }
187
+ shouldSkipSDK() {
188
+ var _a;
189
+ if (this.legacyNoSDK) {
190
+ return this.legacyNoSDK;
1001
191
  }
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
- }
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
+ );
1010
207
  }
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());
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);
1067
292
  }
1068
- return read();
1069
293
  }
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();
294
+ const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
295
+ this.generatedFolderPath,
296
+ this.tinaConfigFilePath
297
+ );
298
+ this.watchList = watchList;
299
+ this.config = config2;
300
+ this.prebuildFilePath = prebuildPath;
301
+ this.publicFolderPath = import_path.default.join(
302
+ this.rootPath,
303
+ this.config.build.publicFolder
304
+ );
305
+ this.outputFolderPath = import_path.default.join(
306
+ this.publicFolderPath,
307
+ this.config.build.outputFolder
308
+ );
309
+ this.outputHTMLFilePath = import_path.default.join(this.outputFolderPath, "index.html");
310
+ this.outputGitignorePath = import_path.default.join(this.outputFolderPath, ".gitignore");
311
+ const fullLocalContentPath = import_path.default.join(
312
+ this.tinaFolderPath,
313
+ this.config.localContentPath || ""
314
+ );
315
+ if (this.config.localContentPath) {
316
+ const localContentPathExists = await import_fs_extra.default.pathExists(fullLocalContentPath);
317
+ if (localContentPathExists) {
318
+ logger.info(`Using separate content repo at ${fullLocalContentPath}`);
319
+ this.contentRootPath = fullLocalContentPath;
320
+ } else {
321
+ logger.warn(
322
+ `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
323
+ fullLocalContentPath
324
+ )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
325
+ this.tinaConfigFilePath
326
+ )}`
327
+ );
1093
328
  }
1094
- return String.fromCodePoint(parseInt(buffer2, 16));
1095
329
  }
1096
- var parseStates = {
1097
- start() {
1098
- if (token.type === "eof") {
1099
- throw invalidEOF();
1100
- }
1101
- push();
1102
- },
1103
- beforePropertyName() {
1104
- switch (token.type) {
1105
- case "identifier":
1106
- case "string":
1107
- key = token.value;
1108
- parseState = "afterPropertyName";
1109
- return;
1110
- case "punctuator":
1111
- pop();
1112
- return;
1113
- case "eof":
1114
- throw invalidEOF();
1115
- }
1116
- },
1117
- afterPropertyName() {
1118
- if (token.type === "eof") {
1119
- throw invalidEOF();
1120
- }
1121
- parseState = "beforePropertyValue";
1122
- },
1123
- beforePropertyValue() {
1124
- if (token.type === "eof") {
1125
- throw invalidEOF();
1126
- }
1127
- push();
1128
- },
1129
- beforeArrayValue() {
1130
- if (token.type === "eof") {
1131
- throw invalidEOF();
1132
- }
1133
- if (token.type === "punctuator" && token.value === "]") {
1134
- pop();
1135
- return;
1136
- }
1137
- push();
1138
- },
1139
- afterPropertyValue() {
1140
- if (token.type === "eof") {
1141
- throw invalidEOF();
1142
- }
1143
- switch (token.value) {
1144
- case ",":
1145
- parseState = "beforePropertyName";
1146
- return;
1147
- case "}":
1148
- pop();
1149
- }
1150
- },
1151
- afterArrayValue() {
1152
- if (token.type === "eof") {
1153
- throw invalidEOF();
1154
- }
1155
- switch (token.value) {
1156
- case ",":
1157
- parseState = "beforeArrayValue";
1158
- return;
1159
- case "]":
1160
- pop();
1161
- }
1162
- },
1163
- end() {
1164
- }
1165
- };
1166
- function push() {
1167
- let value;
1168
- switch (token.type) {
1169
- case "punctuator":
1170
- switch (token.value) {
1171
- case "{":
1172
- value = {};
1173
- break;
1174
- case "[":
1175
- value = [];
1176
- break;
1177
- }
1178
- break;
1179
- case "null":
1180
- case "boolean":
1181
- case "numeric":
1182
- case "string":
1183
- value = token.value;
1184
- break;
1185
- }
1186
- if (root === void 0) {
1187
- root = value;
1188
- } else {
1189
- const parent = stack[stack.length - 1];
1190
- if (Array.isArray(parent)) {
1191
- parent.push(value);
1192
- } else {
1193
- Object.defineProperty(parent, key, {
1194
- value,
1195
- writable: true,
1196
- enumerable: true,
1197
- configurable: true
1198
- });
1199
- }
1200
- }
1201
- if (value !== null && typeof value === "object") {
1202
- stack.push(value);
1203
- if (Array.isArray(value)) {
1204
- parseState = "beforeArrayValue";
1205
- } else {
1206
- parseState = "beforePropertyName";
1207
- }
1208
- } else {
1209
- const current = stack[stack.length - 1];
1210
- if (current == null) {
1211
- parseState = "end";
1212
- } else if (Array.isArray(current)) {
1213
- parseState = "afterArrayValue";
1214
- } else {
1215
- parseState = "afterPropertyValue";
1216
- }
1217
- }
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
- }
330
+ if (!this.contentRootPath) {
331
+ this.contentRootPath = this.rootPath;
1229
332
  }
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;
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;
1269
346
  }
1270
- function syntaxError(message) {
1271
- const err = new SyntaxError(message);
1272
- err.lineNumber = line;
1273
- err.columnNumber = column;
1274
- return err;
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;
1275
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
+ );
1276
356
  }
1277
- });
1278
-
1279
- // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js
1280
- var require_stringify = __commonJS({
1281
- "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/stringify.js"(exports, module2) {
1282
- var util = require_util();
1283
- module2.exports = function stringify(value, replacer, space) {
1284
- const stack = [];
1285
- let indent = "";
1286
- let propertyList;
1287
- let replacerFunc;
1288
- let gap = "";
1289
- let quote;
1290
- if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
1291
- space = replacer.space;
1292
- quote = replacer.quote;
1293
- replacer = replacer.replacer;
1294
- }
1295
- if (typeof replacer === "function") {
1296
- replacerFunc = replacer;
1297
- } else if (Array.isArray(replacer)) {
1298
- propertyList = [];
1299
- for (const v of replacer) {
1300
- let item;
1301
- if (typeof v === "string") {
1302
- item = v;
1303
- } else if (typeof v === "number" || v instanceof String || v instanceof Number) {
1304
- item = String(v);
1305
- }
1306
- if (item !== void 0 && propertyList.indexOf(item) < 0) {
1307
- propertyList.push(item);
1308
- }
1309
- }
1310
- }
1311
- if (space instanceof Number) {
1312
- space = Number(space);
1313
- } else if (space instanceof String) {
1314
- space = String(space);
1315
- }
1316
- if (typeof space === "number") {
1317
- if (space > 0) {
1318
- space = Math.min(10, Math.floor(space));
1319
- gap = " ".substr(0, space);
1320
- }
1321
- } else if (typeof space === "string") {
1322
- gap = space.substr(0, 10);
1323
- }
1324
- return serializeProperty("", { "": value });
1325
- function serializeProperty(key, holder) {
1326
- let value2 = holder[key];
1327
- if (value2 != null) {
1328
- if (typeof value2.toJSON5 === "function") {
1329
- value2 = value2.toJSON5(key);
1330
- } else if (typeof value2.toJSON === "function") {
1331
- value2 = value2.toJSON(key);
1332
- }
1333
- }
1334
- if (replacerFunc) {
1335
- value2 = replacerFunc.call(holder, key, value2);
1336
- }
1337
- if (value2 instanceof Number) {
1338
- value2 = Number(value2);
1339
- } else if (value2 instanceof String) {
1340
- value2 = String(value2);
1341
- } else if (value2 instanceof Boolean) {
1342
- value2 = value2.valueOf();
1343
- }
1344
- switch (value2) {
1345
- case null:
1346
- return "null";
1347
- case true:
1348
- return "true";
1349
- case false:
1350
- return "false";
1351
- }
1352
- if (typeof value2 === "string") {
1353
- return quoteString(value2, false);
1354
- }
1355
- if (typeof value2 === "number") {
1356
- return String(value2);
1357
- }
1358
- if (typeof value2 === "object") {
1359
- return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2);
1360
- }
1361
- return void 0;
1362
- }
1363
- function quoteString(value2) {
1364
- const quotes = {
1365
- "'": 0.1,
1366
- '"': 0.2
1367
- };
1368
- const replacements = {
1369
- "'": "\\'",
1370
- '"': '\\"',
1371
- "\\": "\\\\",
1372
- "\b": "\\b",
1373
- "\f": "\\f",
1374
- "\n": "\\n",
1375
- "\r": "\\r",
1376
- " ": "\\t",
1377
- "\v": "\\v",
1378
- "\0": "\\0",
1379
- "\u2028": "\\u2028",
1380
- "\u2029": "\\u2029"
1381
- };
1382
- let product = "";
1383
- for (let i = 0; i < value2.length; i++) {
1384
- const c = value2[i];
1385
- switch (c) {
1386
- case "'":
1387
- case '"':
1388
- quotes[c]++;
1389
- product += c;
1390
- continue;
1391
- case "\0":
1392
- if (util.isDigit(value2[i + 1])) {
1393
- product += "\\x00";
1394
- continue;
1395
- }
1396
- }
1397
- if (replacements[c]) {
1398
- product += replacements[c];
1399
- continue;
1400
- }
1401
- if (c < " ") {
1402
- let hexString = c.charCodeAt(0).toString(16);
1403
- product += "\\x" + ("00" + hexString).substring(hexString.length);
1404
- continue;
1405
- }
1406
- product += c;
1407
- }
1408
- const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b);
1409
- product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
1410
- return quoteChar + product + quoteChar;
1411
- }
1412
- function serializeObject(value2) {
1413
- if (stack.indexOf(value2) >= 0) {
1414
- throw TypeError("Converting circular structure to JSON5");
1415
- }
1416
- stack.push(value2);
1417
- let stepback = indent;
1418
- indent = indent + gap;
1419
- let keys = propertyList || Object.keys(value2);
1420
- let partial = [];
1421
- for (const key of keys) {
1422
- const propertyString = serializeProperty(key, value2);
1423
- if (propertyString !== void 0) {
1424
- let member = serializeKey(key) + ":";
1425
- if (gap !== "") {
1426
- member += " ";
1427
- }
1428
- member += propertyString;
1429
- partial.push(member);
1430
- }
1431
- }
1432
- let final;
1433
- if (partial.length === 0) {
1434
- final = "{}";
1435
- } else {
1436
- let properties;
1437
- if (gap === "") {
1438
- properties = partial.join(",");
1439
- final = "{" + properties + "}";
1440
- } else {
1441
- let separator = ",\n" + indent;
1442
- properties = partial.join(separator);
1443
- final = "{\n" + indent + properties + ",\n" + stepback + "}";
1444
- }
1445
- }
1446
- stack.pop();
1447
- indent = stepback;
1448
- return final;
1449
- }
1450
- function serializeKey(key) {
1451
- if (key.length === 0) {
1452
- return quoteString(key, true);
1453
- }
1454
- const firstChar = String.fromCodePoint(key.codePointAt(0));
1455
- if (!util.isIdStartChar(firstChar)) {
1456
- return quoteString(key, true);
1457
- }
1458
- for (let i = firstChar.length; i < key.length; i++) {
1459
- if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {
1460
- return quoteString(key, true);
1461
- }
1462
- }
1463
- return key;
1464
- }
1465
- function serializeArray(value2) {
1466
- if (stack.indexOf(value2) >= 0) {
1467
- throw TypeError("Converting circular structure to JSON5");
1468
- }
1469
- stack.push(value2);
1470
- let stepback = indent;
1471
- indent = indent + gap;
1472
- let partial = [];
1473
- for (let i = 0; i < value2.length; i++) {
1474
- const propertyString = serializeProperty(String(i), value2);
1475
- partial.push(propertyString !== void 0 ? propertyString : "null");
1476
- }
1477
- let final;
1478
- if (partial.length === 0) {
1479
- final = "[]";
1480
- } else {
1481
- if (gap === "") {
1482
- let properties = partial.join(",");
1483
- final = "[" + properties + "]";
1484
- } else {
1485
- let separator = ",\n" + indent;
1486
- let properties = partial.join(separator);
1487
- final = "[\n" + indent + properties + ",\n" + stepback + "]";
1488
- }
1489
- }
1490
- stack.pop();
1491
- indent = stepback;
1492
- return final;
1493
- }
1494
- };
1495
- }
1496
- });
1497
-
1498
- // ../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js
1499
- var require_lib = __commonJS({
1500
- "../../../node_modules/.pnpm/json5@2.2.3/node_modules/json5/lib/index.js"(exports, module2) {
1501
- var parse2 = require_parse();
1502
- var stringify = require_stringify();
1503
- var JSON5 = {
1504
- parse: parse2,
1505
- stringify
1506
- };
1507
- module2.exports = JSON5;
1508
- }
1509
- });
1510
-
1511
- // ../../../node_modules/.pnpm/strip-bom@3.0.0/node_modules/strip-bom/index.js
1512
- var require_strip_bom = __commonJS({
1513
- "../../../node_modules/.pnpm/strip-bom@3.0.0/node_modules/strip-bom/index.js"(exports, module2) {
1514
- "use strict";
1515
- module2.exports = (x) => {
1516
- if (typeof x !== "string") {
1517
- throw new TypeError("Expected a string, got " + typeof x);
1518
- }
1519
- if (x.charCodeAt(0) === 65279) {
1520
- return x.slice(1);
1521
- }
1522
- return x;
1523
- };
1524
- }
1525
- });
1526
-
1527
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/tsconfig-loader.js
1528
- var require_tsconfig_loader = __commonJS({
1529
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/tsconfig-loader.js"(exports) {
1530
- "use strict";
1531
- var __assign = exports && exports.__assign || function() {
1532
- __assign = Object.assign || function(t) {
1533
- for (var s2, i = 1, n = arguments.length; i < n; i++) {
1534
- s2 = arguments[i];
1535
- for (var p in s2)
1536
- if (Object.prototype.hasOwnProperty.call(s2, p))
1537
- t[p] = s2[p];
1538
- }
1539
- return t;
1540
- };
1541
- return __assign.apply(this, arguments);
1542
- };
1543
- Object.defineProperty(exports, "__esModule", { value: true });
1544
- exports.loadTsconfig = exports.walkForTsConfig = exports.tsConfigLoader = void 0;
1545
- var path15 = require("path");
1546
- var fs15 = require("fs");
1547
- var JSON5 = require_lib();
1548
- var StripBom = require_strip_bom();
1549
- function tsConfigLoader(_a) {
1550
- var getEnv = _a.getEnv, cwd = _a.cwd, _b = _a.loadSync, loadSync = _b === void 0 ? loadSyncDefault : _b;
1551
- var TS_NODE_PROJECT = getEnv("TS_NODE_PROJECT");
1552
- var TS_NODE_BASEURL = getEnv("TS_NODE_BASEURL");
1553
- var loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);
1554
- return loadResult;
1555
- }
1556
- exports.tsConfigLoader = tsConfigLoader;
1557
- function loadSyncDefault(cwd, filename, baseUrl) {
1558
- var configPath = resolveConfigPath(cwd, filename);
1559
- if (!configPath) {
1560
- return {
1561
- tsConfigPath: void 0,
1562
- baseUrl: void 0,
1563
- paths: void 0
1564
- };
1565
- }
1566
- var config2 = loadTsconfig(configPath);
357
+ getTinaGraphQLVersion() {
358
+ if (this.tinaGraphQLVersionFromCLI) {
359
+ const version2 = this.tinaGraphQLVersionFromCLI.split(".");
1567
360
  return {
1568
- tsConfigPath: configPath,
1569
- baseUrl: baseUrl || config2 && config2.compilerOptions && config2.compilerOptions.baseUrl,
1570
- paths: config2 && config2.compilerOptions && config2.compilerOptions.paths
361
+ fullVersion: this.tinaGraphQLVersionFromCLI,
362
+ major: version2[0] || "x",
363
+ minor: version2[1] || "x",
364
+ patch: version2[2] || "x"
1571
365
  };
1572
366
  }
1573
- function resolveConfigPath(cwd, filename) {
1574
- if (filename) {
1575
- var absolutePath = fs15.lstatSync(filename).isDirectory() ? path15.resolve(filename, "./tsconfig.json") : path15.resolve(cwd, filename);
1576
- return absolutePath;
1577
- }
1578
- if (fs15.statSync(cwd).isFile()) {
1579
- return path15.resolve(cwd);
1580
- }
1581
- var configAbsolutePath = walkForTsConfig(cwd);
1582
- return configAbsolutePath ? path15.resolve(configAbsolutePath) : void 0;
1583
- }
1584
- function walkForTsConfig(directory, readdirSync) {
1585
- if (readdirSync === void 0) {
1586
- readdirSync = fs15.readdirSync;
1587
- }
1588
- var files = readdirSync(directory);
1589
- var filesToCheck = ["tsconfig.json", "jsconfig.json"];
1590
- for (var _i = 0, filesToCheck_1 = filesToCheck; _i < filesToCheck_1.length; _i++) {
1591
- var fileToCheck = filesToCheck_1[_i];
1592
- if (files.indexOf(fileToCheck) !== -1) {
1593
- return path15.join(directory, fileToCheck);
1594
- }
1595
- }
1596
- var parentDirectory = path15.dirname(directory);
1597
- if (directory === parentDirectory) {
1598
- return void 0;
1599
- }
1600
- return walkForTsConfig(parentDirectory, readdirSync);
1601
- }
1602
- exports.walkForTsConfig = walkForTsConfig;
1603
- function loadTsconfig(configFilePath, existsSync, readFileSync) {
1604
- if (existsSync === void 0) {
1605
- existsSync = fs15.existsSync;
1606
- }
1607
- if (readFileSync === void 0) {
1608
- readFileSync = function(filename) {
1609
- return fs15.readFileSync(filename, "utf8");
1610
- };
1611
- }
1612
- if (!existsSync(configFilePath)) {
1613
- return void 0;
1614
- }
1615
- var configString = readFileSync(configFilePath);
1616
- var cleanedJson = StripBom(configString);
1617
- var config2;
1618
- try {
1619
- config2 = JSON5.parse(cleanedJson);
1620
- } catch (e) {
1621
- throw new Error("".concat(configFilePath, " is malformed ").concat(e.message));
1622
- }
1623
- var extendedConfig = config2.extends;
1624
- if (extendedConfig) {
1625
- var base = void 0;
1626
- if (Array.isArray(extendedConfig)) {
1627
- base = extendedConfig.reduce(function(currBase, extendedConfigElement) {
1628
- return mergeTsconfigs(currBase, loadTsconfigFromExtends(configFilePath, extendedConfigElement, existsSync, readFileSync));
1629
- }, {});
1630
- } else {
1631
- base = loadTsconfigFromExtends(configFilePath, extendedConfig, existsSync, readFileSync);
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 = path15.dirname(configFilePath);
1644
- var extendedConfigPath = path15.join(currentDir, extendedConfigValue);
1645
- if (extendedConfigValue.indexOf("/") !== -1 && extendedConfigValue.indexOf(".") !== -1 && !existsSync(extendedConfigPath)) {
1646
- extendedConfigPath = path15.join(currentDir, "node_modules", extendedConfigValue);
1647
- }
1648
- var config2 = loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};
1649
- if ((_a = config2.compilerOptions) === null || _a === void 0 ? void 0 : _a.baseUrl) {
1650
- var extendsDir = path15.dirname(extendedConfigValue);
1651
- config2.compilerOptions.baseUrl = path15.join(extendsDir, config2.compilerOptions.baseUrl);
1652
- }
1653
- return config2;
1654
- }
1655
- function mergeTsconfigs(base, config2) {
1656
- base = base || {};
1657
- config2 = config2 || {};
1658
- return __assign(__assign(__assign({}, base), config2), { compilerOptions: __assign(__assign({}, base.compilerOptions), config2.compilerOptions) });
367
+ const generatedSchema = import_fs_extra.default.readJSONSync(this.generatedSchemaJSONPath);
368
+ if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined")) {
369
+ throw new Error(
370
+ `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
371
+ );
1659
372
  }
373
+ return generatedSchema.version;
1660
374
  }
1661
- });
1662
-
1663
- // ../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/config-loader.js
1664
- var require_config_loader = __commonJS({
1665
- "../../../node_modules/.pnpm/tsconfig-paths@4.2.0/node_modules/tsconfig-paths/lib/config-loader.js"(exports) {
1666
- "use strict";
1667
- Object.defineProperty(exports, "__esModule", { value: true });
1668
- exports.configLoader = exports.loadConfig = void 0;
1669
- var TsConfigLoader2 = require_tsconfig_loader();
1670
- var path15 = require("path");
1671
- function loadConfig2(cwd) {
1672
- if (cwd === void 0) {
1673
- cwd = process.cwd();
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 = path15.isAbsolute(explicitParams.baseUrl) ? explicitParams.baseUrl : path15.join(cwd, explicitParams.baseUrl);
1682
- return {
1683
- resultType: "success",
1684
- configFileAbsolutePath: "",
1685
- baseUrl: explicitParams.baseUrl,
1686
- absoluteBaseUrl,
1687
- paths: explicitParams.paths,
1688
- mainFields: explicitParams.mainFields,
1689
- addMatchAll: explicitParams.addMatchAll
1690
- };
1691
- }
1692
- var loadResult = tsConfigLoader({
1693
- cwd,
1694
- getEnv: function(key) {
1695
- return process.env[key];
1696
- }
1697
- });
1698
- if (!loadResult.tsConfigPath) {
1699
- return {
1700
- resultType: "failed",
1701
- message: "Couldn't find tsconfig.json"
1702
- };
1703
- }
1704
- return {
1705
- resultType: "success",
1706
- configFileAbsolutePath: loadResult.tsConfigPath,
1707
- baseUrl: loadResult.baseUrl,
1708
- absoluteBaseUrl: path15.resolve(path15.dirname(loadResult.tsConfigPath), loadResult.baseUrl || ""),
1709
- paths: loadResult.paths || {},
1710
- addMatchAll: loadResult.baseUrl !== void 0
1711
- };
375
+ printGeneratedClientFilePath() {
376
+ if (this.isUsingTs()) {
377
+ return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
1712
378
  }
1713
- exports.configLoader = configLoader;
379
+ return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
1714
380
  }
1715
- });
1716
-
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);
381
+ printGeneratedTypesFilePath() {
382
+ return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
383
+ }
384
+ printoutputHTMLFilePath() {
385
+ return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
386
+ }
387
+ printRelativePath(filename) {
388
+ if (filename) {
389
+ return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
1737
390
  }
1738
- function isConstructorOrProto(obj, key) {
1739
- return key === "constructor" && typeof obj[key] === "function" || key === "__proto__";
391
+ throw `No path provided to print`;
392
+ }
393
+ printPrebuildFilePath() {
394
+ return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
395
+ }
396
+ printContentRelativePath(filename) {
397
+ if (filename) {
398
+ return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
1740
399
  }
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)) {
400
+ throw `No path provided to print`;
401
+ }
402
+ async getPathWithExtension(filepath) {
403
+ const extensions = ["tsx", "ts", "jsx", "js"];
404
+ let result;
405
+ await Promise.all(
406
+ extensions.map(async (ext) => {
407
+ if (result) {
1807
408
  return;
1808
409
  }
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
- }
410
+ const filepathWithExtension = `${filepath}.${ext}`;
411
+ const exists = import_fs_extra.default.existsSync(filepathWithExtension);
412
+ if (exists) {
413
+ result = filepathWithExtension;
1828
414
  }
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
- };
415
+ })
416
+ );
417
+ return result;
1936
418
  }
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;
419
+ async loadDatabaseFile() {
420
+ const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
421
+ const outfile = import_path.default.join(tmpdir, "database.build.js");
422
+ await esbuild.build({
423
+ entryPoints: [this.selfHostedDatabaseFilePath],
424
+ bundle: true,
425
+ platform: "node",
426
+ outfile,
427
+ loader: loaders
428
+ });
429
+ const result = require(outfile);
430
+ import_fs_extra.default.removeSync(outfile);
431
+ return result.default;
432
+ }
433
+ async loadConfigFile(generatedFolderPath, configFilePath) {
434
+ const tmpdir = import_path.default.join(import_os.default.tmpdir(), Date.now().toString());
435
+ const prebuild = import_path.default.join(this.generatedFolderPath, "config.prebuild.jsx");
436
+ const outfile = import_path.default.join(tmpdir, "config.build.jsx");
437
+ const outfile2 = import_path.default.join(tmpdir, "config.build.js");
438
+ const tempTSConfigFile = import_path.default.join(tmpdir, "tsconfig.json");
439
+ import_fs_extra.default.outputFileSync(tempTSConfigFile, "{}");
440
+ const result2 = await esbuild.build({
441
+ entryPoints: [configFilePath],
442
+ bundle: true,
443
+ target: ["es2020"],
444
+ platform: "browser",
445
+ format: "esm",
446
+ logLevel: "silent",
447
+ packages: "external",
448
+ ignoreAnnotations: true,
449
+ outfile: prebuild,
450
+ loader: loaders,
451
+ metafile: true
452
+ });
453
+ const flattenedList = [];
454
+ Object.keys(result2.metafile.inputs).forEach((key) => {
455
+ if (key.includes("node_modules") || key.includes("__generated__")) {
456
+ return;
2023
457
  }
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
- };
458
+ flattenedList.push(key);
459
+ });
460
+ await esbuild.build({
461
+ entryPoints: [configFilePath],
462
+ bundle: true,
463
+ target: ["es2020"],
464
+ logLevel: "silent",
465
+ platform: "node",
466
+ outfile,
467
+ loader: loaders
468
+ });
469
+ await esbuild.build({
470
+ entryPoints: [outfile],
471
+ bundle: true,
472
+ logLevel: "silent",
473
+ platform: "node",
474
+ outfile: outfile2,
475
+ loader: loaders
476
+ });
477
+ let result;
478
+ try {
479
+ result = require(outfile2);
480
+ } catch (e) {
481
+ console.error("Unexpected error loading config");
482
+ console.error(e);
483
+ throw e;
2042
484
  }
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
- } });
485
+ import_fs_extra.default.removeSync(outfile);
486
+ import_fs_extra.default.removeSync(outfile2);
487
+ return {
488
+ config: result.default,
489
+ prebuildPath: prebuild,
490
+ watchList: flattenedList
491
+ };
2075
492
  }
2076
- });
493
+ };
494
+ var loaders = {
495
+ ".aac": "file",
496
+ ".css": "file",
497
+ ".eot": "file",
498
+ ".flac": "file",
499
+ ".gif": "file",
500
+ ".jpeg": "file",
501
+ ".jpg": "file",
502
+ ".json": "json",
503
+ ".mp3": "file",
504
+ ".mp4": "file",
505
+ ".ogg": "file",
506
+ ".otf": "file",
507
+ ".png": "file",
508
+ ".svg": "file",
509
+ ".ttf": "file",
510
+ ".wav": "file",
511
+ ".webm": "file",
512
+ ".webp": "file",
513
+ ".woff": "file",
514
+ ".woff2": "file",
515
+ ".js": "jsx",
516
+ ".jsx": "jsx",
517
+ ".tsx": "tsx"
518
+ };
2077
519
 
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");
520
+ // src/next/commands/dev-command/html.ts
521
+ var errorHTML = `<style type="text/css">
522
+ #no-assets-placeholder body {
523
+ font-family: sans-serif;
524
+ font-size: 16px;
525
+ line-height: 1.4;
526
+ color: #333;
527
+ background-color: #f5f5f5;
528
+ }
529
+ #no-assets-placeholder {
530
+ max-width: 600px;
531
+ margin: 0 auto;
532
+ padding: 40px;
533
+ text-align: center;
534
+ background-color: #fff;
535
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
536
+ }
537
+ #no-assets-placeholder h1 {
538
+ font-size: 24px;
539
+ margin-bottom: 20px;
540
+ }
541
+ #no-assets-placeholder p {
542
+ margin-bottom: 10px;
543
+ }
544
+ #no-assets-placeholder a {
545
+ color: #0077cc;
546
+ text-decoration: none;
547
+ }
548
+ #no-assets-placeholder a:hover {
549
+ text-decoration: underline;
550
+ }
551
+ </style>
552
+ <div id="no-assets-placeholder">
553
+ <h1>Failed loading TinaCMS assets</h1>
554
+ <p>
555
+ Your TinaCMS configuration may be misconfigured, and we could not load
556
+ the assets for this page.
557
+ </p>
558
+ <p>
559
+ 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.
560
+ </p>
561
+ </div>
562
+ </div>`.trim().replace(/[\r\n\s]+/g, " ");
563
+ var devHTML = (port) => `<!DOCTYPE html>
564
+ <html lang="en">
565
+ <head>
566
+ <meta charset="UTF-8" />
567
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
568
+ <title>TinaCMS</title>
569
+ </head>
2085
570
 
2086
- // package.json
2087
- var version = "1.7.0";
571
+ <!-- if development -->
572
+ <script type="module">
573
+ import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
574
+ RefreshRuntime.injectIntoGlobalHook(window)
575
+ window.$RefreshReg$ = () => {}
576
+ window.$RefreshSig$ = () => (type) => type
577
+ window.__vite_plugin_react_preamble_installed__ = true
578
+ <\/script>
579
+ <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
580
+ <script>
581
+ function handleLoadError() {
582
+ // Assets have failed to load
583
+ document.getElementById('root').innerHTML = '${errorHTML}';
584
+ }
585
+ <\/script>
586
+ <script
587
+ type="module"
588
+ src="http://localhost:${port}/src/main.tsx"
589
+ onerror="handleLoadError()"
590
+ ><\/script>
591
+ <body class="tina-tailwind">
592
+ <div id="root"></div>
593
+ </body>
594
+ </html>`;
2088
595
 
2089
- // src/next/commands/dev-command/index.ts
2090
- var import_clipanion2 = require("clipanion");
2091
- var import_fs_extra6 = __toESM(require("fs-extra"));
2092
- var import_path6 = __toESM(require("path"));
2093
- var import_chokidar = __toESM(require("chokidar"));
2094
- var import_graphql10 = require("@tinacms/graphql");
596
+ // src/utils/theme.ts
597
+ var import_chalk3 = __toESM(require("chalk"));
598
+ var successText = import_chalk3.default.bold.green;
599
+ var focusText = import_chalk3.default.bold;
600
+ var dangerText = import_chalk3.default.bold.red;
601
+ var neutralText = import_chalk3.default.bold.cyan;
602
+ var linkText = import_chalk3.default.bold.cyan;
603
+ var labelText = import_chalk3.default.bold;
604
+ var cmdText = import_chalk3.default.inverse;
605
+ var indentedCmd = (str) => {
606
+ return ` \u2503 ` + str;
607
+ };
608
+ var indentText = (str) => {
609
+ return String(str).split("\n").map((line) => ` ${line}`).join("\n");
610
+ };
611
+ var logText = import_chalk3.default.italic.gray;
612
+ var warnText = import_chalk3.default.yellowBright.bgBlack;
613
+ var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
614
+ var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
2095
615
 
2096
- // src/next/config-manager.ts
2097
- var import_fs_extra2 = __toESM(require("fs-extra"));
2098
- var import_path2 = __toESM(require("path"));
2099
- var import_os = __toESM(require("os"));
2100
- var esbuild = __toESM(require("esbuild"));
2101
- var dotenv = __toESM(require("dotenv"));
2102
- var import_normalize_path2 = __toESM(require("normalize-path"));
2103
- var import_chalk2 = __toESM(require("chalk"));
616
+ // src/next/commands/dev-command/server/index.ts
617
+ var import_vite3 = require("vite");
2104
618
 
2105
619
  // src/next/vite/index.ts
2106
620
  var import_node_path2 = __toESM(require("path"));
2107
621
  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"));
622
+ var import_fs_extra2 = __toESM(require("fs-extra"));
623
+ var import_normalize_path2 = __toESM(require("normalize-path"));
2110
624
  var import_vite = require("vite");
2111
625
 
2112
626
  // src/next/vite/tailwind.ts
@@ -2273,936 +787,296 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
2273
787
  103: "1.03"
2274
788
  },
2275
789
  transitionDuration: {
2276
- 0: "0ms",
2277
- 2e3: "2000ms"
2278
- },
2279
- boxShadow: {
2280
- xs: "0 0 0 1px rgba(0, 0, 0, 0.05)",
2281
- outline: "0 0 0 3px rgba(66, 153, 225, 0.5)"
2282
- },
2283
- colors: {
2284
- blue: {
2285
- 50: "#DCEEFF",
2286
- 100: "#B4DBFF",
2287
- 200: "#85C5FE",
2288
- 300: "#4EABFE",
2289
- 400: "#2296fe",
2290
- 500: "#0084FF",
2291
- 600: "#0574e4",
2292
- 700: "#0D5DBD",
2293
- 800: "#144696",
2294
- 900: "#1D2C6C",
2295
- 1e3: "#241748"
2296
- },
2297
- gray: {
2298
- 50: "#F6F6F9",
2299
- 100: "#EDECF3",
2300
- 150: "#E6E3EF",
2301
- 200: "#E1DDEC",
2302
- 250: "#C9C5D5",
2303
- 300: "#b2adbe",
2304
- 400: "#918c9e",
2305
- 500: "#716c7f",
2306
- 600: "#565165",
2307
- 700: "#433e52",
2308
- 800: "#363145",
2309
- 900: "#252336",
2310
- 1e3: "#1c1b2e"
2311
- },
2312
- orange: {
2313
- 400: "#EB6337",
2314
- 500: "#EC4815",
2315
- 600: "#DC4419"
2316
- },
2317
- background: "#FFFFFF",
2318
- foreground: "#0A0A0A",
2319
- muted: "#F5F5F5",
2320
- "muted-foreground": "#737373",
2321
- popover: "#FFFFFF",
2322
- "popover-foreground": "#0A0A0A",
2323
- card: "#FFFFFF",
2324
- "card-foreground": "#0A0A0A",
2325
- border: "#E5E5E5",
2326
- input: "#E5E5E5",
2327
- primary: "#171717",
2328
- "primary-foreground": "#FAFAFA",
2329
- secondary: "#F5F5F5",
2330
- "secondary-foreground": "#171717",
2331
- accent: "#F5F5F5",
2332
- "accent-foreground": "#171717",
2333
- destructive: "#FF3B3B",
2334
- "destructive-foreground": "#FAFAFA",
2335
- ring: "#0A0A0A"
2336
- },
2337
- fontFamily: {
2338
- sans: ["Inter", ...import_defaultTheme.default.fontFamily.sans]
2339
- },
2340
- lineHeight: {
2341
- 3: "12px",
2342
- 4: "16px",
2343
- 5: "20px",
2344
- 6: "24px",
2345
- 7: "28px",
2346
- 8: "32px",
2347
- 9: "36px",
2348
- 10: "40px"
2349
- },
2350
- maxWidth: {
2351
- form: "900px"
2352
- },
2353
- screens: {
2354
- xs: "320px",
2355
- sm: "560px",
2356
- md: "720px",
2357
- lg: "1030px"
2358
- }
2359
- }
2360
- },
2361
- content,
2362
- plugins: [
2363
- (0, import_typography.default)({ className: "tina-prose" }),
2364
- import_aspect_ratio.default,
2365
- import_container_queries.default
2366
- ]
2367
- });
2368
- plugins.push(tw);
2369
- return {
2370
- css: {
2371
- postcss: {
2372
- plugins
2373
- }
2374
- }
2375
- };
2376
- }
2377
- };
2378
- };
2379
-
2380
- // src/next/vite/index.ts
2381
- async function listFilesRecursively({
2382
- directoryPath,
2383
- config: config2,
2384
- roothPath
2385
- }) {
2386
- const fullDirectoryPath = import_node_path2.default.join(
2387
- roothPath,
2388
- config2.publicFolder,
2389
- directoryPath
2390
- );
2391
- const exists = await import_fs_extra.default.pathExists(fullDirectoryPath);
2392
- if (!exists) {
2393
- return { "0": [] };
2394
- }
2395
- const items = await import_fs_extra.default.readdir(fullDirectoryPath);
2396
- const staticMediaItems = [];
2397
- for (const item of items) {
2398
- const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
2399
- const stats = await import_fs_extra.default.promises.lstat(itemPath);
2400
- const staticMediaItem = {
2401
- id: item,
2402
- filename: item,
2403
- type: stats.isDirectory() ? "dir" : "file",
2404
- directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
2405
- src: `/${import_node_path2.default.join(directoryPath, item)}`,
2406
- thumbnails: {
2407
- "75x75": `/${import_node_path2.default.join(directoryPath, item)}`,
2408
- "400x400": `/${import_node_path2.default.join(directoryPath, item)}`,
2409
- "1000x1000": `/${import_node_path2.default.join(directoryPath, item)}`
2410
- }
2411
- };
2412
- if (stats.isDirectory()) {
2413
- staticMediaItem.children = await listFilesRecursively({
2414
- directoryPath: import_node_path2.default.join(directoryPath, item),
2415
- config: config2,
2416
- roothPath
2417
- });
2418
- }
2419
- staticMediaItems.push(staticMediaItem);
2420
- }
2421
- function chunkArrayIntoObject(array, chunkSize) {
2422
- const result = {};
2423
- for (let i = 0; i < array.length; i += chunkSize) {
2424
- const chunkKey = `${i / chunkSize * 20}`;
2425
- result[chunkKey] = array.slice(i, i + chunkSize);
2426
- }
2427
- return result;
2428
- }
2429
- return chunkArrayIntoObject(staticMediaItems, 20);
2430
- }
2431
- var loadProjectConfig = async ({
2432
- rootPath,
2433
- viteConfigEnv
2434
- }) => {
2435
- if (viteConfigEnv) {
2436
- const configFileJs = import_node_path2.default.join(rootPath, "vite.config.js");
2437
- const configFileTs = import_node_path2.default.join(rootPath, "vite.config.ts");
2438
- if (import_fs_extra.default.existsSync(configFileJs)) {
2439
- return await (0, import_vite.loadConfigFromFile)(viteConfigEnv, configFileJs);
2440
- } else if (import_fs_extra.default.existsSync(configFileTs)) {
2441
- return await (0, import_vite.loadConfigFromFile)(viteConfigEnv, configFileTs);
2442
- }
2443
- }
2444
- return { config: {} };
2445
- };
2446
- var createConfig = async ({
2447
- configManager,
2448
- database,
2449
- apiURL,
2450
- plugins = [],
2451
- noWatch,
2452
- rollupOptions,
2453
- viteConfigEnv
2454
- }) => {
2455
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2456
- const projectConfig = await loadProjectConfig({
2457
- rootPath: configManager.rootPath,
2458
- viteConfigEnv
2459
- });
2460
- const publicEnv = {};
2461
- Object.keys(process.env).forEach((key) => {
2462
- if (key.startsWith("TINA_PUBLIC_") || key.startsWith("NEXT_PUBLIC_") || key === "NODE_ENV" || key === "HEAD") {
2463
- try {
2464
- if (typeof process.env[key] === "string") {
2465
- publicEnv[key] = process.env[key];
2466
- } else {
2467
- publicEnv[key] = JSON.stringify(process.env[key]);
2468
- }
2469
- } catch (error) {
2470
- console.warn(
2471
- `Could not stringify public env process.env.${key} env variable`
2472
- );
2473
- console.warn(error);
2474
- }
2475
- }
2476
- });
2477
- const staticMediaPath = import_node_path2.default.join(
2478
- configManager.generatedFolderPath,
2479
- "static-media.json"
2480
- );
2481
- if ((_b = (_a = configManager.config.media) == null ? void 0 : _a.tina) == null ? void 0 : _b.static) {
2482
- const staticMedia = await listFilesRecursively({
2483
- directoryPath: ((_c = configManager.config.media.tina) == null ? void 0 : _c.mediaRoot) || "",
2484
- config: configManager.config.media.tina,
2485
- roothPath: configManager.rootPath
2486
- });
2487
- await import_fs_extra.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
2488
- } else {
2489
- await import_fs_extra.default.outputFile(staticMediaPath, `[]`);
2490
- }
2491
- const alias = {
2492
- TINA_IMPORT: configManager.prebuildFilePath,
2493
- SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
2494
- STATIC_MEDIA_IMPORT: staticMediaPath,
2495
- crypto: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2496
- fs: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2497
- os: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
2498
- path: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
2499
- };
2500
- if (configManager.shouldSkipSDK()) {
2501
- alias["CLIENT_IMPORT"] = import_node_path2.default.join(
2502
- configManager.spaRootPath,
2503
- "src",
2504
- "dummy-client.ts"
2505
- );
2506
- } else {
2507
- alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
2508
- }
2509
- let basePath;
2510
- if (configManager.config.build.basePath) {
2511
- basePath = configManager.config.build.basePath;
2512
- }
2513
- const fullVersion = configManager.getTinaGraphQLVersion();
2514
- const version2 = `${fullVersion.major}.${fullVersion.minor}`;
2515
- const config2 = {
2516
- root: configManager.spaRootPath,
2517
- base: `/${basePath ? `${(0, import_normalize_path.default)(basePath)}/` : ""}${(0, import_normalize_path.default)(
2518
- configManager.config.build.outputFolder
2519
- )}/`,
2520
- appType: "spa",
2521
- resolve: {
2522
- alias: {
2523
- ...(_d = projectConfig.config.resolve) == null ? void 0 : _d.alias,
2524
- ...alias
2525
- },
2526
- dedupe: ["graphql", "tinacms", "react", "react-dom", "react-router-dom"]
2527
- },
2528
- define: {
2529
- "process.env": `new Object(${JSON.stringify(publicEnv)})`,
2530
- "process.platform": `"${process.platform}"`,
2531
- __API_URL__: `"${apiURL}"`,
2532
- __BASE_PATH__: `"${((_f = (_e = configManager.config) == null ? void 0 : _e.build) == null ? void 0 : _f.basePath) || ""}"`,
2533
- __TINA_GRAPHQL_VERSION__: version2
2534
- },
2535
- logLevel: "error",
2536
- optimizeDeps: {
2537
- force: true,
2538
- include: ["react/jsx-runtime", "react/jsx-dev-runtime"]
2539
- },
2540
- server: {
2541
- host: (_i = (_h = (_g = configManager.config) == null ? void 0 : _g.build) == null ? void 0 : _h.host) != null ? _i : false,
2542
- watch: noWatch ? {
2543
- ignored: ["**/*"]
2544
- } : {
2545
- ignored: [
2546
- `${configManager.tinaFolderPath}/**/!(config.prebuild.jsx|_graphql.json)`
2547
- ]
2548
- },
2549
- fs: {
2550
- strict: false
2551
- }
2552
- },
2553
- build: {
2554
- sourcemap: false,
2555
- outDir: configManager.outputFolderPath,
2556
- emptyOutDir: true,
2557
- rollupOptions
2558
- },
2559
- plugins: [
2560
- (0, import_plugin_react.default)({
2561
- babel: {
2562
- compact: true
2563
- }
2564
- }),
2565
- (0, import_vite.splitVendorChunkPlugin)(),
2566
- tinaTailwind(configManager.spaRootPath, configManager.prebuildFilePath),
2567
- ...plugins
2568
- ]
2569
- };
2570
- return config2;
2571
- };
2572
-
2573
- // src/next/config-manager.ts
2574
- var import_tsconfig_paths = __toESM(require_lib2());
2575
- var import_esbuild_plugin_alias_path = require("esbuild-plugin-alias-path");
2576
-
2577
- // src/logger/index.ts
2578
- var import_chalk = __toESM(require("chalk"));
2579
-
2580
- // src/logger/is-unicode-supported.ts
2581
- function isUnicodeSupported() {
2582
- if (process.platform !== "win32") {
2583
- return process.env.TERM !== "linux";
2584
- }
2585
- return Boolean(process.env.CI) || Boolean(process.env.WT_SESSION) || Boolean(process.env.TERMINUS_SUBLIME) || process.env.ConEmuTask === "{cmd::Cmder}" || process.env.TERM_PROGRAM === "Terminus-Sublime" || process.env.TERM_PROGRAM === "vscode" || process.env.TERM === "xterm-256color" || process.env.TERM === "alacritty" || process.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
2586
- }
2587
-
2588
- // src/logger/index.ts
2589
- var import_log4js = __toESM(require("log4js"));
2590
- var logger = import_log4js.default.getLogger();
2591
- import_log4js.default.configure({
2592
- appenders: {
2593
- out: { type: "stdout", layout: { type: "messagePassThrough" } }
2594
- },
2595
- categories: { default: { appenders: ["out"], level: "info" } }
2596
- });
2597
- logger.level = "info";
2598
- function ansiRegex() {
2599
- const pattern = [
2600
- "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
2601
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
2602
- ].join("|");
2603
- return new RegExp(pattern, "g");
2604
- }
2605
- var bar = "\u2502";
2606
- var strip = (str) => str.replace(ansiRegex(), "");
2607
- var note = (message = "", title = "") => {
2608
- const lines = `
2609
- ${message}
2610
- `.split("\n");
2611
- const len = lines.reduce((sum, ln) => {
2612
- ln = strip(ln);
2613
- return ln.length > sum ? ln.length : sum;
2614
- }, 0) + 2;
2615
- const msg = lines.map(
2616
- (ln) => `${import_chalk.default.gray(bar)} ${import_chalk.default.white(ln)}${" ".repeat(
2617
- len - strip(ln).length
2618
- )}${import_chalk.default.gray(bar)}`
2619
- ).join("\n");
2620
- const underscoreLen = len - title.length - 1 > 0 ? len - title.length - 1 : 0;
2621
- process.stdout.write(
2622
- `${import_chalk.default.gray(bar)}
2623
- ${import_chalk.default.green("\u25CB")} ${import_chalk.default.reset(
2624
- title
2625
- )} ${import_chalk.default.gray("\u2500".repeat(underscoreLen) + "\u256E")}
2626
- ${msg}
2627
- ${import_chalk.default.gray(
2628
- "\u251C" + "\u2500".repeat(len + 2) + "\u256F"
2629
- )}
2630
- `
2631
- );
2632
- };
2633
- var summary = (content) => {
2634
- const outString = [];
2635
- let longestKey = 0;
2636
- content.items.forEach((item) => {
2637
- item.subItems.forEach((subItem) => {
2638
- if (subItem.key.length > longestKey) {
2639
- longestKey = subItem.key.length;
2640
- }
2641
- });
2642
- });
2643
- content.items.forEach((item) => {
2644
- outString.push(`${item.emoji} ${import_chalk.default.cyan(item.heading)}`);
2645
- item.subItems.forEach((subItem) => {
2646
- const spaces = longestKey - subItem.key.length + 4;
2647
- outString.push(
2648
- ` ${subItem.key}:${[...Array(spaces)].join(" ")}${import_chalk.default.cyan(
2649
- subItem.value
2650
- )}`
2651
- );
2652
- });
2653
- outString.push(``);
2654
- });
2655
- if (process.env.CI) {
2656
- logger.info(JSON.stringify(content, null, 2));
2657
- } else {
2658
- note(outString.join("\n"), content.heading);
2659
- }
2660
- };
2661
- var unicode = isUnicodeSupported();
2662
- var s = (c, fallback) => unicode ? c : fallback;
2663
- var S_STEP_ACTIVE = s("\u25C6", "*");
2664
- var S_STEP_CANCEL = s("\u25A0", "x");
2665
- var S_STEP_ERROR = s("\u25B2", "x");
2666
- var S_STEP_SUBMIT = s("\u25C7", "o");
2667
- var S_BAR_START = s("\u250C", "T");
2668
- var S_BAR = s("\u2502", "|");
2669
- var S_BAR_END = s("\u2514", "\u2014");
2670
- var S_RADIO_ACTIVE = s("\u25CF", ">");
2671
- var S_RADIO_INACTIVE = s("\u25CB", " ");
2672
- var S_CHECKBOX_ACTIVE = s("\u25FB", "[\u2022]");
2673
- var S_CHECKBOX_SELECTED = s("\u25FC", "[+]");
2674
- var S_CHECKBOX_INACTIVE = s("\u25FB", "[ ]");
2675
- var S_PASSWORD_MASK = s("\u25AA", "\u2022");
2676
- var S_BAR_H = s("\u2500", "-");
2677
- var S_CORNER_TOP_RIGHT = s("\u256E", "+");
2678
- var S_CONNECT_LEFT = s("\u251C", "+");
2679
- var S_CORNER_BOTTOM_RIGHT = s("\u256F", "+");
2680
- var S_INFO = s("\u25CF", "\u2022");
2681
- var S_SUCCESS = s("\u25C6", "*");
2682
- var S_WARN = s("\u25B2", "!");
2683
- var S_ERROR = s("\u25A0", "x");
2684
-
2685
- // src/utils/alias-helpers.ts
2686
- var import_path = __toESM(require("path"));
2687
- function resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths) {
2688
- return Object.entries(paths).reduce((aliases, [aliasKey, aliasPaths]) => {
2689
- if (aliasKey === "@/*") {
2690
- console.warn('Ignoring "@/*" alias due to potential conflicts.');
2691
- return aliases;
2692
- }
2693
- const baseAliasPath = import_path.default.resolve(
2694
- absoluteBaseUrl,
2695
- aliasPaths[0].replace("*", "")
2696
- );
2697
- aliases[aliasKey] = baseAliasPath;
2698
- return aliases;
2699
- }, {});
2700
- }
2701
-
2702
- // src/next/config-manager.ts
2703
- var TINA_FOLDER = "tina";
2704
- var LEGACY_TINA_FOLDER = ".tina";
2705
- var GENERATED_FOLDER = "__generated__";
2706
- var GRAPHQL_JSON_FILE = "_graphql.json";
2707
- var GRAPHQL_GQL_FILE = "schema.gql";
2708
- var SCHEMA_JSON_FILE = "_schema.json";
2709
- var LOOKUP_JSON_FILE = "_lookup.json";
2710
- var ConfigManager = class {
2711
- constructor({
2712
- rootPath = process.cwd(),
2713
- tinaGraphQLVersion,
2714
- legacyNoSDK
2715
- }) {
2716
- this.rootPath = (0, import_normalize_path2.default)(rootPath);
2717
- this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
2718
- this.legacyNoSDK = legacyNoSDK;
2719
- }
2720
- isUsingTs() {
2721
- return [".ts", ".tsx"].includes(import_path2.default.extname(this.tinaConfigFilePath));
2722
- }
2723
- hasSelfHostedConfig() {
2724
- return !!this.selfHostedDatabaseFilePath;
2725
- }
2726
- hasSeparateContentRoot() {
2727
- return this.rootPath !== this.contentRootPath;
2728
- }
2729
- shouldSkipSDK() {
2730
- var _a;
2731
- if (this.legacyNoSDK) {
2732
- return this.legacyNoSDK;
2733
- }
2734
- return ((_a = this.config.client) == null ? void 0 : _a.skip) || false;
2735
- }
2736
- async processConfig() {
2737
- this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
2738
- this.envFilePath = import_path2.default.resolve(
2739
- import_path2.default.join(this.tinaFolderPath, "..", ".env")
2740
- );
2741
- dotenv.config({ path: this.envFilePath });
2742
- this.tinaConfigFilePath = await this.getPathWithExtension(
2743
- import_path2.default.join(this.tinaFolderPath, "config")
2744
- );
2745
- if (!this.tinaConfigFilePath) {
2746
- throw new Error(
2747
- `Unable to find config file in ${this.tinaFolderPath}. Looking for a file named "config.{ts,tsx,js,jsx}"`
2748
- );
2749
- }
2750
- this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
2751
- import_path2.default.join(this.tinaFolderPath, "database")
2752
- );
2753
- this.generatedFolderPath = import_path2.default.join(this.tinaFolderPath, GENERATED_FOLDER);
2754
- this.generatedCachePath = import_path2.default.join(
2755
- this.generatedFolderPath,
2756
- ".cache",
2757
- String(new Date().getTime())
2758
- );
2759
- this.generatedGraphQLGQLPath = import_path2.default.join(
2760
- this.generatedFolderPath,
2761
- GRAPHQL_GQL_FILE
2762
- );
2763
- this.generatedGraphQLJSONPath = import_path2.default.join(
2764
- this.generatedFolderPath,
2765
- GRAPHQL_JSON_FILE
2766
- );
2767
- this.generatedSchemaJSONPath = import_path2.default.join(
2768
- this.generatedFolderPath,
2769
- SCHEMA_JSON_FILE
2770
- );
2771
- this.generatedLookupJSONPath = import_path2.default.join(
2772
- this.generatedFolderPath,
2773
- LOOKUP_JSON_FILE
2774
- );
2775
- this.generatedQueriesFilePath = import_path2.default.join(
2776
- this.generatedFolderPath,
2777
- "queries.gql"
2778
- );
2779
- this.generatedFragmentsFilePath = import_path2.default.join(
2780
- this.generatedFolderPath,
2781
- "frags.gql"
2782
- );
2783
- this.generatedTypesTSFilePath = import_path2.default.join(
2784
- this.generatedFolderPath,
2785
- "types.ts"
2786
- );
2787
- this.generatedTypesJSFilePath = import_path2.default.join(
2788
- this.generatedFolderPath,
2789
- "types.js"
2790
- );
2791
- this.generatedTypesDFilePath = import_path2.default.join(
2792
- this.generatedFolderPath,
2793
- "types.d.ts"
2794
- );
2795
- this.userQueriesAndFragmentsGlob = import_path2.default.join(
2796
- this.tinaFolderPath,
2797
- "queries/**/*.{graphql,gql}"
2798
- );
2799
- this.generatedQueriesAndFragmentsGlob = import_path2.default.join(
2800
- this.generatedFolderPath,
2801
- "*.{graphql,gql}"
2802
- );
2803
- this.generatedClientTSFilePath = import_path2.default.join(
2804
- this.generatedFolderPath,
2805
- "client.ts"
2806
- );
2807
- this.generatedClientJSFilePath = import_path2.default.join(
2808
- this.generatedFolderPath,
2809
- "client.js"
2810
- );
2811
- this.generatedClientDFilePath = import_path2.default.join(
2812
- this.generatedFolderPath,
2813
- "client.d.ts"
2814
- );
2815
- this.generatedDatabaseClientDFilePath = import_path2.default.join(
2816
- this.generatedFolderPath,
2817
- "databaseClient.d.ts"
2818
- );
2819
- this.generatedDatabaseClientTSFilePath = import_path2.default.join(
2820
- this.generatedFolderPath,
2821
- "databaseClient.ts"
2822
- );
2823
- this.generatedDatabaseClientJSFilePath = import_path2.default.join(
2824
- this.generatedFolderPath,
2825
- "databaseClient.js"
2826
- );
2827
- const clientExists = this.isUsingTs() ? await import_fs_extra2.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra2.default.pathExists(this.generatedClientJSFilePath);
2828
- if (!clientExists) {
2829
- const file = "export default ()=>({})\nexport const client = ()=>({})";
2830
- if (this.isUsingTs()) {
2831
- await import_fs_extra2.default.outputFile(this.generatedClientTSFilePath, file);
2832
- } else {
2833
- await import_fs_extra2.default.outputFile(this.generatedClientJSFilePath, file);
2834
- }
2835
- }
2836
- const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
2837
- this.generatedFolderPath,
2838
- this.tinaConfigFilePath
2839
- );
2840
- this.watchList = watchList;
2841
- this.config = config2;
2842
- this.prebuildFilePath = prebuildPath;
2843
- this.publicFolderPath = import_path2.default.join(
2844
- this.rootPath,
2845
- this.config.build.publicFolder
2846
- );
2847
- this.outputFolderPath = import_path2.default.join(
2848
- this.publicFolderPath,
2849
- this.config.build.outputFolder
2850
- );
2851
- this.outputHTMLFilePath = import_path2.default.join(this.outputFolderPath, "index.html");
2852
- this.outputGitignorePath = import_path2.default.join(this.outputFolderPath, ".gitignore");
2853
- const fullLocalContentPath = import_path2.default.join(
2854
- this.tinaFolderPath,
2855
- this.config.localContentPath || ""
2856
- );
2857
- if (this.config.localContentPath) {
2858
- const localContentPathExists = await import_fs_extra2.default.pathExists(fullLocalContentPath);
2859
- if (localContentPathExists) {
2860
- logger.info(`Using separate content repo at ${fullLocalContentPath}`);
2861
- this.contentRootPath = fullLocalContentPath;
2862
- } else {
2863
- logger.warn(
2864
- `${import_chalk2.default.yellow("Warning:")} The localContentPath ${import_chalk2.default.cyan(
2865
- fullLocalContentPath
2866
- )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk2.default.cyan(
2867
- this.tinaConfigFilePath
2868
- )}`
2869
- );
2870
- }
2871
- }
2872
- if (!this.contentRootPath) {
2873
- this.contentRootPath = this.rootPath;
2874
- }
2875
- this.generatedFolderPathContentRepo = import_path2.default.join(
2876
- await this.getTinaFolderPath(this.contentRootPath),
2877
- GENERATED_FOLDER
2878
- );
2879
- this.spaMainPath = require.resolve("@tinacms/app");
2880
- this.spaRootPath = import_path2.default.join(this.spaMainPath, "..", "..");
2881
- }
2882
- async getTinaFolderPath(rootPath) {
2883
- const tinaFolderPath = import_path2.default.join(rootPath, TINA_FOLDER);
2884
- const tinaFolderExists = await import_fs_extra2.default.pathExists(tinaFolderPath);
2885
- if (tinaFolderExists) {
2886
- this.isUsingLegacyFolder = false;
2887
- return tinaFolderPath;
2888
- }
2889
- const legacyFolderPath = import_path2.default.join(rootPath, LEGACY_TINA_FOLDER);
2890
- const legacyFolderExists = await import_fs_extra2.default.pathExists(legacyFolderPath);
2891
- if (legacyFolderExists) {
2892
- this.isUsingLegacyFolder = true;
2893
- return legacyFolderPath;
2894
- }
2895
- throw new Error(
2896
- `Unable to find Tina folder, if you're working in folder outside of the Tina config be sure to specify --rootPath`
2897
- );
2898
- }
2899
- getTinaGraphQLVersion() {
2900
- if (this.tinaGraphQLVersionFromCLI) {
2901
- const version2 = this.tinaGraphQLVersionFromCLI.split(".");
790
+ 0: "0ms",
791
+ 2e3: "2000ms"
792
+ },
793
+ boxShadow: {
794
+ xs: "0 0 0 1px rgba(0, 0, 0, 0.05)",
795
+ outline: "0 0 0 3px rgba(66, 153, 225, 0.5)"
796
+ },
797
+ colors: {
798
+ blue: {
799
+ 50: "#DCEEFF",
800
+ 100: "#B4DBFF",
801
+ 200: "#85C5FE",
802
+ 300: "#4EABFE",
803
+ 400: "#2296fe",
804
+ 500: "#0084FF",
805
+ 600: "#0574e4",
806
+ 700: "#0D5DBD",
807
+ 800: "#144696",
808
+ 900: "#1D2C6C",
809
+ 1e3: "#241748"
810
+ },
811
+ gray: {
812
+ 50: "#F6F6F9",
813
+ 100: "#EDECF3",
814
+ 150: "#E6E3EF",
815
+ 200: "#E1DDEC",
816
+ 250: "#C9C5D5",
817
+ 300: "#b2adbe",
818
+ 400: "#918c9e",
819
+ 500: "#716c7f",
820
+ 600: "#565165",
821
+ 700: "#433e52",
822
+ 800: "#363145",
823
+ 900: "#252336",
824
+ 1e3: "#1c1b2e"
825
+ },
826
+ orange: {
827
+ 400: "#EB6337",
828
+ 500: "#EC4815",
829
+ 600: "#DC4419"
830
+ },
831
+ background: "#FFFFFF",
832
+ foreground: "#0A0A0A",
833
+ muted: "#F5F5F5",
834
+ "muted-foreground": "#737373",
835
+ popover: "#FFFFFF",
836
+ "popover-foreground": "#0A0A0A",
837
+ card: "#FFFFFF",
838
+ "card-foreground": "#0A0A0A",
839
+ border: "#E5E5E5",
840
+ input: "#E5E5E5",
841
+ primary: "#171717",
842
+ "primary-foreground": "#FAFAFA",
843
+ secondary: "#F5F5F5",
844
+ "secondary-foreground": "#171717",
845
+ accent: "#F5F5F5",
846
+ "accent-foreground": "#171717",
847
+ destructive: "#FF3B3B",
848
+ "destructive-foreground": "#FAFAFA",
849
+ ring: "#0A0A0A"
850
+ },
851
+ fontFamily: {
852
+ sans: ["Inter", ...import_defaultTheme.default.fontFamily.sans]
853
+ },
854
+ lineHeight: {
855
+ 3: "12px",
856
+ 4: "16px",
857
+ 5: "20px",
858
+ 6: "24px",
859
+ 7: "28px",
860
+ 8: "32px",
861
+ 9: "36px",
862
+ 10: "40px"
863
+ },
864
+ maxWidth: {
865
+ form: "900px"
866
+ },
867
+ screens: {
868
+ xs: "320px",
869
+ sm: "560px",
870
+ md: "720px",
871
+ lg: "1030px"
872
+ }
873
+ }
874
+ },
875
+ content,
876
+ plugins: [
877
+ (0, import_typography.default)({ className: "tina-prose" }),
878
+ import_aspect_ratio.default,
879
+ import_container_queries.default
880
+ ]
881
+ });
882
+ plugins.push(tw);
2902
883
  return {
2903
- fullVersion: this.tinaGraphQLVersionFromCLI,
2904
- major: version2[0] || "x",
2905
- minor: version2[1] || "x",
2906
- patch: version2[2] || "x"
884
+ css: {
885
+ postcss: {
886
+ plugins
887
+ }
888
+ }
2907
889
  };
2908
890
  }
2909
- const generatedSchema = import_fs_extra2.default.readJSONSync(this.generatedSchemaJSONPath);
2910
- if (!generatedSchema || !(typeof (generatedSchema == null ? void 0 : generatedSchema.version) !== "undefined")) {
2911
- throw new Error(
2912
- `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
2913
- );
2914
- }
2915
- return generatedSchema.version;
2916
- }
2917
- printGeneratedClientFilePath() {
2918
- if (this.isUsingTs()) {
2919
- return this.generatedClientTSFilePath.replace(`${this.rootPath}/`, "");
2920
- }
2921
- return this.generatedClientJSFilePath.replace(`${this.rootPath}/`, "");
2922
- }
2923
- printGeneratedTypesFilePath() {
2924
- return this.generatedTypesTSFilePath.replace(`${this.rootPath}/`, "");
2925
- }
2926
- printoutputHTMLFilePath() {
2927
- return this.outputHTMLFilePath.replace(`${this.publicFolderPath}/`, "");
2928
- }
2929
- printRelativePath(filename) {
2930
- if (filename) {
2931
- return filename.replace(/\\/g, "/").replace(`${this.rootPath}/`, "");
2932
- }
2933
- throw `No path provided to print`;
2934
- }
2935
- printPrebuildFilePath() {
2936
- return this.prebuildFilePath.replace(/\\/g, "/").replace(`${this.rootPath}/${this.tinaFolderPath}/`, "");
2937
- }
2938
- printContentRelativePath(filename) {
2939
- if (filename) {
2940
- return filename.replace(/\\/g, "/").replace(`${this.contentRootPath}/`, "");
2941
- }
2942
- throw `No path provided to print`;
2943
- }
2944
- async getPathWithExtension(filepath) {
2945
- const extensions = ["tsx", "ts", "jsx", "js"];
2946
- let result;
2947
- await Promise.all(
2948
- extensions.map(async (ext) => {
2949
- if (result) {
2950
- return;
2951
- }
2952
- const filepathWithExtension = `${filepath}.${ext}`;
2953
- const exists = import_fs_extra2.default.existsSync(filepathWithExtension);
2954
- if (exists) {
2955
- result = filepathWithExtension;
2956
- }
2957
- })
2958
- );
2959
- return result;
2960
- }
2961
- async loadDatabaseFile() {
2962
- const tmpdir = import_path2.default.join(import_os.default.tmpdir(), Date.now().toString());
2963
- const outfile = import_path2.default.join(tmpdir, "database.build.js");
2964
- await esbuild.build({
2965
- entryPoints: [this.selfHostedDatabaseFilePath],
2966
- bundle: true,
2967
- platform: "node",
2968
- outfile,
2969
- loader: loaders
2970
- });
2971
- const result = require(outfile);
2972
- import_fs_extra2.default.removeSync(outfile);
2973
- return result.default;
891
+ };
892
+ };
893
+
894
+ // src/next/vite/index.ts
895
+ async function listFilesRecursively({
896
+ directoryPath,
897
+ config: config2,
898
+ roothPath
899
+ }) {
900
+ const fullDirectoryPath = import_node_path2.default.join(
901
+ roothPath,
902
+ config2.publicFolder,
903
+ directoryPath
904
+ );
905
+ const exists = await import_fs_extra2.default.pathExists(fullDirectoryPath);
906
+ if (!exists) {
907
+ return { "0": [] };
2974
908
  }
2975
- async loadConfigFile(generatedFolderPath, configFilePath) {
2976
- var _a;
2977
- const tmpdir = import_path2.default.join(import_os.default.tmpdir(), Date.now().toString());
2978
- const preBuildConfigPath = import_path2.default.join(
2979
- this.generatedFolderPath,
2980
- "config.prebuild.jsx"
2981
- );
2982
- const outfile = import_path2.default.join(tmpdir, "config.build.jsx");
2983
- const outfile2 = import_path2.default.join(tmpdir, "config.build.js");
2984
- const tempTSConfigFile = import_path2.default.join(tmpdir, "tsconfig.json");
2985
- const viteConfig = await loadProjectConfig({
2986
- rootPath: this.rootPath,
2987
- viteConfigEnv: {
2988
- command: "build",
2989
- mode: "production"
2990
- }
2991
- });
2992
- const tsconfigPath = import_path2.default.join(this.rootPath, "tsconfig.json");
2993
- let dynamicAliases = {};
2994
- if (import_fs_extra2.default.existsSync(tsconfigPath)) {
2995
- const tsConfigResult = (0, import_tsconfig_paths.loadConfig)(tsconfigPath);
2996
- if (tsConfigResult.resultType === "success") {
2997
- const { absoluteBaseUrl, paths } = tsConfigResult;
2998
- dynamicAliases = resolveTsPathsToEsbuildAliases(absoluteBaseUrl, paths);
2999
- } else {
3000
- console.error("Failed to load tsconfig.json:", tsConfigResult.message);
3001
- throw new Error(`Invalid tsconfig.json at ${tsconfigPath}`);
909
+ const items = await import_fs_extra2.default.readdir(fullDirectoryPath);
910
+ const staticMediaItems = [];
911
+ for (const item of items) {
912
+ const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
913
+ const stats = await import_fs_extra2.default.promises.lstat(itemPath);
914
+ const staticMediaItem = {
915
+ id: item,
916
+ filename: item,
917
+ type: stats.isDirectory() ? "dir" : "file",
918
+ directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
919
+ src: `/${import_node_path2.default.join(directoryPath, item)}`,
920
+ thumbnails: {
921
+ "75x75": `/${import_node_path2.default.join(directoryPath, item)}`,
922
+ "400x400": `/${import_node_path2.default.join(directoryPath, item)}`,
923
+ "1000x1000": `/${import_node_path2.default.join(directoryPath, item)}`
3002
924
  }
3003
- } else {
3004
- console.warn(
3005
- "Warning: tsconfig.json not found. Alias resolution will not be supported."
3006
- );
925
+ };
926
+ if (stats.isDirectory()) {
927
+ staticMediaItem.children = await listFilesRecursively({
928
+ directoryPath: import_node_path2.default.join(directoryPath, item),
929
+ config: config2,
930
+ roothPath
931
+ });
3007
932
  }
3008
- import_fs_extra2.default.outputFileSync(tempTSConfigFile, "{}");
3009
- const result2 = await esbuild.build({
3010
- entryPoints: [configFilePath],
3011
- bundle: true,
3012
- target: ["es2020"],
3013
- platform: "browser",
3014
- format: "esm",
3015
- logLevel: "silent",
3016
- packages: "external",
3017
- ignoreAnnotations: true,
3018
- outfile: preBuildConfigPath,
3019
- loader: loaders,
3020
- metafile: true,
3021
- plugins: Object.keys(dynamicAliases).length ? [(0, import_esbuild_plugin_alias_path.aliasPath)({ alias: dynamicAliases })] : []
3022
- });
3023
- const flattenedList = [];
3024
- Object.keys(result2.metafile.inputs).forEach((key) => {
3025
- if (key.includes("node_modules") || key.includes("__generated__")) {
3026
- return;
3027
- }
3028
- flattenedList.push(key);
3029
- });
3030
- await esbuild.build({
3031
- entryPoints: [configFilePath],
3032
- bundle: true,
3033
- target: ["es2020"],
3034
- logLevel: "silent",
3035
- platform: "node",
3036
- outfile,
3037
- loader: loaders,
3038
- alias: (_a = viteConfig.config.resolve) == null ? void 0 : _a.alias
3039
- });
3040
- await esbuild.build({
3041
- entryPoints: [outfile],
3042
- bundle: true,
3043
- logLevel: "silent",
3044
- platform: "node",
3045
- outfile: outfile2,
3046
- loader: loaders
3047
- });
3048
- let result;
3049
- try {
3050
- result = require(outfile2);
3051
- } catch (e) {
3052
- console.error("Unexpected error loading config");
3053
- console.error(e);
3054
- throw e;
933
+ staticMediaItems.push(staticMediaItem);
934
+ }
935
+ function chunkArrayIntoObject(array, chunkSize) {
936
+ const result = {};
937
+ for (let i = 0; i < array.length; i += chunkSize) {
938
+ const chunkKey = `${i / chunkSize * 20}`;
939
+ result[chunkKey] = array.slice(i, i + chunkSize);
3055
940
  }
3056
- import_fs_extra2.default.removeSync(outfile);
3057
- import_fs_extra2.default.removeSync(outfile2);
3058
- return {
3059
- config: result.default,
3060
- prebuildPath: preBuildConfigPath,
3061
- watchList: flattenedList
3062
- };
941
+ return result;
3063
942
  }
3064
- };
3065
- var loaders = {
3066
- ".aac": "file",
3067
- ".css": "file",
3068
- ".eot": "file",
3069
- ".flac": "file",
3070
- ".gif": "file",
3071
- ".jpeg": "file",
3072
- ".jpg": "file",
3073
- ".json": "json",
3074
- ".mp3": "file",
3075
- ".mp4": "file",
3076
- ".ogg": "file",
3077
- ".otf": "file",
3078
- ".png": "file",
3079
- ".svg": "file",
3080
- ".ttf": "file",
3081
- ".wav": "file",
3082
- ".webm": "file",
3083
- ".webp": "file",
3084
- ".woff": "file",
3085
- ".woff2": "file",
3086
- ".js": "jsx",
3087
- ".jsx": "jsx",
3088
- ".tsx": "tsx"
3089
- };
3090
-
3091
- // src/next/commands/dev-command/html.ts
3092
- var errorHTML = `<style type="text/css">
3093
- #no-assets-placeholder body {
3094
- font-family: sans-serif;
3095
- font-size: 16px;
3096
- line-height: 1.4;
3097
- color: #333;
3098
- background-color: #f5f5f5;
3099
- }
3100
- #no-assets-placeholder {
3101
- max-width: 600px;
3102
- margin: 0 auto;
3103
- padding: 40px;
3104
- text-align: center;
3105
- background-color: #fff;
3106
- box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1);
3107
- }
3108
- #no-assets-placeholder h1 {
3109
- font-size: 24px;
3110
- margin-bottom: 20px;
3111
- }
3112
- #no-assets-placeholder p {
3113
- margin-bottom: 10px;
3114
- }
3115
- #no-assets-placeholder a {
3116
- color: #0077cc;
3117
- text-decoration: none;
3118
- }
3119
- #no-assets-placeholder a:hover {
3120
- text-decoration: underline;
943
+ return chunkArrayIntoObject(staticMediaItems, 20);
3121
944
  }
3122
- </style>
3123
- <div id="no-assets-placeholder">
3124
- <h1>Failed loading TinaCMS assets</h1>
3125
- <p>
3126
- Your TinaCMS configuration may be misconfigured, and we could not load
3127
- the assets for this page.
3128
- </p>
3129
- <p>
3130
- 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.
3131
- </p>
3132
- </div>
3133
- </div>`.trim().replace(/[\r\n\s]+/g, " ");
3134
- var devHTML = (port) => `<!DOCTYPE html>
3135
- <html lang="en">
3136
- <head>
3137
- <meta charset="UTF-8" />
3138
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3139
- <title>TinaCMS</title>
3140
- </head>
3141
-
3142
- <!-- if development -->
3143
- <script type="module">
3144
- import RefreshRuntime from 'http://localhost:${port}/@react-refresh'
3145
- RefreshRuntime.injectIntoGlobalHook(window)
3146
- window.$RefreshReg$ = () => {}
3147
- window.$RefreshSig$ = () => (type) => type
3148
- window.__vite_plugin_react_preamble_installed__ = true
3149
- <\/script>
3150
- <script type="module" src="http://localhost:${port}/@vite/client"><\/script>
3151
- <script>
3152
- function handleLoadError() {
3153
- // Assets have failed to load
3154
- document.getElementById('root').innerHTML = '${errorHTML}';
945
+ var createConfig = async ({
946
+ configManager,
947
+ database,
948
+ apiURL,
949
+ plugins = [],
950
+ noWatch,
951
+ rollupOptions
952
+ }) => {
953
+ var _a, _b, _c, _d, _e, _f, _g, _h;
954
+ const publicEnv = {};
955
+ Object.keys(process.env).forEach((key) => {
956
+ if (key.startsWith("TINA_PUBLIC_") || key.startsWith("NEXT_PUBLIC_") || key === "NODE_ENV" || key === "HEAD") {
957
+ try {
958
+ if (typeof process.env[key] === "string") {
959
+ publicEnv[key] = process.env[key];
960
+ } else {
961
+ publicEnv[key] = JSON.stringify(process.env[key]);
962
+ }
963
+ } catch (error) {
964
+ console.warn(
965
+ `Could not stringify public env process.env.${key} env variable`
966
+ );
967
+ console.warn(error);
968
+ }
969
+ }
970
+ });
971
+ const staticMediaPath = import_node_path2.default.join(
972
+ configManager.generatedFolderPath,
973
+ "static-media.json"
974
+ );
975
+ if ((_b = (_a = configManager.config.media) == null ? void 0 : _a.tina) == null ? void 0 : _b.static) {
976
+ const staticMedia = await listFilesRecursively({
977
+ directoryPath: ((_c = configManager.config.media.tina) == null ? void 0 : _c.mediaRoot) || "",
978
+ config: configManager.config.media.tina,
979
+ roothPath: configManager.rootPath
980
+ });
981
+ await import_fs_extra2.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
982
+ } else {
983
+ await import_fs_extra2.default.outputFile(staticMediaPath, `[]`);
3155
984
  }
3156
- <\/script>
3157
- <script
3158
- type="module"
3159
- src="http://localhost:${port}/src/main.tsx"
3160
- onerror="handleLoadError()"
3161
- ><\/script>
3162
- <body class="tina-tailwind">
3163
- <div id="root"></div>
3164
- </body>
3165
- </html>`;
3166
-
3167
- // src/utils/theme.ts
3168
- var import_chalk3 = __toESM(require("chalk"));
3169
- var successText = import_chalk3.default.bold.green;
3170
- var focusText = import_chalk3.default.bold;
3171
- var dangerText = import_chalk3.default.bold.red;
3172
- var neutralText = import_chalk3.default.bold.cyan;
3173
- var linkText = import_chalk3.default.bold.cyan;
3174
- var labelText = import_chalk3.default.bold;
3175
- var cmdText = import_chalk3.default.inverse;
3176
- var indentedCmd = (str) => {
3177
- return ` \u2503 ` + str;
3178
- };
3179
- var indentText = (str) => {
3180
- return String(str).split("\n").map((line) => ` ${line}`).join("\n");
985
+ const alias = {
986
+ TINA_IMPORT: configManager.prebuildFilePath,
987
+ SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
988
+ STATIC_MEDIA_IMPORT: staticMediaPath,
989
+ crypto: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
990
+ fs: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
991
+ os: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
992
+ path: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
993
+ };
994
+ if (configManager.shouldSkipSDK()) {
995
+ alias["CLIENT_IMPORT"] = import_node_path2.default.join(
996
+ configManager.spaRootPath,
997
+ "src",
998
+ "dummy-client.ts"
999
+ );
1000
+ } else {
1001
+ alias["CLIENT_IMPORT"] = configManager.isUsingTs() ? configManager.generatedTypesTSFilePath : configManager.generatedTypesJSFilePath;
1002
+ }
1003
+ let basePath;
1004
+ if (configManager.config.build.basePath) {
1005
+ basePath = configManager.config.build.basePath;
1006
+ }
1007
+ const fullVersion = configManager.getTinaGraphQLVersion();
1008
+ const version2 = `${fullVersion.major}.${fullVersion.minor}`;
1009
+ const config2 = {
1010
+ root: configManager.spaRootPath,
1011
+ base: `/${basePath ? `${(0, import_normalize_path2.default)(basePath)}/` : ""}${(0, import_normalize_path2.default)(
1012
+ configManager.config.build.outputFolder
1013
+ )}/`,
1014
+ appType: "spa",
1015
+ resolve: {
1016
+ alias,
1017
+ dedupe: ["graphql", "tinacms", "react", "react-dom", "react-router-dom"]
1018
+ },
1019
+ define: {
1020
+ "process.env": `new Object(${JSON.stringify(publicEnv)})`,
1021
+ "process.platform": `"${process.platform}"`,
1022
+ __API_URL__: `"${apiURL}"`,
1023
+ __BASE_PATH__: `"${((_e = (_d = configManager.config) == null ? void 0 : _d.build) == null ? void 0 : _e.basePath) || ""}"`,
1024
+ __TINA_GRAPHQL_VERSION__: version2
1025
+ },
1026
+ logLevel: "error",
1027
+ optimizeDeps: {
1028
+ force: true,
1029
+ include: ["react/jsx-runtime", "react/jsx-dev-runtime"]
1030
+ },
1031
+ server: {
1032
+ host: (_h = (_g = (_f = configManager.config) == null ? void 0 : _f.build) == null ? void 0 : _g.host) != null ? _h : false,
1033
+ watch: noWatch ? {
1034
+ ignored: ["**/*"]
1035
+ } : {
1036
+ ignored: [
1037
+ `${configManager.tinaFolderPath}/**/!(config.prebuild.jsx|_graphql.json)`
1038
+ ]
1039
+ },
1040
+ fs: {
1041
+ strict: false
1042
+ }
1043
+ },
1044
+ build: {
1045
+ sourcemap: false,
1046
+ outDir: configManager.outputFolderPath,
1047
+ emptyOutDir: true,
1048
+ rollupOptions
1049
+ },
1050
+ plugins: [
1051
+ (0, import_plugin_react.default)({
1052
+ babel: {
1053
+ compact: true
1054
+ }
1055
+ }),
1056
+ (0, import_vite.splitVendorChunkPlugin)(),
1057
+ tinaTailwind(configManager.spaRootPath, configManager.prebuildFilePath),
1058
+ ...plugins
1059
+ ]
1060
+ };
1061
+ return config2;
3181
1062
  };
3182
- var logText = import_chalk3.default.italic.gray;
3183
- var warnText = import_chalk3.default.yellowBright.bgBlack;
3184
- var titleText = import_chalk3.default.bgHex("d2f1f8").hex("ec4816");
3185
- var CONFIRMATION_TEXT = import_chalk3.default.dim("enter to confirm");
3186
-
3187
- // src/next/commands/dev-command/server/index.ts
3188
- var import_vite4 = require("vite");
3189
1063
 
3190
1064
  // src/next/vite/plugins.ts
3191
1065
  var import_pluginutils = require("@rollup/pluginutils");
3192
1066
  var import_fs = __toESM(require("fs"));
3193
- var import_vite3 = require("vite");
1067
+ var import_vite2 = require("vite");
3194
1068
  var import_esbuild = require("esbuild");
3195
- var import_path4 = __toESM(require("path"));
1069
+ var import_path3 = __toESM(require("path"));
3196
1070
  var import_body_parser = __toESM(require("body-parser"));
3197
1071
  var import_cors = __toESM(require("cors"));
3198
1072
  var import_graphql = require("@tinacms/graphql");
3199
1073
 
3200
1074
  // src/next/commands/dev-command/server/media.ts
3201
1075
  var import_fs_extra3 = __toESM(require("fs-extra"));
3202
- var import_path3 = __toESM(require("path"));
1076
+ var import_path2 = __toESM(require("path"));
3203
1077
  var import_busboy = __toESM(require("busboy"));
3204
1078
  var createMediaRouter = (config2) => {
3205
- const mediaFolder = import_path3.default.join(
1079
+ const mediaFolder = import_path2.default.join(
3206
1080
  config2.rootPath,
3207
1081
  config2.publicFolder,
3208
1082
  config2.mediaRoot
@@ -3230,8 +1104,8 @@ var createMediaRouter = (config2) => {
3230
1104
  bb.on("file", async (_name, file, _info) => {
3231
1105
  var _a;
3232
1106
  const fullPath = decodeURI((_a = req.url) == null ? void 0 : _a.slice("/media/upload/".length));
3233
- const saveTo = import_path3.default.join(mediaFolder, ...fullPath.split("/"));
3234
- await import_fs_extra3.default.ensureDir(import_path3.default.dirname(saveTo));
1107
+ const saveTo = import_path2.default.join(mediaFolder, ...fullPath.split("/"));
1108
+ await import_fs_extra3.default.ensureDir(import_path2.default.dirname(saveTo));
3235
1109
  file.pipe(import_fs_extra3.default.createWriteStream(saveTo));
3236
1110
  });
3237
1111
  bb.on("error", (error) => {
@@ -3266,7 +1140,7 @@ var MediaModel = class {
3266
1140
  }
3267
1141
  async listMedia(args) {
3268
1142
  try {
3269
- const folderPath = (0, import_path3.join)(
1143
+ const folderPath = (0, import_path2.join)(
3270
1144
  this.rootPath,
3271
1145
  this.publicFolder,
3272
1146
  this.mediaRoot,
@@ -3281,7 +1155,7 @@ var MediaModel = class {
3281
1155
  }
3282
1156
  const filesStr = await import_fs_extra3.default.readdir(folderPath);
3283
1157
  const filesProm = filesStr.map(async (file) => {
3284
- const filePath = (0, import_path3.join)(folderPath, file);
1158
+ const filePath = (0, import_path2.join)(folderPath, file);
3285
1159
  const stat = await import_fs_extra3.default.stat(filePath);
3286
1160
  let src = `/${file}`;
3287
1161
  const isFile = stat.isFile();
@@ -3338,7 +1212,7 @@ var MediaModel = class {
3338
1212
  }
3339
1213
  async deleteMedia(args) {
3340
1214
  try {
3341
- const file = (0, import_path3.join)(
1215
+ const file = (0, import_path2.join)(
3342
1216
  this.rootPath,
3343
1217
  this.publicFolder,
3344
1218
  this.mediaRoot,
@@ -3403,7 +1277,7 @@ var transformTsxPlugin = ({
3403
1277
  const plug = {
3404
1278
  name: "transform-tsx",
3405
1279
  async transform(code, id) {
3406
- const extName = import_path4.default.extname(id);
1280
+ const extName = import_path3.default.extname(id);
3407
1281
  if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
3408
1282
  const result = await (0, import_esbuild.transform)(code, { loader: "tsx" });
3409
1283
  return {
@@ -3513,7 +1387,7 @@ function viteTransformExtension({
3513
1387
  previousExport: exportAsDefault ? null : code
3514
1388
  }
3515
1389
  });
3516
- const res = await (0, import_vite3.transformWithEsbuild)(componentCode, id, {
1390
+ const res = await (0, import_vite2.transformWithEsbuild)(componentCode, id, {
3517
1391
  loader: "jsx",
3518
1392
  ...esbuildOptions
3519
1393
  });
@@ -3533,7 +1407,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
3533
1407
  devServerEndPointsPlugin({ apiURL, configManager, database, searchIndex }),
3534
1408
  viteTransformExtension()
3535
1409
  ];
3536
- return (0, import_vite4.createServer)(
1410
+ return (0, import_vite3.createServer)(
3537
1411
  await createConfig({
3538
1412
  configManager,
3539
1413
  database,
@@ -3548,10 +1422,6 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
3548
1422
  }
3549
1423
  warn(warning);
3550
1424
  }
3551
- },
3552
- viteConfigEnv: {
3553
- command: "serve",
3554
- mode: "development"
3555
1425
  }
3556
1426
  })
3557
1427
  );
@@ -3559,7 +1429,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
3559
1429
 
3560
1430
  // src/next/codegen/index.ts
3561
1431
  var import_fs_extra4 = __toESM(require("fs-extra"));
3562
- var import_path5 = __toESM(require("path"));
1432
+ var import_path4 = __toESM(require("path"));
3563
1433
  var import_graphql6 = require("graphql");
3564
1434
 
3565
1435
  // src/next/codegen/codegen/index.ts
@@ -3805,11 +1675,11 @@ var Codegen = class {
3805
1675
  this.noClientBuildCache = noClientBuildCache;
3806
1676
  }
3807
1677
  async writeConfigFile(fileName, data) {
3808
- const filePath = import_path5.default.join(this.configManager.generatedFolderPath, fileName);
1678
+ const filePath = import_path4.default.join(this.configManager.generatedFolderPath, fileName);
3809
1679
  await import_fs_extra4.default.ensureFile(filePath);
3810
1680
  await import_fs_extra4.default.outputFile(filePath, data);
3811
1681
  if (this.configManager.hasSeparateContentRoot()) {
3812
- const filePath2 = import_path5.default.join(
1682
+ const filePath2 = import_path4.default.join(
3813
1683
  this.configManager.generatedFolderPathContentRepo,
3814
1684
  fileName
3815
1685
  );
@@ -4347,7 +2217,7 @@ var BaseCommand = class extends import_clipanion.Command {
4347
2217
  pathFilter
4348
2218
  });
4349
2219
  const tinaPathUpdates = modified.filter(
4350
- (path15) => path15.startsWith(".tina/__generated__/_schema.json") || path15.startsWith("tina/tina-lock.json")
2220
+ (path14) => path14.startsWith(".tina/__generated__/_schema.json") || path14.startsWith("tina/tina-lock.json")
4351
2221
  );
4352
2222
  if (tinaPathUpdates.length > 0) {
4353
2223
  res = await database.indexContent({
@@ -4462,14 +2332,14 @@ var DevCommand = class extends BaseCommand {
4462
2332
  graphql: graphqlSchemaObject
4463
2333
  });
4464
2334
  import_fs_extra6.default.writeFileSync(
4465
- import_path6.default.join(configManager.tinaFolderPath, tinaLockFilename),
2335
+ import_path5.default.join(configManager.tinaFolderPath, tinaLockFilename),
4466
2336
  tinaLockContent
4467
2337
  );
4468
2338
  if (configManager.hasSeparateContentRoot()) {
4469
2339
  const rootPath = await configManager.getTinaFolderPath(
4470
2340
  configManager.contentRootPath
4471
2341
  );
4472
- const filePath = import_path6.default.join(rootPath, tinaLockFilename);
2342
+ const filePath = import_path5.default.join(rootPath, tinaLockFilename);
4473
2343
  await import_fs_extra6.default.ensureFile(filePath);
4474
2344
  await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
4475
2345
  }
@@ -4616,7 +2486,7 @@ ${dangerText(e.message)}
4616
2486
  watchContentFiles(configManager, database, searchIndexer) {
4617
2487
  const collectionContentFiles = [];
4618
2488
  configManager.config.schema.collections.forEach((collection) => {
4619
- const collectionGlob = `${import_path6.default.join(
2489
+ const collectionGlob = `${import_path5.default.join(
4620
2490
  configManager.contentRootPath,
4621
2491
  collection.path
4622
2492
  )}/**/*.${collection.format || "md"}`;
@@ -4676,11 +2546,11 @@ var import_clipanion3 = require("clipanion");
4676
2546
  var import_progress2 = __toESM(require("progress"));
4677
2547
  var import_fs_extra7 = __toESM(require("fs-extra"));
4678
2548
  var import_crypto = __toESM(require("crypto"));
4679
- var import_path7 = __toESM(require("path"));
2549
+ var import_path6 = __toESM(require("path"));
4680
2550
  var import_graphql11 = require("@tinacms/graphql");
4681
2551
 
4682
2552
  // src/next/commands/build-command/server.ts
4683
- var import_vite6 = require("vite");
2553
+ var import_vite5 = require("vite");
4684
2554
  var buildProductionSpa = async (configManager, database, apiURL) => {
4685
2555
  const publicEnv = {};
4686
2556
  Object.keys(process.env).forEach((key) => {
@@ -4712,13 +2582,9 @@ var buildProductionSpa = async (configManager, database, apiURL) => {
4712
2582
  }
4713
2583
  warn(warning);
4714
2584
  }
4715
- },
4716
- viteConfigEnv: {
4717
- command: "build",
4718
- mode: "production"
4719
2585
  }
4720
2586
  });
4721
- return (0, import_vite6.build)(config2);
2587
+ return (0, import_vite5.build)(config2);
4722
2588
  };
4723
2589
 
4724
2590
  // src/next/commands/build-command/index.ts
@@ -5371,7 +3237,7 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
5371
3237
  }
5372
3238
  const localTinaSchema = JSON.parse(
5373
3239
  await database.bridge.get(
5374
- import_path7.default.join(database.tinaDirectory, "__generated__", "_schema.json")
3240
+ import_path6.default.join(database.tinaDirectory, "__generated__", "_schema.json")
5375
3241
  )
5376
3242
  );
5377
3243
  localTinaSchema.version = void 0;
@@ -5741,25 +3607,25 @@ var import_clipanion6 = require("clipanion");
5741
3607
 
5742
3608
  // src/cmds/init/detectEnvironment.ts
5743
3609
  var import_fs_extra8 = __toESM(require("fs-extra"));
5744
- var import_path8 = __toESM(require("path"));
3610
+ var import_path7 = __toESM(require("path"));
5745
3611
  var checkGitignoreForItem = async ({
5746
3612
  baseDir,
5747
3613
  line
5748
3614
  }) => {
5749
- const gitignoreContent = import_fs_extra8.default.readFileSync(import_path8.default.join(baseDir, ".gitignore")).toString();
3615
+ const gitignoreContent = import_fs_extra8.default.readFileSync(import_path7.default.join(baseDir, ".gitignore")).toString();
5750
3616
  return gitignoreContent.split("\n").some((item) => item === line);
5751
3617
  };
5752
3618
  var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
5753
3619
  const result = {
5754
- fullPathTS: import_path8.default.join(
3620
+ fullPathTS: import_path7.default.join(
5755
3621
  parentPath,
5756
3622
  `${name2}.${(opts == null ? void 0 : opts.typescriptSuffix) || (opts == null ? void 0 : opts.extensionOverride) || "ts"}`
5757
3623
  ),
5758
- fullPathJS: import_path8.default.join(
3624
+ fullPathJS: import_path7.default.join(
5759
3625
  parentPath,
5760
3626
  `${name2}.${(opts == null ? void 0 : opts.extensionOverride) || "js"}`
5761
3627
  ),
5762
- fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path8.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
3628
+ fullPathOverride: (opts == null ? void 0 : opts.extensionOverride) ? import_path7.default.join(parentPath, `${name2}.${opts == null ? void 0 : opts.extensionOverride}`) : "",
5763
3629
  generatedFileType,
5764
3630
  name: name2,
5765
3631
  parentPath,
@@ -5789,16 +3655,16 @@ var detectEnvironment = async ({
5789
3655
  }) => {
5790
3656
  var _a;
5791
3657
  const hasForestryConfig = await import_fs_extra8.default.pathExists(
5792
- import_path8.default.join(pathToForestryConfig, ".forestry", "settings.yml")
3658
+ import_path7.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5793
3659
  );
5794
- const sampleContentPath = import_path8.default.join(
3660
+ const sampleContentPath = import_path7.default.join(
5795
3661
  baseDir,
5796
3662
  "content",
5797
3663
  "posts",
5798
3664
  "hello-world.md"
5799
3665
  );
5800
- const usingSrc = import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path8.default.join(baseDir, "src", "pages")));
5801
- const tinaFolder = import_path8.default.join(baseDir, "tina");
3666
+ 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")));
3667
+ const tinaFolder = import_path7.default.join(baseDir, "tina");
5802
3668
  const tinaConfigExists = Boolean(
5803
3669
  await import_fs_extra8.default.pathExists(tinaFolder) && (await import_fs_extra8.default.readdir(tinaFolder)).find((x) => x.includes("config"))
5804
3670
  );
@@ -5812,12 +3678,12 @@ var detectEnvironment = async ({
5812
3678
  "next-api-handler": await makeGeneratedFile(
5813
3679
  "[...routes]",
5814
3680
  "next-api-handler",
5815
- import_path8.default.join(...pagesDir, "api", "tina")
3681
+ import_path7.default.join(...pagesDir, "api", "tina")
5816
3682
  ),
5817
3683
  "reactive-example": await makeGeneratedFile(
5818
3684
  "[filename]",
5819
3685
  "reactive-example",
5820
- import_path8.default.join(...pagesDir, "demo", "blog"),
3686
+ import_path7.default.join(...pagesDir, "demo", "blog"),
5821
3687
  {
5822
3688
  typescriptSuffix: "tsx"
5823
3689
  }
@@ -5825,13 +3691,13 @@ var detectEnvironment = async ({
5825
3691
  "users-json": await makeGeneratedFile(
5826
3692
  "index",
5827
3693
  "users-json",
5828
- import_path8.default.join(baseDir, "content", "users"),
3694
+ import_path7.default.join(baseDir, "content", "users"),
5829
3695
  { extensionOverride: "json" }
5830
3696
  ),
5831
3697
  "sample-content": await makeGeneratedFile(
5832
3698
  "hello-world",
5833
3699
  "sample-content",
5834
- import_path8.default.join(baseDir, "content", "posts"),
3700
+ import_path7.default.join(baseDir, "content", "posts"),
5835
3701
  { extensionOverride: "md" }
5836
3702
  )
5837
3703
  };
@@ -5857,13 +3723,13 @@ var detectEnvironment = async ({
5857
3723
  );
5858
3724
  }
5859
3725
  }
5860
- const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path8.default.join(".gitignore"));
3726
+ const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path7.default.join(".gitignore"));
5861
3727
  const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
5862
3728
  const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
5863
3729
  const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
5864
3730
  let frontMatterFormat;
5865
3731
  if (hasForestryConfig) {
5866
- const hugoConfigPath = import_path8.default.join(rootPath, "config.toml");
3732
+ const hugoConfigPath = import_path7.default.join(rootPath, "config.toml");
5867
3733
  if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
5868
3734
  const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
5869
3735
  const metaDataFormat = (_a = hugoConfig.match(/metaDataFormat = "(.*)"/)) == null ? void 0 : _a[1];
@@ -6471,18 +4337,18 @@ var CLICommand = class {
6471
4337
  };
6472
4338
 
6473
4339
  // src/cmds/init/apply.ts
6474
- var import_path12 = __toESM(require("path"));
4340
+ var import_path11 = __toESM(require("path"));
6475
4341
 
6476
4342
  // src/cmds/forestry-migrate/index.ts
6477
4343
  var import_fs_extra10 = __toESM(require("fs-extra"));
6478
- var import_path10 = __toESM(require("path"));
4344
+ var import_path9 = __toESM(require("path"));
6479
4345
  var import_js_yaml2 = __toESM(require("js-yaml"));
6480
4346
  var import_minimatch = __toESM(require("minimatch"));
6481
4347
  var import_graphql16 = require("@tinacms/graphql");
6482
4348
 
6483
4349
  // src/cmds/forestry-migrate/util/index.ts
6484
4350
  var import_fs_extra9 = __toESM(require("fs-extra"));
6485
- var import_path9 = __toESM(require("path"));
4351
+ var import_path8 = __toESM(require("path"));
6486
4352
  var import_js_yaml = __toESM(require("js-yaml"));
6487
4353
  var import_zod = __toESM(require("zod"));
6488
4354
 
@@ -6893,7 +4759,7 @@ var transformForestryFieldsToTinaFields = ({
6893
4759
  return tinaFields;
6894
4760
  };
6895
4761
  var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
6896
- const templatePath = import_path9.default.join(
4762
+ const templatePath = import_path8.default.join(
6897
4763
  pathToForestryConfig,
6898
4764
  ".forestry",
6899
4765
  "front_matter",
@@ -6968,8 +4834,8 @@ var generateAllTemplates = async ({
6968
4834
  pathToForestryConfig
6969
4835
  }) => {
6970
4836
  const allTemplates = (await import_fs_extra10.default.readdir(
6971
- import_path10.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
6972
- )).map((tem) => import_path10.default.basename(tem, ".yml"));
4837
+ import_path9.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
4838
+ )).map((tem) => import_path9.default.basename(tem, ".yml"));
6973
4839
  const templateMap = /* @__PURE__ */ new Map();
6974
4840
  const proms = allTemplates.map(async (tem) => {
6975
4841
  try {
@@ -7111,9 +4977,9 @@ var generateCollectionFromForestrySection = (args) => {
7111
4977
  return c;
7112
4978
  } else if (section.type === "document") {
7113
4979
  const filePath = section.path;
7114
- const extname = import_path10.default.extname(filePath);
7115
- const fileName = import_path10.default.basename(filePath, extname);
7116
- const dir = import_path10.default.dirname(filePath);
4980
+ const extname = import_path9.default.extname(filePath);
4981
+ const fileName = import_path9.default.basename(filePath, extname);
4982
+ const dir = import_path9.default.dirname(filePath);
7117
4983
  const ext = checkExt(extname);
7118
4984
  if (ext) {
7119
4985
  const fields = [];
@@ -7176,7 +5042,7 @@ var generateCollections = async ({
7176
5042
  usingTypescript
7177
5043
  });
7178
5044
  const forestryConfig = await import_fs_extra10.default.readFile(
7179
- import_path10.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5045
+ import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
7180
5046
  );
7181
5047
  rewriteTemplateKeysInDocs({
7182
5048
  templateMap,
@@ -7207,11 +5073,11 @@ var rewriteTemplateKeysInDocs = (args) => {
7207
5073
  const { templateObj } = templateMap.get(templateKey);
7208
5074
  (_a = templateObj == null ? void 0 : templateObj.pages) == null ? void 0 : _a.forEach((page) => {
7209
5075
  try {
7210
- const filePath = import_path10.default.join(page);
5076
+ const filePath = import_path9.default.join(page);
7211
5077
  if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
7212
5078
  return;
7213
5079
  }
7214
- const extname = import_path10.default.extname(filePath);
5080
+ const extname = import_path9.default.extname(filePath);
7215
5081
  const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
7216
5082
  const content = (0, import_graphql16.parseFile)(
7217
5083
  fileContent,
@@ -7243,7 +5109,7 @@ var import_fs_extra13 = __toESM(require("fs-extra"));
7243
5109
  // src/next/commands/codemod-command/index.ts
7244
5110
  var import_clipanion5 = require("clipanion");
7245
5111
  var import_fs_extra11 = __toESM(require("fs-extra"));
7246
- var import_path11 = __toESM(require("path"));
5112
+ var import_path10 = __toESM(require("path"));
7247
5113
  var CodemodCommand = class extends import_clipanion5.Command {
7248
5114
  constructor() {
7249
5115
  super(...arguments);
@@ -7287,7 +5153,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
7287
5153
  logger.error(e.message);
7288
5154
  process.exit(1);
7289
5155
  }
7290
- const tinaDestination = import_path11.default.join(configManager.rootPath, "tina");
5156
+ const tinaDestination = import_path10.default.join(configManager.rootPath, "tina");
7291
5157
  if (await import_fs_extra11.default.existsSync(tinaDestination)) {
7292
5158
  logger.info(
7293
5159
  `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.`
@@ -7302,7 +5168,7 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
7302
5168
  };
7303
5169
  var writeGitignore = async (rootPath) => {
7304
5170
  await import_fs_extra11.default.outputFileSync(
7305
- import_path11.default.join(rootPath, "tina", ".gitignore"),
5171
+ import_path10.default.join(rootPath, "tina", ".gitignore"),
7306
5172
  "__generated__"
7307
5173
  );
7308
5174
  };
@@ -8140,8 +6006,8 @@ async function apply({
8140
6006
  await addConfigFile({
8141
6007
  configArgs: {
8142
6008
  config: config2,
8143
- publicFolder: import_path12.default.join(
8144
- import_path12.default.relative(process.cwd(), pathToForestryConfig),
6009
+ publicFolder: import_path11.default.join(
6010
+ import_path11.default.relative(process.cwd(), pathToForestryConfig),
8145
6011
  config2.publicFolder
8146
6012
  ),
8147
6013
  collections,
@@ -8208,18 +6074,18 @@ var createPackageJSON = async () => {
8208
6074
  };
8209
6075
  var createGitignore = async ({ baseDir }) => {
8210
6076
  logger.info(logText("No .gitignore found, creating one"));
8211
- import_fs_extra13.default.outputFileSync(import_path12.default.join(baseDir, ".gitignore"), "node_modules");
6077
+ import_fs_extra13.default.outputFileSync(import_path11.default.join(baseDir, ".gitignore"), "node_modules");
8212
6078
  };
8213
6079
  var updateGitIgnore = async ({
8214
6080
  baseDir,
8215
6081
  items
8216
6082
  }) => {
8217
6083
  logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
8218
- const gitignoreContent = import_fs_extra13.default.readFileSync(import_path12.default.join(baseDir, ".gitignore")).toString();
6084
+ const gitignoreContent = import_fs_extra13.default.readFileSync(import_path11.default.join(baseDir, ".gitignore")).toString();
8219
6085
  const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
8220
6086
  "\n"
8221
6087
  );
8222
- await import_fs_extra13.default.writeFile(import_path12.default.join(baseDir, ".gitignore"), newGitignoreContent);
6088
+ await import_fs_extra13.default.writeFile(import_path11.default.join(baseDir, ".gitignore"), newGitignoreContent);
8223
6089
  };
8224
6090
  var addDependencies = async (config2, env, params) => {
8225
6091
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
@@ -8289,22 +6155,22 @@ var writeGeneratedFile = async ({
8289
6155
  content,
8290
6156
  typescript
8291
6157
  }) => {
8292
- const { exists, path: path15, parentPath } = generatedFile.resolve(typescript);
6158
+ const { exists, path: path14, parentPath } = generatedFile.resolve(typescript);
8293
6159
  if (exists) {
8294
6160
  if (overwrite) {
8295
- logger.info(`Overwriting file at ${path15}... \u2705`);
8296
- import_fs_extra13.default.outputFileSync(path15, content);
6161
+ logger.info(`Overwriting file at ${path14}... \u2705`);
6162
+ import_fs_extra13.default.outputFileSync(path14, content);
8297
6163
  } else {
8298
- logger.info(`Not overwriting file at ${path15}.`);
6164
+ logger.info(`Not overwriting file at ${path14}.`);
8299
6165
  logger.info(
8300
- logText(`Please add the following to ${path15}:
6166
+ logText(`Please add the following to ${path14}:
8301
6167
  ${indentText(content)}}`)
8302
6168
  );
8303
6169
  }
8304
6170
  } else {
8305
- logger.info(`Adding file at ${path15}... \u2705`);
6171
+ logger.info(`Adding file at ${path14}... \u2705`);
8306
6172
  await import_fs_extra13.default.ensureDir(parentPath);
8307
- import_fs_extra13.default.outputFileSync(path15, content);
6173
+ import_fs_extra13.default.outputFileSync(path14, content);
8308
6174
  }
8309
6175
  };
8310
6176
  var addConfigFile = async ({
@@ -8387,7 +6253,7 @@ var addContentFile = async ({
8387
6253
  return () => ({
8388
6254
  exists: env.sampleContentExists,
8389
6255
  path: env.sampleContentPath,
8390
- parentPath: import_path12.default.dirname(env.sampleContentPath)
6256
+ parentPath: import_path11.default.dirname(env.sampleContentPath)
8391
6257
  });
8392
6258
  }
8393
6259
  },
@@ -8410,7 +6276,7 @@ ${titleText(" TinaCMS ")} backend initialized!`));
8410
6276
  return `${x.key}=${x.value || "***"}`;
8411
6277
  }).join("\n") + `
8412
6278
  TINA_PUBLIC_IS_LOCAL=true`;
8413
- const envFile = import_path12.default.join(process.cwd(), ".env");
6279
+ const envFile = import_path11.default.join(process.cwd(), ".env");
8414
6280
  if (!import_fs_extra13.default.existsSync(envFile)) {
8415
6281
  logger.info(`Adding .env file to your project... \u2705`);
8416
6282
  import_fs_extra13.default.writeFileSync(envFile, envFileText);
@@ -8474,7 +6340,7 @@ var addReactiveFile = {
8474
6340
  dataLayer
8475
6341
  }) => {
8476
6342
  var _a, _b;
8477
- const packageJsonPath = import_path12.default.join(baseDir, "package.json");
6343
+ const packageJsonPath = import_path11.default.join(baseDir, "package.json");
8478
6344
  await writeGeneratedFile({
8479
6345
  generatedFile,
8480
6346
  typescript: config2.typescript,