@tinacms/cli 1.12.6 → 2.0.1

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.
Files changed (3) hide show
  1. package/bin/tinacms +12 -6
  2. package/dist/index.js +868 -827
  3. package/package.json +8 -7
package/dist/index.js CHANGED
@@ -1,53 +1,20 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name2 in all)
9
- __defProp(target, name2, { get: all[name2], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
1
  // src/index.ts
30
- var index_exports = {};
31
- __export(index_exports, {
32
- default: () => index_default
33
- });
34
- module.exports = __toCommonJS(index_exports);
35
- var import_clipanion8 = require("clipanion");
2
+ import { Cli, Builtins } from "clipanion";
36
3
 
37
4
  // package.json
38
- var version = "1.12.6";
5
+ var version = "2.0.1";
39
6
 
40
7
  // src/next/commands/dev-command/index.ts
41
- var import_path7 = __toESM(require("path"));
42
- var import_graphql10 = require("@tinacms/graphql");
43
- var import_search = require("@tinacms/search");
44
- var import_async_lock = __toESM(require("async-lock"));
45
- var import_chokidar = __toESM(require("chokidar"));
46
- var import_clipanion2 = require("clipanion");
47
- var import_fs_extra6 = __toESM(require("fs-extra"));
8
+ import path8 from "path";
9
+ import { FilesystemBridge as FilesystemBridge2, buildSchema } from "@tinacms/graphql";
10
+ import { LocalSearchIndexClient, SearchIndexer } from "@tinacms/search";
11
+ import AsyncLock from "async-lock";
12
+ import chokidar from "chokidar";
13
+ import { Command as Command2, Option as Option2 } from "clipanion";
14
+ import fs7 from "fs-extra";
48
15
 
49
16
  // src/logger/index.ts
50
- var import_chalk = __toESM(require("chalk"));
17
+ import chalk from "chalk";
51
18
 
52
19
  // src/logger/is-unicode-supported.ts
53
20
  function isUnicodeSupported() {
@@ -61,9 +28,9 @@ function isUnicodeSupported() {
61
28
  }
62
29
 
63
30
  // src/logger/index.ts
64
- var import_log4js = __toESM(require("log4js"));
65
- var logger = import_log4js.default.getLogger();
66
- import_log4js.default.configure({
31
+ import log4js from "log4js";
32
+ var logger = log4js.getLogger();
33
+ log4js.configure({
67
34
  appenders: {
68
35
  out: { type: "stdout", layout: { type: "messagePassThrough" } }
69
36
  },
@@ -88,18 +55,18 @@ ${message}
88
55
  return ln.length > sum ? ln.length : sum;
89
56
  }, 0) + 2;
90
57
  const msg = lines.map(
91
- (ln) => `${import_chalk.default.gray(bar)} ${import_chalk.default.white(ln)}${" ".repeat(
58
+ (ln) => `${chalk.gray(bar)} ${chalk.white(ln)}${" ".repeat(
92
59
  len - strip(ln).length
93
- )}${import_chalk.default.gray(bar)}`
60
+ )}${chalk.gray(bar)}`
94
61
  ).join("\n");
95
62
  const underscoreLen = len - title.length - 1 > 0 ? len - title.length - 1 : 0;
96
63
  process.stdout.write(
97
- `${import_chalk.default.gray(bar)}
98
- ${import_chalk.default.green("\u25CB")} ${import_chalk.default.reset(
64
+ `${chalk.gray(bar)}
65
+ ${chalk.green("\u25CB")} ${chalk.reset(
99
66
  title
100
- )} ${import_chalk.default.gray("\u2500".repeat(underscoreLen) + "\u256E")}
67
+ )} ${chalk.gray("\u2500".repeat(underscoreLen) + "\u256E")}
101
68
  ${msg}
102
- ${import_chalk.default.gray(
69
+ ${chalk.gray(
103
70
  "\u251C" + "\u2500".repeat(len + 2) + "\u256F"
104
71
  )}
105
72
  `
@@ -116,11 +83,11 @@ var summary = (content) => {
116
83
  });
117
84
  });
118
85
  content.items.forEach((item) => {
119
- outString.push(`${item.emoji} ${import_chalk.default.cyan(item.heading)}`);
86
+ outString.push(`${item.emoji} ${chalk.cyan(item.heading)}`);
120
87
  item.subItems.forEach((subItem) => {
121
88
  const spaces = longestKey - subItem.key.length + 4;
122
89
  outString.push(
123
- ` ${subItem.key}:${[...Array(spaces)].join(" ")}${import_chalk.default.cyan(
90
+ ` ${subItem.key}:${[...Array(spaces)].join(" ")}${chalk.cyan(
124
91
  subItem.value
125
92
  )}`
126
93
  );
@@ -158,12 +125,12 @@ var S_WARN = s("\u25B2", "!");
158
125
  var S_ERROR = s("\u25A0", "x");
159
126
 
160
127
  // src/utils/spinner.ts
161
- var import_cli_spinner = require("cli-spinner");
128
+ import { Spinner } from "cli-spinner";
162
129
  async function localSpin({
163
130
  waitFor,
164
131
  text
165
132
  }) {
166
- const spinner = new import_cli_spinner.Spinner({
133
+ const spinner = new Spinner({
167
134
  text: `${text} %s`,
168
135
  stream: process.stderr,
169
136
  onTick: function(msg) {
@@ -194,32 +161,32 @@ function spin({
194
161
  }
195
162
 
196
163
  // src/utils/theme.ts
197
- var import_chalk2 = __toESM(require("chalk"));
198
- var successText = import_chalk2.default.bold.green;
199
- var focusText = import_chalk2.default.bold;
200
- var dangerText = import_chalk2.default.bold.red;
201
- var neutralText = import_chalk2.default.bold.cyan;
202
- var linkText = import_chalk2.default.bold.cyan;
203
- var labelText = import_chalk2.default.bold;
204
- var cmdText = import_chalk2.default.inverse;
164
+ import chalk2 from "chalk";
165
+ var successText = chalk2.bold.green;
166
+ var focusText = chalk2.bold;
167
+ var dangerText = chalk2.bold.red;
168
+ var neutralText = chalk2.bold.cyan;
169
+ var linkText = chalk2.bold.cyan;
170
+ var labelText = chalk2.bold;
171
+ var cmdText = chalk2.inverse;
205
172
  var indentedCmd = (str) => {
206
173
  return ` \u2503 ` + str;
207
174
  };
208
175
  var indentText = (str) => {
209
176
  return String(str).split("\n").map((line) => ` ${line}`).join("\n");
210
177
  };
211
- var logText = import_chalk2.default.italic.gray;
212
- var warnText = import_chalk2.default.yellowBright.bgBlack;
213
- var titleText = import_chalk2.default.bgHex("d2f1f8").hex("ec4816");
214
- var CONFIRMATION_TEXT = import_chalk2.default.dim("enter to confirm");
178
+ var logText = chalk2.italic.gray;
179
+ var warnText = chalk2.yellowBright.bgBlack;
180
+ var titleText = chalk2.bgHex("d2f1f8").hex("ec4816");
181
+ var CONFIRMATION_TEXT = chalk2.dim("enter to confirm");
215
182
 
216
183
  // src/next/codegen/index.ts
217
- var import_fs_extra = __toESM(require("fs-extra"));
218
- var import_path = __toESM(require("path"));
219
- var import_graphql5 = require("graphql");
184
+ import fs from "fs-extra";
185
+ import path from "path";
186
+ import { buildASTSchema, printSchema as printSchema2 } from "graphql";
220
187
 
221
188
  // src/next/codegen/codegen/index.ts
222
- var import_graphql4 = require("graphql");
189
+ import { parse, printSchema } from "graphql";
223
190
 
224
191
  // src/next/codegen/codegen/plugin.ts
225
192
  var AddGeneratedClientFunc = (apiURL) => {
@@ -288,37 +255,44 @@ var AddGeneratedClient = (apiURL) => ({
288
255
  });
289
256
 
290
257
  // src/next/codegen/codegen/index.ts
291
- var import_graphql_file_loader = require("@graphql-tools/graphql-file-loader");
292
- var import_core = require("@graphql-codegen/core");
293
- var import_load = require("@graphql-tools/load");
294
- var import_typescript_operations = require("@graphql-codegen/typescript-operations");
295
- var import_typescript = require("@graphql-codegen/typescript");
258
+ import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader";
259
+ import { codegen } from "@graphql-codegen/core";
260
+ import { loadDocuments } from "@graphql-tools/load";
261
+ import { plugin as typescriptOperationsPlugin } from "@graphql-codegen/typescript-operations";
262
+ import { plugin as typescriptPlugin } from "@graphql-codegen/typescript";
296
263
 
297
264
  // src/next/codegen/codegen/sdkPlugin/index.ts
298
- var import_graphql2 = require("graphql");
299
- var import_graphql3 = require("graphql");
265
+ import { visit } from "graphql";
266
+ import {
267
+ concatAST,
268
+ Kind as Kind2
269
+ } from "graphql";
300
270
 
301
271
  // src/next/codegen/codegen/sdkPlugin/visitor.ts
302
- var import_visitor_plugin_common = require("@graphql-codegen/visitor-plugin-common");
303
- var import_auto_bind = __toESM(require("auto-bind"));
304
- var import_graphql = require("graphql");
305
- var GenericSdkVisitor = class extends import_visitor_plugin_common.ClientSideBaseVisitor {
272
+ import {
273
+ ClientSideBaseVisitor,
274
+ DocumentMode,
275
+ indentMultiline
276
+ } from "@graphql-codegen/visitor-plugin-common";
277
+ import autoBind from "auto-bind";
278
+ import { Kind, print } from "graphql";
279
+ var GenericSdkVisitor = class extends ClientSideBaseVisitor {
280
+ _operationsToInclude = [];
306
281
  constructor(schema, fragments, rawConfig) {
307
282
  super(schema, fragments, rawConfig, {
308
283
  usingObservableFrom: rawConfig.usingObservableFrom
309
284
  });
310
- this._operationsToInclude = [];
311
- (0, import_auto_bind.default)(this);
285
+ autoBind(this);
312
286
  if (this.config.usingObservableFrom) {
313
287
  this._additionalImports.push(this.config.usingObservableFrom);
314
288
  }
315
- if (this.config.documentMode !== import_visitor_plugin_common.DocumentMode.string) {
289
+ if (this.config.documentMode !== DocumentMode.string) {
316
290
  }
317
291
  }
318
292
  buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {
319
293
  if (node.name == null) {
320
294
  throw new Error(
321
- "Plugin 'generic-sdk' cannot generate SDK for unnamed operation.\n\n" + (0, import_graphql.print)(node)
295
+ "Plugin 'generic-sdk' cannot generate SDK for unnamed operation.\n\n" + print(node)
322
296
  );
323
297
  } else {
324
298
  this._operationsToInclude.push({
@@ -336,14 +310,14 @@ var GenericSdkVisitor = class extends import_visitor_plugin_common.ClientSideBas
336
310
  const usingObservable = !!this.config.usingObservableFrom;
337
311
  const allPossibleActions = this._operationsToInclude.map((o) => {
338
312
  const optionalVariables = !o.node.variableDefinitions || o.node.variableDefinitions.length === 0 || o.node.variableDefinitions.every(
339
- (v) => v.type.kind !== import_graphql.Kind.NON_NULL_TYPE || v.defaultValue
313
+ (v) => v.type.kind !== Kind.NON_NULL_TYPE || v.defaultValue
340
314
  );
341
315
  const returnType = usingObservable && o.operationType === "Subscription" ? "Observable" : "Promise";
342
316
  return `${o.node.name.value}(variables${optionalVariables ? "?" : ""}: ${o.operationVariablesTypes}, options?: C): ${returnType}<${o.operationResultType}> {
343
317
  return requester<${o.operationResultType}, ${o.operationVariablesTypes}>(${o.documentVariableName}, variables, options);
344
318
  }`;
345
- }).map((s2) => (0, import_visitor_plugin_common.indentMultiline)(s2, 2));
346
- return `export type Requester<C= {}> = <R, V>(doc: ${this.config.documentMode === import_visitor_plugin_common.DocumentMode.string ? "string" : "DocumentNode"}, vars?: V, options?: C) => ${usingObservable ? "Promise<R> & Observable<R>" : "Promise<R>"}
319
+ }).map((s2) => indentMultiline(s2, 2));
320
+ return `export type Requester<C= {}> = <R, V>(doc: ${this.config.documentMode === DocumentMode.string ? "string" : "DocumentNode"}, vars?: V, options?: C) => ${usingObservable ? "Promise<R> & Observable<R>" : "Promise<R>"}
347
321
  export function getSdk<C>(requester: Requester<C>) {
348
322
  return {
349
323
  ${allPossibleActions.join(",\n")}
@@ -355,14 +329,14 @@ var GenericSdkVisitor = class extends import_visitor_plugin_common.ClientSideBas
355
329
 
356
330
  // src/next/codegen/codegen/sdkPlugin/index.ts
357
331
  var plugin = (schema, documents, config2) => {
358
- const allAst = (0, import_graphql3.concatAST)(
332
+ const allAst = concatAST(
359
333
  documents.reduce((prev, v) => {
360
334
  return [...prev, v.document];
361
335
  }, [])
362
336
  );
363
337
  const allFragments = [
364
338
  ...allAst.definitions.filter(
365
- (d) => d.kind === import_graphql3.Kind.FRAGMENT_DEFINITION
339
+ (d) => d.kind === Kind2.FRAGMENT_DEFINITION
366
340
  ).map((fragmentDef) => ({
367
341
  node: fragmentDef,
368
342
  name: fragmentDef.name.value,
@@ -372,7 +346,7 @@ var plugin = (schema, documents, config2) => {
372
346
  ...config2.externalFragments || []
373
347
  ];
374
348
  const visitor = new GenericSdkVisitor(schema, allFragments, config2);
375
- const visitorResult = (0, import_graphql2.visit)(allAst, { leave: visitor });
349
+ const visitorResult = visit(allAst, { leave: visitor });
376
350
  return {
377
351
  // We will take care of imports
378
352
  // prepend: visitor.getImports(),
@@ -390,10 +364,10 @@ var generateTypes = async (schema, queryPathGlob = process.cwd(), fragDocPath =
390
364
  let fragDocs = [];
391
365
  docs = await loadGraphQLDocuments(queryPathGlob);
392
366
  fragDocs = await loadGraphQLDocuments(fragDocPath);
393
- const res = await (0, import_core.codegen)({
367
+ const res = await codegen({
394
368
  // Filename is not used. This is because the typescript plugin returns a string instead of writing to a file.
395
369
  filename: process.cwd(),
396
- schema: (0, import_graphql4.parse)((0, import_graphql4.printSchema)(schema)),
370
+ schema: parse(printSchema(schema)),
397
371
  documents: [...docs, ...fragDocs],
398
372
  config: {},
399
373
  plugins: [
@@ -406,10 +380,10 @@ var generateTypes = async (schema, queryPathGlob = process.cwd(), fragDocPath =
406
380
  ],
407
381
  pluginMap: {
408
382
  typescript: {
409
- plugin: import_typescript.plugin
383
+ plugin: typescriptPlugin
410
384
  },
411
385
  typescriptOperations: {
412
- plugin: import_typescript_operations.plugin
386
+ plugin: typescriptOperationsPlugin
413
387
  },
414
388
  typescriptSdk: {
415
389
  plugin
@@ -422,8 +396,8 @@ var generateTypes = async (schema, queryPathGlob = process.cwd(), fragDocPath =
422
396
  var loadGraphQLDocuments = async (globPath) => {
423
397
  let result = [];
424
398
  try {
425
- result = await (0, import_load.loadDocuments)(globPath, {
426
- loaders: [new import_graphql_file_loader.GraphQLFileLoader()]
399
+ result = await loadDocuments(globPath, {
400
+ loaders: [new GraphQLFileLoader()]
427
401
  });
428
402
  } catch (e) {
429
403
  if (
@@ -440,11 +414,27 @@ var loadGraphQLDocuments = async (globPath) => {
440
414
  };
441
415
 
442
416
  // src/next/codegen/index.ts
443
- var import_esbuild = require("esbuild");
444
- var import_graphql6 = require("@tinacms/graphql");
445
- var import_normalize_path = __toESM(require("normalize-path"));
417
+ import { transform } from "esbuild";
418
+ import { mapUserFields } from "@tinacms/graphql";
419
+ import normalizePath from "normalize-path";
446
420
  var TINA_HOST = "content.tinajs.io";
447
421
  var Codegen = class {
422
+ configManager;
423
+ port;
424
+ schema;
425
+ queryDoc;
426
+ fragDoc;
427
+ isLocal;
428
+ // The API url used in the client
429
+ apiURL;
430
+ // This is always the local URL.
431
+ localUrl;
432
+ // production url
433
+ productionUrl;
434
+ graphqlSchemaDoc;
435
+ tinaSchema;
436
+ lookup;
437
+ noClientBuildCache;
448
438
  constructor({
449
439
  configManager,
450
440
  port,
@@ -460,7 +450,7 @@ var Codegen = class {
460
450
  this.graphqlSchemaDoc = graphqlSchemaDoc;
461
451
  this.configManager = configManager;
462
452
  this.port = port;
463
- this.schema = (0, import_graphql5.buildASTSchema)(graphqlSchemaDoc);
453
+ this.schema = buildASTSchema(graphqlSchemaDoc);
464
454
  this.tinaSchema = tinaSchema;
465
455
  this.queryDoc = queryDoc;
466
456
  this.fragDoc = fragDoc;
@@ -468,19 +458,19 @@ var Codegen = class {
468
458
  this.noClientBuildCache = noClientBuildCache;
469
459
  }
470
460
  async writeConfigFile(fileName, data) {
471
- const filePath = import_path.default.join(
461
+ const filePath = path.join(
472
462
  this.configManager.generatedFolderPath,
473
463
  fileName
474
464
  );
475
- await import_fs_extra.default.ensureFile(filePath);
476
- await import_fs_extra.default.outputFile(filePath, data);
465
+ await fs.ensureFile(filePath);
466
+ await fs.outputFile(filePath, data);
477
467
  if (this.configManager.hasSeparateContentRoot()) {
478
- const filePath2 = import_path.default.join(
468
+ const filePath2 = path.join(
479
469
  this.configManager.generatedFolderPathContentRepo,
480
470
  fileName
481
471
  );
482
- await import_fs_extra.default.ensureFile(filePath2);
483
- await import_fs_extra.default.outputFile(filePath2, data);
472
+ await fs.ensureFile(filePath2);
473
+ await fs.outputFile(filePath2, data);
484
474
  }
485
475
  }
486
476
  async removeGeneratedFilesIfExists() {
@@ -512,11 +502,11 @@ var Codegen = class {
512
502
  await this.removeGeneratedFilesIfExists();
513
503
  return apiURL;
514
504
  }
515
- await import_fs_extra.default.outputFile(
505
+ await fs.outputFile(
516
506
  this.configManager.generatedQueriesFilePath,
517
507
  this.queryDoc
518
508
  );
519
- await import_fs_extra.default.outputFile(
509
+ await fs.outputFile(
520
510
  this.configManager.generatedFragmentsFilePath,
521
511
  this.fragDoc
522
512
  );
@@ -524,21 +514,21 @@ var Codegen = class {
524
514
  const { clientString } = await this.genClient();
525
515
  const databaseClientString = this.configManager.hasSelfHostedConfig() ? await this.genDatabaseClient() : "";
526
516
  const { codeString, schemaString } = await this.genTypes();
527
- await import_fs_extra.default.outputFile(
517
+ await fs.outputFile(
528
518
  this.configManager.generatedGraphQLGQLPath,
529
519
  schemaString
530
520
  );
531
521
  if (this.configManager.isUsingTs()) {
532
- await import_fs_extra.default.outputFile(
522
+ await fs.outputFile(
533
523
  this.configManager.generatedTypesTSFilePath,
534
524
  codeString
535
525
  );
536
- await import_fs_extra.default.outputFile(
526
+ await fs.outputFile(
537
527
  this.configManager.generatedClientTSFilePath,
538
528
  clientString
539
529
  );
540
530
  if (this.configManager.hasSelfHostedConfig()) {
541
- await import_fs_extra.default.outputFile(
531
+ await fs.outputFile(
542
532
  this.configManager.generatedDatabaseClientTSFilePath,
543
533
  databaseClientString
544
534
  );
@@ -547,35 +537,35 @@ var Codegen = class {
547
537
  await unlinkIfExists(this.configManager.generatedTypesDFilePath);
548
538
  await unlinkIfExists(this.configManager.generatedTypesJSFilePath);
549
539
  } else {
550
- await import_fs_extra.default.outputFile(
540
+ await fs.outputFile(
551
541
  this.configManager.generatedTypesDFilePath,
552
542
  codeString
553
543
  );
554
- const jsTypes = await (0, import_esbuild.transform)(codeString, { loader: "ts" });
555
- await import_fs_extra.default.outputFile(
544
+ const jsTypes = await transform(codeString, { loader: "ts" });
545
+ await fs.outputFile(
556
546
  this.configManager.generatedTypesJSFilePath,
557
547
  jsTypes.code
558
548
  );
559
- await import_fs_extra.default.outputFile(
549
+ await fs.outputFile(
560
550
  this.configManager.generatedClientDFilePath,
561
551
  clientString
562
552
  );
563
- const jsClient = await (0, import_esbuild.transform)(clientString, { loader: "ts" });
564
- await import_fs_extra.default.outputFile(
553
+ const jsClient = await transform(clientString, { loader: "ts" });
554
+ await fs.outputFile(
565
555
  this.configManager.generatedClientJSFilePath,
566
556
  jsClient.code
567
557
  );
568
558
  await unlinkIfExists(this.configManager.generatedTypesTSFilePath);
569
559
  await unlinkIfExists(this.configManager.generatedClientTSFilePath);
570
560
  if (this.configManager.hasSelfHostedConfig()) {
571
- const jsDatabaseClient = await (0, import_esbuild.transform)(databaseClientString, {
561
+ const jsDatabaseClient = await transform(databaseClientString, {
572
562
  loader: "ts"
573
563
  });
574
- await import_fs_extra.default.outputFile(
564
+ await fs.outputFile(
575
565
  this.configManager.generatedDatabaseClientJSFilePath,
576
566
  jsDatabaseClient.code
577
567
  );
578
- await import_fs_extra.default.outputFile(
568
+ await fs.outputFile(
579
569
  this.configManager.generatedDatabaseClientDFilePath,
580
570
  databaseClientString
581
571
  );
@@ -623,7 +613,7 @@ var Codegen = class {
623
613
  const authCollection = this.tinaSchema.getCollections().find((c) => c.isAuthCollection);
624
614
  let authFields = [];
625
615
  if (authCollection) {
626
- const usersFields = (0, import_graphql6.mapUserFields)(authCollection, []);
616
+ const usersFields = mapUserFields(authCollection, []);
627
617
  if (usersFields.length === 0) {
628
618
  throw new Error("No user field found");
629
619
  }
@@ -713,7 +703,7 @@ export default databaseClient;
713
703
  const apiURL = this.getApiURL();
714
704
  const clientString = `import { createClient } from "tinacms/dist/client";
715
705
  import { queries } from "./types";
716
- export const client = createClient({ ${this.noClientBuildCache === false ? `cacheDir: '${(0, import_normalize_path.default)(
706
+ export const client = createClient({ ${this.noClientBuildCache === false ? `cacheDir: '${normalizePath(
717
707
  this.configManager.generatedCachePath
718
708
  )}', ` : ""}url: '${apiURL}', token: '${token}', queries, ${errorPolicy ? `errorPolicy: '${errorPolicy}'` : ""} });
719
709
  export default client;
@@ -739,7 +729,7 @@ export default client;
739
729
  ${typescriptTypes}
740
730
  `;
741
731
  const schemaString = `# DO NOT MODIFY THIS FILE. This file is automatically generated by Tina
742
- ${(0, import_graphql5.printSchema)(this.schema)}
732
+ ${printSchema2(this.schema)}
743
733
  schema {
744
734
  query: Query
745
735
  mutation: Mutation
@@ -751,7 +741,7 @@ schema {
751
741
  var maybeWarnFragmentSize = async (filepath) => {
752
742
  if (
753
743
  // is the file bigger than 100kb?
754
- (await import_fs_extra.default.stat(filepath)).size > // convert to 100 kb to bytes
744
+ (await fs.stat(filepath)).size > // convert to 100 kb to bytes
755
745
  100 * 1024
756
746
  ) {
757
747
  console.warn(
@@ -768,26 +758,28 @@ var maybeWarnFragmentSize = async (filepath) => {
768
758
  }
769
759
  };
770
760
  var unlinkIfExists = async (filepath) => {
771
- if (import_fs_extra.default.existsSync(filepath)) {
772
- import_fs_extra.default.unlinkSync(filepath);
761
+ if (fs.existsSync(filepath)) {
762
+ fs.unlinkSync(filepath);
773
763
  }
774
764
  };
775
765
 
776
766
  // src/next/config-manager.ts
777
- var import_fs_extra2 = __toESM(require("fs-extra"));
778
- var import_path3 = __toESM(require("path"));
779
- var import_os = __toESM(require("os"));
780
- var esbuild = __toESM(require("esbuild"));
781
- var dotenv = __toESM(require("dotenv"));
782
- var import_normalize_path2 = __toESM(require("normalize-path"));
783
- var import_chalk3 = __toESM(require("chalk"));
767
+ import fs2 from "fs-extra";
768
+ import path3 from "path";
769
+ import os from "os";
770
+ import { pathToFileURL } from "url";
771
+ import * as esbuild from "esbuild";
772
+ import * as dotenv from "dotenv";
773
+ import normalizePath2 from "normalize-path";
774
+ import chalk3 from "chalk";
775
+ import { createRequire } from "module";
784
776
 
785
777
  // src/utils/path.ts
786
- var import_path2 = __toESM(require("path"));
778
+ import path2 from "path";
787
779
  function stripNativeTrailingSlash(p) {
788
- const { root } = import_path2.default.parse(p);
780
+ const { root } = path2.parse(p);
789
781
  let str = p;
790
- while (str.length > root.length && str.endsWith(import_path2.default.sep)) {
782
+ while (str.length > root.length && str.endsWith(path2.sep)) {
791
783
  str = str.slice(0, -1);
792
784
  }
793
785
  return str;
@@ -802,17 +794,57 @@ var GRAPHQL_GQL_FILE = "schema.gql";
802
794
  var SCHEMA_JSON_FILE = "_schema.json";
803
795
  var LOOKUP_JSON_FILE = "_lookup.json";
804
796
  var ConfigManager = class {
797
+ config;
798
+ rootPath;
799
+ tinaFolderPath;
800
+ isUsingLegacyFolder;
801
+ tinaConfigFilePath;
802
+ tinaSpaPackagePath;
803
+ contentRootPath;
804
+ envFilePath;
805
+ generatedCachePath;
806
+ generatedFolderPath;
807
+ generatedFolderPathContentRepo;
808
+ generatedGraphQLGQLPath;
809
+ generatedGraphQLJSONPath;
810
+ generatedSchemaJSONPath;
811
+ generatedLookupJSONPath;
812
+ generatedTypesTSFilePath;
813
+ generatedTypesJSFilePath;
814
+ generatedTypesDFilePath;
815
+ generatedClientTSFilePath;
816
+ generatedClientJSFilePath;
817
+ generatedClientDFilePath;
818
+ generatedDatabaseClientJSFilePath;
819
+ generatedDatabaseClientTSFilePath;
820
+ generatedDatabaseClientDFilePath;
821
+ generatedQueriesFilePath;
822
+ generatedFragmentsFilePath;
823
+ generatedQueriesAndFragmentsGlob;
824
+ userQueriesAndFragmentsGlob;
825
+ publicFolderPath;
826
+ outputFolderPath;
827
+ outputHTMLFilePath;
828
+ outputGitignorePath;
829
+ selfHostedDatabaseFilePath;
830
+ prebuildFilePath;
831
+ spaRootPath;
832
+ spaMainPath;
833
+ spaHTMLPath;
834
+ tinaGraphQLVersionFromCLI;
835
+ legacyNoSDK;
836
+ watchList;
805
837
  constructor({
806
838
  rootPath = process.cwd(),
807
839
  tinaGraphQLVersion,
808
840
  legacyNoSDK
809
841
  }) {
810
- this.rootPath = (0, import_normalize_path2.default)(rootPath);
842
+ this.rootPath = normalizePath2(rootPath);
811
843
  this.tinaGraphQLVersionFromCLI = tinaGraphQLVersion;
812
844
  this.legacyNoSDK = legacyNoSDK;
813
845
  }
814
846
  isUsingTs() {
815
- return [".ts", ".tsx"].includes(import_path3.default.extname(this.tinaConfigFilePath));
847
+ return [".ts", ".tsx"].includes(path3.extname(this.tinaConfigFilePath));
816
848
  }
817
849
  hasSelfHostedConfig() {
818
850
  return !!this.selfHostedDatabaseFilePath;
@@ -827,13 +859,14 @@ var ConfigManager = class {
827
859
  return this.config.client?.skip || false;
828
860
  }
829
861
  async processConfig() {
862
+ const require2 = createRequire(import.meta.url);
830
863
  this.tinaFolderPath = await this.getTinaFolderPath(this.rootPath);
831
- this.envFilePath = import_path3.default.resolve(
832
- import_path3.default.join(this.tinaFolderPath, "..", ".env")
864
+ this.envFilePath = path3.resolve(
865
+ path3.join(this.tinaFolderPath, "..", ".env")
833
866
  );
834
867
  dotenv.config({ path: this.envFilePath });
835
868
  this.tinaConfigFilePath = await this.getPathWithExtension(
836
- import_path3.default.join(this.tinaFolderPath, "config")
869
+ path3.join(this.tinaFolderPath, "config")
837
870
  );
838
871
  if (!this.tinaConfigFilePath) {
839
872
  throw new Error(
@@ -841,89 +874,89 @@ var ConfigManager = class {
841
874
  );
842
875
  }
843
876
  this.selfHostedDatabaseFilePath = await this.getPathWithExtension(
844
- import_path3.default.join(this.tinaFolderPath, "database")
877
+ path3.join(this.tinaFolderPath, "database")
845
878
  );
846
- this.generatedFolderPath = import_path3.default.join(this.tinaFolderPath, GENERATED_FOLDER);
847
- this.generatedCachePath = import_path3.default.join(
879
+ this.generatedFolderPath = path3.join(this.tinaFolderPath, GENERATED_FOLDER);
880
+ this.generatedCachePath = path3.join(
848
881
  this.generatedFolderPath,
849
882
  ".cache",
850
883
  String((/* @__PURE__ */ new Date()).getTime())
851
884
  );
852
- this.generatedGraphQLGQLPath = import_path3.default.join(
885
+ this.generatedGraphQLGQLPath = path3.join(
853
886
  this.generatedFolderPath,
854
887
  GRAPHQL_GQL_FILE
855
888
  );
856
- this.generatedGraphQLJSONPath = import_path3.default.join(
889
+ this.generatedGraphQLJSONPath = path3.join(
857
890
  this.generatedFolderPath,
858
891
  GRAPHQL_JSON_FILE
859
892
  );
860
- this.generatedSchemaJSONPath = import_path3.default.join(
893
+ this.generatedSchemaJSONPath = path3.join(
861
894
  this.generatedFolderPath,
862
895
  SCHEMA_JSON_FILE
863
896
  );
864
- this.generatedLookupJSONPath = import_path3.default.join(
897
+ this.generatedLookupJSONPath = path3.join(
865
898
  this.generatedFolderPath,
866
899
  LOOKUP_JSON_FILE
867
900
  );
868
- this.generatedQueriesFilePath = import_path3.default.join(
901
+ this.generatedQueriesFilePath = path3.join(
869
902
  this.generatedFolderPath,
870
903
  "queries.gql"
871
904
  );
872
- this.generatedFragmentsFilePath = import_path3.default.join(
905
+ this.generatedFragmentsFilePath = path3.join(
873
906
  this.generatedFolderPath,
874
907
  "frags.gql"
875
908
  );
876
- this.generatedTypesTSFilePath = import_path3.default.join(
909
+ this.generatedTypesTSFilePath = path3.join(
877
910
  this.generatedFolderPath,
878
911
  "types.ts"
879
912
  );
880
- this.generatedTypesJSFilePath = import_path3.default.join(
913
+ this.generatedTypesJSFilePath = path3.join(
881
914
  this.generatedFolderPath,
882
915
  "types.js"
883
916
  );
884
- this.generatedTypesDFilePath = import_path3.default.join(
917
+ this.generatedTypesDFilePath = path3.join(
885
918
  this.generatedFolderPath,
886
919
  "types.d.ts"
887
920
  );
888
- this.userQueriesAndFragmentsGlob = import_path3.default.join(
921
+ this.userQueriesAndFragmentsGlob = path3.join(
889
922
  this.tinaFolderPath,
890
923
  "queries/**/*.{graphql,gql}"
891
924
  );
892
- this.generatedQueriesAndFragmentsGlob = import_path3.default.join(
925
+ this.generatedQueriesAndFragmentsGlob = path3.join(
893
926
  this.generatedFolderPath,
894
927
  "*.{graphql,gql}"
895
928
  );
896
- this.generatedClientTSFilePath = import_path3.default.join(
929
+ this.generatedClientTSFilePath = path3.join(
897
930
  this.generatedFolderPath,
898
931
  "client.ts"
899
932
  );
900
- this.generatedClientJSFilePath = import_path3.default.join(
933
+ this.generatedClientJSFilePath = path3.join(
901
934
  this.generatedFolderPath,
902
935
  "client.js"
903
936
  );
904
- this.generatedClientDFilePath = import_path3.default.join(
937
+ this.generatedClientDFilePath = path3.join(
905
938
  this.generatedFolderPath,
906
939
  "client.d.ts"
907
940
  );
908
- this.generatedDatabaseClientDFilePath = import_path3.default.join(
941
+ this.generatedDatabaseClientDFilePath = path3.join(
909
942
  this.generatedFolderPath,
910
943
  "databaseClient.d.ts"
911
944
  );
912
- this.generatedDatabaseClientTSFilePath = import_path3.default.join(
945
+ this.generatedDatabaseClientTSFilePath = path3.join(
913
946
  this.generatedFolderPath,
914
947
  "databaseClient.ts"
915
948
  );
916
- this.generatedDatabaseClientJSFilePath = import_path3.default.join(
949
+ this.generatedDatabaseClientJSFilePath = path3.join(
917
950
  this.generatedFolderPath,
918
951
  "databaseClient.js"
919
952
  );
920
- const clientExists = this.isUsingTs() ? await import_fs_extra2.default.pathExists(this.generatedClientTSFilePath) : await import_fs_extra2.default.pathExists(this.generatedClientJSFilePath);
953
+ const clientExists = this.isUsingTs() ? await fs2.pathExists(this.generatedClientTSFilePath) : await fs2.pathExists(this.generatedClientJSFilePath);
921
954
  if (!clientExists) {
922
955
  const file = "export default ()=>({})\nexport const client = ()=>({})";
923
956
  if (this.isUsingTs()) {
924
- await import_fs_extra2.default.outputFile(this.generatedClientTSFilePath, file);
957
+ await fs2.outputFile(this.generatedClientTSFilePath, file);
925
958
  } else {
926
- await import_fs_extra2.default.outputFile(this.generatedClientJSFilePath, file);
959
+ await fs2.outputFile(this.generatedClientJSFilePath, file);
927
960
  }
928
961
  }
929
962
  const { config: config2, prebuildPath, watchList } = await this.loadConfigFile(
@@ -933,29 +966,29 @@ var ConfigManager = class {
933
966
  this.watchList = watchList;
934
967
  this.config = config2;
935
968
  this.prebuildFilePath = prebuildPath;
936
- this.publicFolderPath = import_path3.default.join(
969
+ this.publicFolderPath = path3.join(
937
970
  this.rootPath,
938
971
  this.config.build.publicFolder
939
972
  );
940
- this.outputFolderPath = import_path3.default.join(
973
+ this.outputFolderPath = path3.join(
941
974
  this.publicFolderPath,
942
975
  this.config.build.outputFolder
943
976
  );
944
- this.outputHTMLFilePath = import_path3.default.join(this.outputFolderPath, "index.html");
945
- this.outputGitignorePath = import_path3.default.join(this.outputFolderPath, ".gitignore");
977
+ this.outputHTMLFilePath = path3.join(this.outputFolderPath, "index.html");
978
+ this.outputGitignorePath = path3.join(this.outputFolderPath, ".gitignore");
946
979
  const fullLocalContentPath = stripNativeTrailingSlash(
947
- import_path3.default.join(this.tinaFolderPath, this.config.localContentPath || "")
980
+ path3.join(this.tinaFolderPath, this.config.localContentPath || "")
948
981
  );
949
982
  if (this.config.localContentPath) {
950
- const localContentPathExists = await import_fs_extra2.default.pathExists(fullLocalContentPath);
983
+ const localContentPathExists = await fs2.pathExists(fullLocalContentPath);
951
984
  if (localContentPathExists) {
952
985
  logger.info(`Using separate content repo at ${fullLocalContentPath}`);
953
986
  this.contentRootPath = fullLocalContentPath;
954
987
  } else {
955
988
  logger.warn(
956
- `${import_chalk3.default.yellow("Warning:")} The localContentPath ${import_chalk3.default.cyan(
989
+ `${chalk3.yellow("Warning:")} The localContentPath ${chalk3.cyan(
957
990
  fullLocalContentPath
958
- )} does not exist. Please create it or remove the localContentPath from your config file at ${import_chalk3.default.cyan(
991
+ )} does not exist. Please create it or remove the localContentPath from your config file at ${chalk3.cyan(
959
992
  this.tinaConfigFilePath
960
993
  )}`
961
994
  );
@@ -964,22 +997,22 @@ var ConfigManager = class {
964
997
  if (!this.contentRootPath) {
965
998
  this.contentRootPath = this.rootPath;
966
999
  }
967
- this.generatedFolderPathContentRepo = import_path3.default.join(
1000
+ this.generatedFolderPathContentRepo = path3.join(
968
1001
  await this.getTinaFolderPath(this.contentRootPath),
969
1002
  GENERATED_FOLDER
970
1003
  );
971
- this.spaMainPath = require.resolve("@tinacms/app");
972
- this.spaRootPath = import_path3.default.join(this.spaMainPath, "..", "..");
1004
+ this.spaMainPath = require2.resolve("@tinacms/app");
1005
+ this.spaRootPath = path3.join(this.spaMainPath, "..", "..");
973
1006
  }
974
1007
  async getTinaFolderPath(rootPath) {
975
- const tinaFolderPath = import_path3.default.join(rootPath, TINA_FOLDER);
976
- const tinaFolderExists = await import_fs_extra2.default.pathExists(tinaFolderPath);
1008
+ const tinaFolderPath = path3.join(rootPath, TINA_FOLDER);
1009
+ const tinaFolderExists = await fs2.pathExists(tinaFolderPath);
977
1010
  if (tinaFolderExists) {
978
1011
  this.isUsingLegacyFolder = false;
979
1012
  return tinaFolderPath;
980
1013
  }
981
- const legacyFolderPath = import_path3.default.join(rootPath, LEGACY_TINA_FOLDER);
982
- const legacyFolderExists = await import_fs_extra2.default.pathExists(legacyFolderPath);
1014
+ const legacyFolderPath = path3.join(rootPath, LEGACY_TINA_FOLDER);
1015
+ const legacyFolderExists = await fs2.pathExists(legacyFolderPath);
983
1016
  if (legacyFolderExists) {
984
1017
  this.isUsingLegacyFolder = true;
985
1018
  return legacyFolderPath;
@@ -998,7 +1031,7 @@ var ConfigManager = class {
998
1031
  patch: version2[2] || "x"
999
1032
  };
1000
1033
  }
1001
- const generatedSchema = import_fs_extra2.default.readJSONSync(this.generatedSchemaJSONPath);
1034
+ const generatedSchema = fs2.readJSONSync(this.generatedSchemaJSONPath);
1002
1035
  if (!generatedSchema || !(typeof generatedSchema?.version !== "undefined")) {
1003
1036
  throw new Error(
1004
1037
  `Can not find Tina GraphQL version in ${this.generatedSchemaJSONPath}`
@@ -1045,7 +1078,7 @@ var ConfigManager = class {
1045
1078
  return;
1046
1079
  }
1047
1080
  const filepathWithExtension = `${filepath}.${ext}`;
1048
- const exists = import_fs_extra2.default.existsSync(filepathWithExtension);
1081
+ const exists = fs2.existsSync(filepathWithExtension);
1049
1082
  if (exists) {
1050
1083
  result = filepathWithExtension;
1051
1084
  }
@@ -1054,33 +1087,53 @@ var ConfigManager = class {
1054
1087
  return result;
1055
1088
  }
1056
1089
  async loadDatabaseFile() {
1057
- const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
1058
- const outfile = import_path3.default.join(tmpdir, "database.build.js");
1090
+ const tmpdir = path3.join(os.tmpdir(), Date.now().toString());
1091
+ const outfile = path3.join(tmpdir, "database.build.mjs");
1059
1092
  await esbuild.build({
1060
1093
  entryPoints: [this.selfHostedDatabaseFilePath],
1061
1094
  bundle: true,
1062
1095
  platform: "node",
1096
+ format: "esm",
1063
1097
  outfile,
1064
- loader: loaders
1098
+ loader: loaders,
1099
+ // Provide a require() polyfill for ESM bundles containing CommonJS packages.
1100
+ // Some bundled packages (e.g., 'scmp' used by 'mongodb-level') use require('crypto').
1101
+ // When esbuild inlines these CommonJS packages, it keeps the require() calls,
1102
+ // but ESM doesn't have a global require. This banner creates one using Node.js's
1103
+ // official createRequire API, allowing the bundled CommonJS code to work in ESM.
1104
+ banner: {
1105
+ js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`
1106
+ }
1065
1107
  });
1066
- const result = require(outfile);
1067
- import_fs_extra2.default.removeSync(outfile);
1108
+ const result = await import(pathToFileURL(outfile).href);
1109
+ fs2.removeSync(outfile);
1068
1110
  return result.default;
1069
1111
  }
1070
1112
  async loadConfigFile(generatedFolderPath, configFilePath) {
1071
- const tmpdir = import_path3.default.join(import_os.default.tmpdir(), Date.now().toString());
1072
- const preBuildConfigPath = import_path3.default.join(
1113
+ const tmpdir = path3.join(os.tmpdir(), Date.now().toString());
1114
+ const preBuildConfigPath = path3.join(
1073
1115
  this.generatedFolderPath,
1074
1116
  "config.prebuild.jsx"
1075
1117
  );
1076
- const outfile = import_path3.default.join(tmpdir, "config.build.jsx");
1077
- const outfile2 = import_path3.default.join(tmpdir, "config.build.js");
1078
- const tempTSConfigFile = import_path3.default.join(tmpdir, "tsconfig.json");
1079
- import_fs_extra2.default.outputFileSync(tempTSConfigFile, "{}");
1118
+ const nativeNodeModulesPlugin = {
1119
+ name: "native-node-modules",
1120
+ setup(build3) {
1121
+ build3.onResolve({ filter: /^node:.*/ }, (args) => {
1122
+ return {
1123
+ path: args.path,
1124
+ external: true
1125
+ };
1126
+ });
1127
+ }
1128
+ };
1129
+ const outfile = path3.join(tmpdir, "config.build.jsx");
1130
+ const outfile2 = path3.join(tmpdir, "config.build.mjs");
1131
+ const tempTSConfigFile = path3.join(tmpdir, "tsconfig.json");
1132
+ fs2.outputFileSync(tempTSConfigFile, "{}");
1080
1133
  const result2 = await esbuild.build({
1081
1134
  entryPoints: [configFilePath],
1082
1135
  bundle: true,
1083
- target: ["es2020"],
1136
+ target: ["esnext"],
1084
1137
  platform: "browser",
1085
1138
  format: "esm",
1086
1139
  logLevel: "silent",
@@ -1100,9 +1153,10 @@ var ConfigManager = class {
1100
1153
  await esbuild.build({
1101
1154
  entryPoints: [configFilePath],
1102
1155
  bundle: true,
1103
- target: ["es2020"],
1156
+ target: ["esnext"],
1104
1157
  logLevel: "silent",
1105
1158
  platform: "node",
1159
+ format: "esm",
1106
1160
  outfile,
1107
1161
  loader: loaders
1108
1162
  });
@@ -1112,19 +1166,21 @@ var ConfigManager = class {
1112
1166
  // Suppress warning about comparison with -0 from client module
1113
1167
  logLevel: "silent",
1114
1168
  platform: "node",
1169
+ target: ["esnext"],
1170
+ format: "esm",
1115
1171
  outfile: outfile2,
1116
1172
  loader: loaders
1117
1173
  });
1118
1174
  let result;
1119
1175
  try {
1120
- result = require(outfile2);
1176
+ result = await import(pathToFileURL(outfile2).href);
1121
1177
  } catch (e) {
1122
1178
  console.error("Unexpected error loading config");
1123
1179
  console.error(e);
1124
1180
  throw e;
1125
1181
  }
1126
- import_fs_extra2.default.removeSync(outfile);
1127
- import_fs_extra2.default.removeSync(outfile2);
1182
+ fs2.removeSync(outfile);
1183
+ fs2.removeSync(outfile2);
1128
1184
  return {
1129
1185
  config: result.default,
1130
1186
  prebuildPath: preBuildConfigPath,
@@ -1159,20 +1215,24 @@ var loaders = {
1159
1215
  };
1160
1216
 
1161
1217
  // src/next/database.ts
1162
- var import_graphql7 = require("@tinacms/graphql");
1163
- var import_readable_stream = require("readable-stream");
1164
- var import_net = require("net");
1165
- var import_many_level = require("many-level");
1166
- var import_memory_level = require("memory-level");
1218
+ import {
1219
+ createDatabaseInternal,
1220
+ FilesystemBridge,
1221
+ TinaLevelClient
1222
+ } from "@tinacms/graphql";
1223
+ import { pipeline } from "readable-stream";
1224
+ import { createServer } from "net";
1225
+ import { ManyLevelHost } from "many-level";
1226
+ import { MemoryLevel } from "memory-level";
1167
1227
  var createDBServer = (port) => {
1168
- const levelHost = new import_many_level.ManyLevelHost(
1228
+ const levelHost = new ManyLevelHost(
1169
1229
  // @ts-ignore
1170
- new import_memory_level.MemoryLevel({
1230
+ new MemoryLevel({
1171
1231
  valueEncoding: "json"
1172
1232
  })
1173
1233
  );
1174
- const dbServer = (0, import_net.createServer)(function(socket) {
1175
- return (0, import_readable_stream.pipeline)(socket, levelHost.createRpcStream(), socket, () => {
1234
+ const dbServer = createServer(function(socket) {
1235
+ return pipeline(socket, levelHost.createRpcStream(), socket, () => {
1176
1236
  });
1177
1237
  });
1178
1238
  dbServer.once("error", (err) => {
@@ -1186,7 +1246,7 @@ var createDBServer = (port) => {
1186
1246
  };
1187
1247
  async function createAndInitializeDatabase(configManager, datalayerPort, bridgeOverride) {
1188
1248
  let database;
1189
- const bridge = bridgeOverride || new import_graphql7.FilesystemBridge(configManager.rootPath, configManager.contentRootPath);
1249
+ const bridge = bridgeOverride || new FilesystemBridge(configManager.rootPath, configManager.contentRootPath);
1190
1250
  if (configManager.hasSelfHostedConfig() && configManager.config.contentApiUrlOverride) {
1191
1251
  database = await configManager.loadDatabaseFile();
1192
1252
  database.bridge = bridge;
@@ -1198,9 +1258,9 @@ async function createAndInitializeDatabase(configManager, datalayerPort, bridgeO
1198
1258
  )} but there was no "contentApiUrlOverride" set. Falling back to built-in datalayer`
1199
1259
  );
1200
1260
  }
1201
- const level = new import_graphql7.TinaLevelClient(datalayerPort);
1261
+ const level = new TinaLevelClient(datalayerPort);
1202
1262
  level.openConnection();
1203
- database = (0, import_graphql7.createDatabaseInternal)({
1263
+ database = createDatabaseInternal({
1204
1264
  bridge,
1205
1265
  level,
1206
1266
  tinaDirectory: configManager.isUsingLegacyFolder ? LEGACY_TINA_FOLDER : TINA_FOLDER
@@ -1210,17 +1270,17 @@ async function createAndInitializeDatabase(configManager, datalayerPort, bridgeO
1210
1270
  }
1211
1271
 
1212
1272
  // src/next/commands/baseCommands.ts
1213
- var import_clipanion = require("clipanion");
1214
- var import_chalk4 = __toESM(require("chalk"));
1273
+ import { Command, Option } from "clipanion";
1274
+ import chalk4 from "chalk";
1215
1275
 
1216
1276
  // src/utils/start-subprocess.ts
1217
- var import_child_process = __toESM(require("child_process"));
1277
+ import childProcess from "child_process";
1218
1278
  var startSubprocess2 = async ({ command: command2 }) => {
1219
1279
  if (typeof command2 === "string") {
1220
1280
  const commands = command2.split(" ");
1221
1281
  const firstCommand = commands[0];
1222
1282
  const args = commands.slice(1) || [];
1223
- const ps = import_child_process.default.spawn(firstCommand, args, {
1283
+ const ps = childProcess.spawn(firstCommand, args, {
1224
1284
  stdio: "inherit",
1225
1285
  shell: true
1226
1286
  });
@@ -1244,45 +1304,42 @@ stack: ${code.stack || "No stack was provided"}`);
1244
1304
  };
1245
1305
 
1246
1306
  // src/next/commands/baseCommands.ts
1247
- var import_graphql8 = require("@tinacms/graphql");
1248
- var import_fs_extra3 = __toESM(require("fs-extra"));
1249
- var BaseCommand = class extends import_clipanion.Command {
1250
- constructor() {
1251
- super(...arguments);
1252
- this.experimentalDataLayer = import_clipanion.Option.Boolean("--experimentalData", {
1253
- description: "DEPRECATED - Build the server with additional data querying capabilities"
1254
- });
1255
- this.isomorphicGitBridge = import_clipanion.Option.Boolean("--isomorphicGitBridge", {
1256
- description: "DEPRECATED - Enable Isomorphic Git Bridge Implementation"
1257
- });
1258
- this.port = import_clipanion.Option.String("-p,--port", "4001", {
1259
- description: "Specify a port to run the server on. (default 4001)"
1260
- });
1261
- this.datalayerPort = import_clipanion.Option.String("--datalayer-port", "9000", {
1262
- description: "Specify a port to run the datalayer server on. (default 9000)"
1263
- });
1264
- this.subCommand = import_clipanion.Option.String("-c,--command", {
1265
- description: "The sub-command to run"
1266
- });
1267
- this.rootPath = import_clipanion.Option.String("--rootPath", {
1268
- description: "Specify the root directory to run the CLI from (defaults to current working directory)"
1269
- });
1270
- this.verbose = import_clipanion.Option.Boolean("-v,--verbose", false, {
1271
- description: "increase verbosity of logged output"
1272
- });
1273
- this.noSDK = import_clipanion.Option.Boolean("--noSDK", false, {
1274
- description: "DEPRECATED - This should now be set in the config at client.skip = true'. Don't generate the generated client SDK"
1275
- });
1276
- this.noTelemetry = import_clipanion.Option.Boolean("--noTelemetry", false, {
1277
- description: "Disable anonymous telemetry that is collected"
1278
- });
1279
- }
1307
+ import { getChangedFiles, getSha, shaExists } from "@tinacms/graphql";
1308
+ import fs3 from "fs-extra";
1309
+ var BaseCommand = class extends Command {
1310
+ experimentalDataLayer = Option.Boolean("--experimentalData", {
1311
+ description: "DEPRECATED - Build the server with additional data querying capabilities"
1312
+ });
1313
+ isomorphicGitBridge = Option.Boolean("--isomorphicGitBridge", {
1314
+ description: "DEPRECATED - Enable Isomorphic Git Bridge Implementation"
1315
+ });
1316
+ port = Option.String("-p,--port", "4001", {
1317
+ description: "Specify a port to run the server on. (default 4001)"
1318
+ });
1319
+ datalayerPort = Option.String("--datalayer-port", "9000", {
1320
+ description: "Specify a port to run the datalayer server on. (default 9000)"
1321
+ });
1322
+ subCommand = Option.String("-c,--command", {
1323
+ description: "The sub-command to run"
1324
+ });
1325
+ rootPath = Option.String("--rootPath", {
1326
+ description: "Specify the root directory to run the CLI from (defaults to current working directory)"
1327
+ });
1328
+ verbose = Option.Boolean("-v,--verbose", false, {
1329
+ description: "increase verbosity of logged output"
1330
+ });
1331
+ noSDK = Option.Boolean("--noSDK", false, {
1332
+ description: "DEPRECATED - This should now be set in the config at client.skip = true'. Don't generate the generated client SDK"
1333
+ });
1334
+ noTelemetry = Option.Boolean("--noTelemetry", false, {
1335
+ description: "Disable anonymous telemetry that is collected"
1336
+ });
1280
1337
  async startSubCommand() {
1281
1338
  let subProc;
1282
1339
  if (this.subCommand) {
1283
1340
  subProc = await startSubprocess2({ command: this.subCommand });
1284
1341
  logger.info(
1285
- `Running web application with command: ${import_chalk4.default.cyan(this.subCommand)}`
1342
+ `Running web application with command: ${chalk4.cyan(this.subCommand)}`
1286
1343
  );
1287
1344
  }
1288
1345
  function exitHandler(options, exitCode) {
@@ -1330,7 +1387,7 @@ var BaseCommand = class extends import_clipanion.Command {
1330
1387
  const rootPath = configManager.rootPath;
1331
1388
  let sha;
1332
1389
  try {
1333
- sha = await (0, import_graphql8.getSha)({ fs: import_fs_extra3.default, dir: rootPath });
1390
+ sha = await getSha({ fs: fs3, dir: rootPath });
1334
1391
  } catch (e) {
1335
1392
  if (partialReindex) {
1336
1393
  console.error(
@@ -1340,7 +1397,7 @@ var BaseCommand = class extends import_clipanion.Command {
1340
1397
  }
1341
1398
  }
1342
1399
  const lastSha = await database.getMetadata("lastSha");
1343
- const exists = lastSha && await (0, import_graphql8.shaExists)({ fs: import_fs_extra3.default, dir: rootPath, sha: lastSha });
1400
+ const exists = lastSha && await shaExists({ fs: fs3, dir: rootPath, sha: lastSha });
1344
1401
  let res;
1345
1402
  if (partialReindex && lastSha && exists && sha) {
1346
1403
  const pathFilter = {};
@@ -1354,8 +1411,8 @@ var BaseCommand = class extends import_clipanion.Command {
1354
1411
  matches: collection.match?.exclude || collection.match?.include ? tinaSchema.getMatches({ collection }) : void 0
1355
1412
  };
1356
1413
  }
1357
- const { added, modified, deleted } = await (0, import_graphql8.getChangedFiles)({
1358
- fs: import_fs_extra3.default,
1414
+ const { added, modified, deleted } = await getChangedFiles({
1415
+ fs: fs3,
1359
1416
  dir: rootPath,
1360
1417
  from: lastSha,
1361
1418
  to: sha,
@@ -1478,34 +1535,38 @@ var devHTML = (port) => `<!DOCTYPE html>
1478
1535
  </html>`;
1479
1536
 
1480
1537
  // src/next/commands/dev-command/server/index.ts
1481
- var import_vite3 = require("vite");
1538
+ import { createServer as createViteServer } from "vite";
1482
1539
 
1483
1540
  // src/next/vite/index.ts
1484
- var import_node_path2 = __toESM(require("node:path"));
1485
- var import_plugin_react = __toESM(require("@vitejs/plugin-react"));
1486
- var import_fs_extra4 = __toESM(require("fs-extra"));
1487
- var import_normalize_path3 = __toESM(require("normalize-path"));
1488
- var import_vite = require("vite");
1541
+ import path5 from "node:path";
1542
+ import react from "@vitejs/plugin-react";
1543
+ import fs4 from "fs-extra";
1544
+ import normalizePath3 from "normalize-path";
1545
+ import {
1546
+ splitVendorChunkPlugin
1547
+ } from "vite";
1489
1548
 
1490
1549
  // src/next/vite/tailwind.ts
1491
- var import_node_path = __toESM(require("node:path"));
1492
- var import_aspect_ratio = __toESM(require("@tailwindcss/aspect-ratio"));
1493
- var import_container_queries = __toESM(require("@tailwindcss/container-queries"));
1494
- var import_typography = __toESM(require("@tailwindcss/typography"));
1495
- var import_tailwindcss = __toESM(require("tailwindcss"));
1496
- var import_defaultTheme = __toESM(require("tailwindcss/defaultTheme.js"));
1550
+ import path4 from "node:path";
1551
+ import aspectRatio from "@tailwindcss/aspect-ratio";
1552
+ import containerQueries from "@tailwindcss/container-queries";
1553
+ import twTypography from "@tailwindcss/typography";
1554
+ import tailwind from "tailwindcss";
1555
+ import defaultTheme from "tailwindcss/defaultTheme.js";
1556
+ import { createRequire as createRequire2 } from "module";
1497
1557
  var tinaTailwind = (spaPath, prebuildFilePath) => {
1498
1558
  return {
1499
1559
  name: "vite-plugin-tina",
1500
1560
  // @ts-ignore
1501
1561
  config: (viteConfig) => {
1562
+ const require2 = createRequire2(import.meta.url);
1502
1563
  const plugins = [];
1503
1564
  const content = [
1504
- import_node_path.default.join(spaPath, "src/**/*.{vue,js,ts,jsx,tsx,svelte}"),
1565
+ path4.join(spaPath, "src/**/*.{vue,js,ts,jsx,tsx,svelte}"),
1505
1566
  prebuildFilePath,
1506
- require.resolve("tinacms")
1567
+ require2.resolve("tinacms")
1507
1568
  ];
1508
- const tw = (0, import_tailwindcss.default)({
1569
+ const tw = tailwind({
1509
1570
  theme: {
1510
1571
  columns: {
1511
1572
  auto: "auto",
@@ -1717,7 +1778,7 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
1717
1778
  ring: "#0A0A0A"
1718
1779
  },
1719
1780
  fontFamily: {
1720
- sans: ["Inter", ...import_defaultTheme.default.fontFamily.sans]
1781
+ sans: ["Inter", ...defaultTheme.fontFamily.sans]
1721
1782
  },
1722
1783
  lineHeight: {
1723
1784
  3: "12px",
@@ -1742,9 +1803,9 @@ var tinaTailwind = (spaPath, prebuildFilePath) => {
1742
1803
  },
1743
1804
  content,
1744
1805
  plugins: [
1745
- (0, import_typography.default)({ className: "tina-prose" }),
1746
- import_aspect_ratio.default,
1747
- import_container_queries.default
1806
+ twTypography({ className: "tina-prose" }),
1807
+ aspectRatio,
1808
+ containerQueries
1748
1809
  ]
1749
1810
  });
1750
1811
  plugins.push(tw);
@@ -1765,35 +1826,35 @@ async function listFilesRecursively({
1765
1826
  config: config2,
1766
1827
  roothPath
1767
1828
  }) {
1768
- const fullDirectoryPath = import_node_path2.default.join(
1829
+ const fullDirectoryPath = path5.join(
1769
1830
  roothPath,
1770
1831
  config2.publicFolder,
1771
1832
  directoryPath
1772
1833
  );
1773
- const exists = await import_fs_extra4.default.pathExists(fullDirectoryPath);
1834
+ const exists = await fs4.pathExists(fullDirectoryPath);
1774
1835
  if (!exists) {
1775
1836
  return { "0": [] };
1776
1837
  }
1777
- const items = await import_fs_extra4.default.readdir(fullDirectoryPath);
1838
+ const items = await fs4.readdir(fullDirectoryPath);
1778
1839
  const staticMediaItems = [];
1779
1840
  for (const item of items) {
1780
- const itemPath = import_node_path2.default.join(fullDirectoryPath, item);
1781
- const stats = await import_fs_extra4.default.promises.lstat(itemPath);
1841
+ const itemPath = path5.join(fullDirectoryPath, item);
1842
+ const stats = await fs4.promises.lstat(itemPath);
1782
1843
  const staticMediaItem = {
1783
1844
  id: item,
1784
1845
  filename: item,
1785
1846
  type: stats.isDirectory() ? "dir" : "file",
1786
1847
  directory: `${directoryPath.replace(config2.mediaRoot, "")}`,
1787
- src: `/${import_node_path2.default.join(directoryPath, item)}`,
1848
+ src: `/${path5.join(directoryPath, item)}`,
1788
1849
  thumbnails: {
1789
- "75x75": `/${import_node_path2.default.join(directoryPath, item)}`,
1790
- "400x400": `/${import_node_path2.default.join(directoryPath, item)}`,
1791
- "1000x1000": `/${import_node_path2.default.join(directoryPath, item)}`
1850
+ "75x75": `/${path5.join(directoryPath, item)}`,
1851
+ "400x400": `/${path5.join(directoryPath, item)}`,
1852
+ "1000x1000": `/${path5.join(directoryPath, item)}`
1792
1853
  }
1793
1854
  };
1794
1855
  if (stats.isDirectory()) {
1795
1856
  staticMediaItem.children = await listFilesRecursively({
1796
- directoryPath: import_node_path2.default.join(directoryPath, item),
1857
+ directoryPath: path5.join(directoryPath, item),
1797
1858
  config: config2,
1798
1859
  roothPath
1799
1860
  });
@@ -1834,7 +1895,7 @@ var createConfig = async ({
1834
1895
  }
1835
1896
  }
1836
1897
  });
1837
- const staticMediaPath = import_node_path2.default.join(
1898
+ const staticMediaPath = path5.join(
1838
1899
  configManager.generatedFolderPath,
1839
1900
  "static-media.json"
1840
1901
  );
@@ -1844,21 +1905,21 @@ var createConfig = async ({
1844
1905
  config: configManager.config.media.tina,
1845
1906
  roothPath: configManager.rootPath
1846
1907
  });
1847
- await import_fs_extra4.default.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
1908
+ await fs4.outputFile(staticMediaPath, JSON.stringify(staticMedia, null, 2));
1848
1909
  } else {
1849
- await import_fs_extra4.default.outputFile(staticMediaPath, `[]`);
1910
+ await fs4.outputFile(staticMediaPath, `[]`);
1850
1911
  }
1851
1912
  const alias = {
1852
1913
  TINA_IMPORT: configManager.prebuildFilePath,
1853
1914
  SCHEMA_IMPORT: configManager.generatedGraphQLJSONPath,
1854
1915
  STATIC_MEDIA_IMPORT: staticMediaPath,
1855
- crypto: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1856
- fs: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1857
- os: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1858
- path: import_node_path2.default.join(configManager.spaRootPath, "src", "dummy-client.ts")
1916
+ crypto: path5.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1917
+ fs: path5.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1918
+ os: path5.join(configManager.spaRootPath, "src", "dummy-client.ts"),
1919
+ path: path5.join(configManager.spaRootPath, "src", "dummy-client.ts")
1859
1920
  };
1860
1921
  if (configManager.shouldSkipSDK()) {
1861
- alias["CLIENT_IMPORT"] = import_node_path2.default.join(
1922
+ alias["CLIENT_IMPORT"] = path5.join(
1862
1923
  configManager.spaRootPath,
1863
1924
  "src",
1864
1925
  "dummy-client.ts"
@@ -1874,7 +1935,7 @@ var createConfig = async ({
1874
1935
  const version2 = `${fullVersion.major}.${fullVersion.minor}`;
1875
1936
  const config2 = {
1876
1937
  root: configManager.spaRootPath,
1877
- base: `/${basePath ? `${(0, import_normalize_path3.default)(basePath)}/` : ""}${(0, import_normalize_path3.default)(
1938
+ base: `/${basePath ? `${normalizePath3(basePath)}/` : ""}${normalizePath3(
1878
1939
  configManager.config.build.outputFolder
1879
1940
  )}/`,
1880
1941
  appType: "spa",
@@ -1937,14 +1998,14 @@ var createConfig = async ({
1937
1998
  * `splitVendorChunkPlugin` is needed because `tinacms` is quite large,
1938
1999
  * Vite's chunking strategy chokes on memory issues for smaller machines (ie. on CI).
1939
2000
  */
1940
- (0, import_plugin_react.default)({
2001
+ react({
1941
2002
  babel: {
1942
2003
  // Supresses the warning [NOTE] babel The code generator has deoptimised the styling of
1943
2004
  compact: true
1944
2005
  },
1945
2006
  fastRefresh: false
1946
2007
  }),
1947
- (0, import_vite.splitVendorChunkPlugin)(),
2008
+ splitVendorChunkPlugin(),
1948
2009
  tinaTailwind(configManager.spaRootPath, configManager.prebuildFilePath),
1949
2010
  ...plugins
1950
2011
  ]
@@ -1953,21 +2014,21 @@ var createConfig = async ({
1953
2014
  };
1954
2015
 
1955
2016
  // src/next/vite/plugins.ts
1956
- var import_pluginutils = require("@rollup/pluginutils");
1957
- var import_fs = __toESM(require("fs"));
1958
- var import_vite2 = require("vite");
1959
- var import_esbuild2 = require("esbuild");
1960
- var import_path6 = __toESM(require("path"));
1961
- var import_body_parser = __toESM(require("body-parser"));
1962
- var import_cors = __toESM(require("cors"));
1963
- var import_graphql9 = require("@tinacms/graphql");
2017
+ import { createFilter } from "@rollup/pluginutils";
2018
+ import fs6 from "fs";
2019
+ import { transformWithEsbuild } from "vite";
2020
+ import { transform as esbuildTransform } from "esbuild";
2021
+ import path7 from "path";
2022
+ import bodyParser from "body-parser";
2023
+ import cors from "cors";
2024
+ import { resolve as gqlResolve } from "@tinacms/graphql";
1964
2025
 
1965
2026
  // src/next/commands/dev-command/server/media.ts
1966
- var import_fs_extra5 = __toESM(require("fs-extra"));
1967
- var import_path5 = __toESM(require("path"));
1968
- var import_busboy = __toESM(require("busboy"));
2027
+ import fs5 from "fs-extra";
2028
+ import path6, { join } from "path";
2029
+ import busboy from "busboy";
1969
2030
  var createMediaRouter = (config2) => {
1970
- const mediaFolder = import_path5.default.join(
2031
+ const mediaFolder = path6.join(
1971
2032
  config2.rootPath,
1972
2033
  config2.publicFolder,
1973
2034
  config2.mediaRoot
@@ -1991,12 +2052,12 @@ var createMediaRouter = (config2) => {
1991
2052
  res.end(JSON.stringify(didDelete));
1992
2053
  };
1993
2054
  const handlePost = async function(req, res) {
1994
- const bb = (0, import_busboy.default)({ headers: req.headers });
2055
+ const bb = busboy({ headers: req.headers });
1995
2056
  bb.on("file", async (_name, file, _info) => {
1996
2057
  const fullPath = decodeURI(req.url?.slice("/media/upload/".length));
1997
- const saveTo = import_path5.default.join(mediaFolder, ...fullPath.split("/"));
1998
- await import_fs_extra5.default.ensureDir(import_path5.default.dirname(saveTo));
1999
- file.pipe(import_fs_extra5.default.createWriteStream(saveTo));
2058
+ const saveTo = path6.join(mediaFolder, ...fullPath.split("/"));
2059
+ await fs5.ensureDir(path6.dirname(saveTo));
2060
+ file.pipe(fs5.createWriteStream(saveTo));
2000
2061
  });
2001
2062
  bb.on("error", (error) => {
2002
2063
  res.statusCode = 500;
@@ -2022,6 +2083,9 @@ var parseMediaFolder = (str) => {
2022
2083
  return returnString;
2023
2084
  };
2024
2085
  var MediaModel = class {
2086
+ rootPath;
2087
+ publicFolder;
2088
+ mediaRoot;
2025
2089
  constructor({ rootPath, publicFolder, mediaRoot }) {
2026
2090
  this.rootPath = rootPath;
2027
2091
  this.mediaRoot = mediaRoot;
@@ -2029,23 +2093,23 @@ var MediaModel = class {
2029
2093
  }
2030
2094
  async listMedia(args) {
2031
2095
  try {
2032
- const folderPath = (0, import_path5.join)(
2096
+ const folderPath = join(
2033
2097
  this.rootPath,
2034
2098
  this.publicFolder,
2035
2099
  this.mediaRoot,
2036
2100
  decodeURIComponent(args.searchPath)
2037
2101
  );
2038
2102
  const searchPath = parseMediaFolder(args.searchPath);
2039
- if (!await import_fs_extra5.default.pathExists(folderPath)) {
2103
+ if (!await fs5.pathExists(folderPath)) {
2040
2104
  return {
2041
2105
  files: [],
2042
2106
  directories: []
2043
2107
  };
2044
2108
  }
2045
- const filesStr = await import_fs_extra5.default.readdir(folderPath);
2109
+ const filesStr = await fs5.readdir(folderPath);
2046
2110
  const filesProm = filesStr.map(async (file) => {
2047
- const filePath = (0, import_path5.join)(folderPath, file);
2048
- const stat = await import_fs_extra5.default.stat(filePath);
2111
+ const filePath = join(folderPath, file);
2112
+ const stat = await fs5.stat(filePath);
2049
2113
  let src = `/${file}`;
2050
2114
  const isFile = stat.isFile();
2051
2115
  if (!isFile) {
@@ -2101,14 +2165,14 @@ var MediaModel = class {
2101
2165
  }
2102
2166
  async deleteMedia(args) {
2103
2167
  try {
2104
- const file = (0, import_path5.join)(
2168
+ const file = join(
2105
2169
  this.rootPath,
2106
2170
  this.publicFolder,
2107
2171
  this.mediaRoot,
2108
2172
  decodeURIComponent(args.searchPath)
2109
2173
  );
2110
- await import_fs_extra5.default.stat(file);
2111
- await import_fs_extra5.default.remove(file);
2174
+ await fs5.stat(file);
2175
+ await fs5.remove(file);
2112
2176
  return { ok: true };
2113
2177
  } catch (error) {
2114
2178
  console.error(error);
@@ -2166,9 +2230,9 @@ var transformTsxPlugin = ({
2166
2230
  const plug = {
2167
2231
  name: "transform-tsx",
2168
2232
  async transform(code, id) {
2169
- const extName = import_path6.default.extname(id);
2233
+ const extName = path7.extname(id);
2170
2234
  if (extName.startsWith(".tsx") || extName.startsWith(".ts")) {
2171
- const result = await (0, import_esbuild2.transform)(code, { loader: "tsx" });
2235
+ const result = await esbuildTransform(code, { loader: "tsx" });
2172
2236
  return {
2173
2237
  code: result.code
2174
2238
  };
@@ -2187,8 +2251,8 @@ var devServerEndPointsPlugin = ({
2187
2251
  const plug = {
2188
2252
  name: "graphql-endpoints",
2189
2253
  configureServer(server) {
2190
- server.middlewares.use((0, import_cors.default)());
2191
- server.middlewares.use(import_body_parser.default.json({ limit: "5mb" }));
2254
+ server.middlewares.use(cors());
2255
+ server.middlewares.use(bodyParser.json({ limit: "5mb" }));
2192
2256
  server.middlewares.use(async (req, res, next) => {
2193
2257
  const mediaPaths = configManager.config.media?.tina;
2194
2258
  const mediaRouter = createMediaRouter({
@@ -2227,7 +2291,7 @@ var devServerEndPointsPlugin = ({
2227
2291
  const { query, variables } = req.body;
2228
2292
  let result;
2229
2293
  await databaseLock(async () => {
2230
- result = await (0, import_graphql9.resolve)({
2294
+ result = await gqlResolve({
2231
2295
  config: {
2232
2296
  useRelativeMedia: true
2233
2297
  },
@@ -2263,13 +2327,13 @@ function viteTransformExtension({
2263
2327
  include = "**/*.svg",
2264
2328
  exclude
2265
2329
  } = {}) {
2266
- const filter = (0, import_pluginutils.createFilter)(include, exclude);
2330
+ const filter = createFilter(include, exclude);
2267
2331
  return {
2268
2332
  name: "vite-plugin-svgr",
2269
2333
  async transform(code, id) {
2270
2334
  if (filter(id)) {
2271
2335
  const { transform: transform2 } = await import("@svgr/core");
2272
- const svgCode = await import_fs.default.promises.readFile(
2336
+ const svgCode = await fs6.promises.readFile(
2273
2337
  id.replace(/\?.*$/, ""),
2274
2338
  "utf8"
2275
2339
  );
@@ -2279,7 +2343,7 @@ function viteTransformExtension({
2279
2343
  previousExport: exportAsDefault ? null : code
2280
2344
  }
2281
2345
  });
2282
- const res = await (0, import_vite2.transformWithEsbuild)(componentCode, id, {
2346
+ const res = await transformWithEsbuild(componentCode, id, {
2283
2347
  loader: "jsx",
2284
2348
  ...esbuildOptions
2285
2349
  });
@@ -2306,7 +2370,7 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
2306
2370
  }),
2307
2371
  viteTransformExtension()
2308
2372
  ];
2309
- return (0, import_vite3.createServer)(
2373
+ return createViteServer(
2310
2374
  await createConfig({
2311
2375
  configManager,
2312
2376
  database,
@@ -2336,37 +2400,30 @@ var createDevServer = async (configManager, database, searchIndex, apiURL, noWat
2336
2400
 
2337
2401
  // src/next/commands/dev-command/index.ts
2338
2402
  var DevCommand = class extends BaseCommand {
2339
- constructor() {
2340
- super(...arguments);
2341
- // NOTE: camelCase commands for string options don't work if there's an `=` used https://github.com/arcanis/clipanion/issues/141
2342
- this.watchFolders = import_clipanion2.Option.String("-w,--watchFolders", {
2343
- description: "DEPRECATED - a list of folders (relative to where this is being run) that the cli will watch for changes"
2344
- });
2345
- this.noWatch = import_clipanion2.Option.Boolean("--noWatch", false, {
2346
- description: "Don't regenerate config on file changes"
2347
- });
2348
- this.outputSearchIndexPath = import_clipanion2.Option.String("--outputSearchIndexPath", {
2349
- description: "Path to write the search index to"
2350
- });
2351
- this.noServer = import_clipanion2.Option.Boolean("--no-server", false, {
2352
- description: "Do not start the dev server"
2353
- });
2354
- this.indexingLock = new import_async_lock.default();
2355
- }
2356
- static {
2357
- this.paths = [["dev"], ["server:start"]];
2358
- }
2359
- static {
2360
- // Prevent indexes and reads occurring at once
2361
- this.usage = import_clipanion2.Command.Usage({
2362
- category: `Commands`,
2363
- description: `Builds Tina and starts the dev server`,
2364
- examples: [
2365
- [`A basic example`, `$0 dev`],
2366
- [`A second example`, `$0 dev --rootPath`]
2367
- ]
2368
- });
2369
- }
2403
+ static paths = [["dev"], ["server:start"]];
2404
+ // NOTE: camelCase commands for string options don't work if there's an `=` used https://github.com/arcanis/clipanion/issues/141
2405
+ watchFolders = Option2.String("-w,--watchFolders", {
2406
+ description: "DEPRECATED - a list of folders (relative to where this is being run) that the cli will watch for changes"
2407
+ });
2408
+ noWatch = Option2.Boolean("--noWatch", false, {
2409
+ description: "Don't regenerate config on file changes"
2410
+ });
2411
+ outputSearchIndexPath = Option2.String("--outputSearchIndexPath", {
2412
+ description: "Path to write the search index to"
2413
+ });
2414
+ noServer = Option2.Boolean("--no-server", false, {
2415
+ description: "Do not start the dev server"
2416
+ });
2417
+ indexingLock = new AsyncLock();
2418
+ // Prevent indexes and reads occurring at once
2419
+ static usage = Command2.Usage({
2420
+ category: `Commands`,
2421
+ description: `Builds Tina and starts the dev server`,
2422
+ examples: [
2423
+ [`A basic example`, `$0 dev`],
2424
+ [`A second example`, `$0 dev --rootPath`]
2425
+ ]
2426
+ });
2370
2427
  async catch(error) {
2371
2428
  logger.error("Error occured during tinacms dev");
2372
2429
  console.error(error);
@@ -2403,7 +2460,7 @@ var DevCommand = class extends BaseCommand {
2403
2460
  } else {
2404
2461
  database.clearCache();
2405
2462
  }
2406
- const { tinaSchema: tinaSchema2, graphQLSchema: graphQLSchema2, lookup, queryDoc, fragDoc } = await (0, import_graphql10.buildSchema)(configManager.config);
2463
+ const { tinaSchema: tinaSchema2, graphQLSchema: graphQLSchema2, lookup, queryDoc, fragDoc } = await buildSchema(configManager.config);
2407
2464
  const codegen2 = new Codegen({
2408
2465
  isLocal: true,
2409
2466
  configManager,
@@ -2417,29 +2474,32 @@ var DevCommand = class extends BaseCommand {
2417
2474
  });
2418
2475
  const apiURL2 = await codegen2.execute();
2419
2476
  if (!configManager.isUsingLegacyFolder) {
2420
- delete require.cache[configManager.generatedSchemaJSONPath];
2421
- delete require.cache[configManager.generatedLookupJSONPath];
2422
- delete require.cache[configManager.generatedGraphQLJSONPath];
2423
- const schemaObject = require(configManager.generatedSchemaJSONPath);
2424
- const lookupObject = require(configManager.generatedLookupJSONPath);
2425
- const graphqlSchemaObject = require(configManager.generatedGraphQLJSONPath);
2477
+ const schemaObject = await fs7.readJSON(
2478
+ configManager.generatedSchemaJSONPath
2479
+ );
2480
+ const lookupObject = await fs7.readJSON(
2481
+ configManager.generatedLookupJSONPath
2482
+ );
2483
+ const graphqlSchemaObject = await fs7.readJSON(
2484
+ configManager.generatedGraphQLJSONPath
2485
+ );
2426
2486
  const tinaLockFilename = "tina-lock.json";
2427
2487
  const tinaLockContent = JSON.stringify({
2428
2488
  schema: schemaObject,
2429
2489
  lookup: lookupObject,
2430
2490
  graphql: graphqlSchemaObject
2431
2491
  });
2432
- import_fs_extra6.default.writeFileSync(
2433
- import_path7.default.join(configManager.tinaFolderPath, tinaLockFilename),
2492
+ fs7.writeFileSync(
2493
+ path8.join(configManager.tinaFolderPath, tinaLockFilename),
2434
2494
  tinaLockContent
2435
2495
  );
2436
2496
  if (configManager.hasSeparateContentRoot()) {
2437
2497
  const rootPath = await configManager.getTinaFolderPath(
2438
2498
  configManager.contentRootPath
2439
2499
  );
2440
- const filePath = import_path7.default.join(rootPath, tinaLockFilename);
2441
- await import_fs_extra6.default.ensureFile(filePath);
2442
- await import_fs_extra6.default.outputFile(filePath, tinaLockContent);
2500
+ const filePath = path8.join(rootPath, tinaLockFilename);
2501
+ await fs7.ensureFile(filePath);
2502
+ await fs7.outputFile(filePath, tinaLockContent);
2443
2503
  }
2444
2504
  }
2445
2505
  await this.indexContentWithSpinner({
@@ -2482,19 +2542,19 @@ ${dangerText(e.message)}
2482
2542
  const { apiURL, graphQLSchema, tinaSchema } = await setup({
2483
2543
  firstTime: true
2484
2544
  });
2485
- await import_fs_extra6.default.outputFile(configManager.outputHTMLFilePath, devHTML(this.port));
2486
- await import_fs_extra6.default.outputFile(
2545
+ await fs7.outputFile(configManager.outputHTMLFilePath, devHTML(this.port));
2546
+ await fs7.outputFile(
2487
2547
  configManager.outputGitignorePath,
2488
2548
  "index.html\nassets/"
2489
2549
  );
2490
- const searchIndexClient = new import_search.LocalSearchIndexClient({
2550
+ const searchIndexClient = new LocalSearchIndexClient({
2491
2551
  stopwordLanguages: configManager.config.search?.tina?.stopwordLanguages,
2492
2552
  tokenSplitRegex: configManager.config.search?.tina?.tokenSplitRegex
2493
2553
  });
2494
2554
  await searchIndexClient.onStartIndexing();
2495
- const searchIndexer = new import_search.SearchIndexer({
2555
+ const searchIndexer = new SearchIndexer({
2496
2556
  batchSize: configManager.config.search?.indexBatchSize || 100,
2497
- bridge: new import_graphql10.FilesystemBridge(
2557
+ bridge: new FilesystemBridge2(
2498
2558
  configManager.rootPath,
2499
2559
  configManager.contentRootPath
2500
2560
  ),
@@ -2535,7 +2595,7 @@ ${dangerText(e.message)}
2535
2595
  );
2536
2596
  await server.listen(Number(this.port));
2537
2597
  if (!this.noWatch) {
2538
- import_chokidar.default.watch(configManager.watchList).on("change", async () => {
2598
+ chokidar.watch(configManager.watchList).on("change", async () => {
2539
2599
  await dbLock(async () => {
2540
2600
  logger.info(`Tina config change detected, rebuilding`);
2541
2601
  await setup({ firstTime: false });
@@ -2612,14 +2672,14 @@ ${dangerText(e.message)}
2612
2672
  watchContentFiles(configManager, database, databaseLock, searchIndexer) {
2613
2673
  const collectionContentFiles = [];
2614
2674
  configManager.config.schema.collections.forEach((collection) => {
2615
- const collectionGlob = `${import_path7.default.join(
2675
+ const collectionGlob = `${path8.join(
2616
2676
  configManager.contentRootPath,
2617
2677
  collection.path
2618
2678
  )}/**/*.${collection.format || "md"}`;
2619
2679
  collectionContentFiles.push(collectionGlob);
2620
2680
  });
2621
2681
  let ready = false;
2622
- import_chokidar.default.watch(collectionContentFiles).on("ready", () => {
2682
+ chokidar.watch(collectionContentFiles).on("ready", () => {
2623
2683
  ready = true;
2624
2684
  }).on("add", async (addedFile) => {
2625
2685
  if (!ready) {
@@ -2656,27 +2716,34 @@ ${dangerText(e.message)}
2656
2716
  await callback();
2657
2717
  });
2658
2718
  };
2659
- import_chokidar.default.watch(configManager.userQueriesAndFragmentsGlob).on("add", executeCallback).on("change", executeCallback).on("unlink", executeCallback);
2719
+ chokidar.watch(configManager.userQueriesAndFragmentsGlob).on("add", executeCallback).on("change", executeCallback).on("unlink", executeCallback);
2660
2720
  }
2661
2721
  };
2662
2722
 
2663
2723
  // src/next/commands/build-command/index.ts
2664
- var import_crypto = __toESM(require("crypto"));
2665
- var import_path8 = __toESM(require("path"));
2666
- var import_core3 = require("@graphql-inspector/core");
2667
- var import_graphql11 = require("@tinacms/graphql");
2668
- var import_schema_tools2 = require("@tinacms/schema-tools");
2669
- var import_search2 = require("@tinacms/search");
2670
- var import_clipanion3 = require("clipanion");
2671
- var import_fs_extra7 = __toESM(require("fs-extra"));
2672
- var import_graphql12 = require("graphql");
2673
- var import_progress2 = __toESM(require("progress"));
2724
+ import crypto from "crypto";
2725
+ import path9 from "path";
2726
+ import { diff } from "@graphql-inspector/core";
2727
+ import { FilesystemBridge as FilesystemBridge3, buildSchema as buildSchema2 } from "@tinacms/graphql";
2728
+ import { parseURL as parseURL2 } from "@tinacms/schema-tools";
2729
+ import {
2730
+ SearchIndexer as SearchIndexer2,
2731
+ TinaCMSSearchIndexClient
2732
+ } from "@tinacms/search";
2733
+ import { Command as Command3, Option as Option3 } from "clipanion";
2734
+ import fs8 from "fs-extra";
2735
+ import {
2736
+ buildASTSchema as buildASTSchema2,
2737
+ buildClientSchema,
2738
+ getIntrospectionQuery
2739
+ } from "graphql";
2740
+ import Progress2 from "progress";
2674
2741
 
2675
2742
  // src/utils/index.ts
2676
- var import_core2 = require("@graphql-inspector/core");
2743
+ import { ChangeType } from "@graphql-inspector/core";
2677
2744
  var getFaqLink = (type) => {
2678
2745
  switch (type) {
2679
- case import_core2.ChangeType.FieldRemoved: {
2746
+ case ChangeType.FieldRemoved: {
2680
2747
  return "https://tina.io/docs/r/FAQ/#2-how-do-i-resolve-the-local-graphql-schema-doesnt-match-the-remote-graphql-schema-error";
2681
2748
  }
2682
2749
  default:
@@ -2698,7 +2765,7 @@ async function sleepAndCallFunc({
2698
2765
  }
2699
2766
 
2700
2767
  // src/next/commands/build-command/server.ts
2701
- var import_vite5 = require("vite");
2768
+ import { build as build2 } from "vite";
2702
2769
  var buildProductionSpa = async (configManager, database, apiURL) => {
2703
2770
  const publicEnv = {};
2704
2771
  Object.keys(process.env).forEach((key) => {
@@ -2732,12 +2799,12 @@ var buildProductionSpa = async (configManager, database, apiURL) => {
2732
2799
  }
2733
2800
  }
2734
2801
  });
2735
- return (0, import_vite5.build)(config2);
2802
+ return build2(config2);
2736
2803
  };
2737
2804
 
2738
2805
  // src/next/commands/build-command/waitForDB.ts
2739
- var import_schema_tools = require("@tinacms/schema-tools");
2740
- var import_progress = __toESM(require("progress"));
2806
+ import { parseURL } from "@tinacms/schema-tools";
2807
+ import Progress from "progress";
2741
2808
  var POLLING_INTERVAL = 5e3;
2742
2809
  var STATUS_INPROGRESS = "inprogress";
2743
2810
  var STATUS_COMPLETE = "complete";
@@ -2750,14 +2817,14 @@ var IndexFailedError = class extends Error {
2750
2817
  };
2751
2818
  var waitForDB = async (config2, apiUrl, previewName, verbose) => {
2752
2819
  const token = config2.token;
2753
- const { clientId, branch, isLocalClient, host } = (0, import_schema_tools.parseURL)(apiUrl);
2820
+ const { clientId, branch, isLocalClient, host } = parseURL(apiUrl);
2754
2821
  if (isLocalClient || !host || !clientId || !branch) {
2755
2822
  if (verbose) {
2756
2823
  logger.info(logText("Not using TinaCloud, skipping DB check"));
2757
2824
  }
2758
2825
  return;
2759
2826
  }
2760
- const bar2 = new import_progress.default(
2827
+ const bar2 = new Progress(
2761
2828
  "Checking indexing process in TinaCloud... :prog",
2762
2829
  1
2763
2830
  );
@@ -2820,51 +2887,44 @@ var waitForDB = async (config2, apiUrl, previewName, verbose) => {
2820
2887
 
2821
2888
  // src/next/commands/build-command/index.ts
2822
2889
  var BuildCommand = class extends BaseCommand {
2823
- constructor() {
2824
- super(...arguments);
2825
- this.localOption = import_clipanion3.Option.Boolean("--local", {
2826
- description: "Starts local Graphql server and builds the local client instead of production client"
2827
- });
2828
- this.skipIndexing = import_clipanion3.Option.Boolean("--skip-indexing", false, {
2829
- description: "Skips indexing the content. This can be used for building the site without indexing the content (defaults to false)"
2830
- });
2831
- this.partialReindex = import_clipanion3.Option.Boolean("--partial-reindex", false, {
2832
- description: "Re-indexes only the content that has changed since the last build (defaults to false). Not currently supported for separate content repos."
2833
- });
2834
- this.tinaGraphQLVersion = import_clipanion3.Option.String("--tina-graphql-version", {
2835
- description: "Specify the version of @tinacms/graphql to use (defaults to latest)"
2836
- });
2837
- /**
2838
- * This option allows the user to skip the TinaCloud checks if they want to. This could be useful for mismatched GraphQL versions or if they want to build only using the local client and never connect to TinaCloud
2839
- */
2840
- this.skipCloudChecks = import_clipanion3.Option.Boolean("--skip-cloud-checks", false, {
2841
- description: "Skips checking the provided cloud config."
2842
- });
2843
- this.skipSearchIndex = import_clipanion3.Option.Boolean("--skip-search-index", false, {
2844
- description: "Skip indexing the site for search"
2845
- });
2846
- this.upstreamBranch = import_clipanion3.Option.String("--upstream-branch", {
2847
- description: "Optional upstream branch with the schema. If not specified, default will be used."
2848
- });
2849
- this.previewBaseBranch = import_clipanion3.Option.String("--preview-base-branch", {
2850
- description: "The base branch for the preview"
2851
- });
2852
- this.previewName = import_clipanion3.Option.String("--preview-name", {
2853
- description: "The name of the preview branch"
2854
- });
2855
- this.noClientBuildCache = import_clipanion3.Option.Boolean("--no-client-build-cache", false, {
2856
- description: "Disables the client build cache"
2857
- });
2858
- }
2859
- static {
2860
- this.paths = [["build"]];
2861
- }
2862
- static {
2863
- this.usage = import_clipanion3.Command.Usage({
2864
- category: `Commands`,
2865
- description: `Build the CMS and autogenerated modules for usage with TinaCloud`
2866
- });
2867
- }
2890
+ static paths = [["build"]];
2891
+ localOption = Option3.Boolean("--local", {
2892
+ description: "Starts local Graphql server and builds the local client instead of production client"
2893
+ });
2894
+ skipIndexing = Option3.Boolean("--skip-indexing", false, {
2895
+ description: "Skips indexing the content. This can be used for building the site without indexing the content (defaults to false)"
2896
+ });
2897
+ partialReindex = Option3.Boolean("--partial-reindex", false, {
2898
+ description: "Re-indexes only the content that has changed since the last build (defaults to false). Not currently supported for separate content repos."
2899
+ });
2900
+ tinaGraphQLVersion = Option3.String("--tina-graphql-version", {
2901
+ description: "Specify the version of @tinacms/graphql to use (defaults to latest)"
2902
+ });
2903
+ /**
2904
+ * This option allows the user to skip the TinaCloud checks if they want to. This could be useful for mismatched GraphQL versions or if they want to build only using the local client and never connect to TinaCloud
2905
+ */
2906
+ skipCloudChecks = Option3.Boolean("--skip-cloud-checks", false, {
2907
+ description: "Skips checking the provided cloud config."
2908
+ });
2909
+ skipSearchIndex = Option3.Boolean("--skip-search-index", false, {
2910
+ description: "Skip indexing the site for search"
2911
+ });
2912
+ upstreamBranch = Option3.String("--upstream-branch", {
2913
+ description: "Optional upstream branch with the schema. If not specified, default will be used."
2914
+ });
2915
+ previewBaseBranch = Option3.String("--preview-base-branch", {
2916
+ description: "The base branch for the preview"
2917
+ });
2918
+ previewName = Option3.String("--preview-name", {
2919
+ description: "The name of the preview branch"
2920
+ });
2921
+ noClientBuildCache = Option3.Boolean("--no-client-build-cache", false, {
2922
+ description: "Disables the client build cache"
2923
+ });
2924
+ static usage = Command3.Usage({
2925
+ category: `Commands`,
2926
+ description: `Build the CMS and autogenerated modules for usage with TinaCloud`
2927
+ });
2868
2928
  async catch(error) {
2869
2929
  console.error(error);
2870
2930
  process.exit(1);
@@ -2909,7 +2969,7 @@ ${dangerText(e.message)}`);
2909
2969
  configManager,
2910
2970
  Number(this.datalayerPort)
2911
2971
  );
2912
- const { queryDoc, fragDoc, graphQLSchema, tinaSchema, lookup } = await (0, import_graphql11.buildSchema)(configManager.config);
2972
+ const { queryDoc, fragDoc, graphQLSchema, tinaSchema, lookup } = await buildSchema2(configManager.config);
2913
2973
  const codegen2 = new Codegen({
2914
2974
  configManager,
2915
2975
  port: this.localOption ? Number(this.port) : void 0,
@@ -3017,7 +3077,7 @@ ${dangerText(e.message)}
3017
3077
  }
3018
3078
  }
3019
3079
  await buildProductionSpa(configManager, database, codegen2.productionUrl);
3020
- await import_fs_extra7.default.outputFile(
3080
+ await fs8.outputFile(
3021
3081
  configManager.outputGitignorePath,
3022
3082
  "index.html\nassets/"
3023
3083
  );
@@ -3049,7 +3109,7 @@ ${dangerText(e.message)}
3049
3109
  "indexerToken not configured in tina search configuration."
3050
3110
  );
3051
3111
  }
3052
- client = new import_search2.TinaCMSSearchIndexClient({
3112
+ client = new TinaCMSSearchIndexClient({
3053
3113
  apiUrl: `${configManager.config.tinaioConfig?.contentApiUrlOverride || "https://content.tinajs.io"}/searchIndex/${configManager.config?.clientId}`,
3054
3114
  branch: configManager.config?.branch,
3055
3115
  indexerToken: configManager.config?.search?.tina?.indexerToken,
@@ -3058,9 +3118,9 @@ ${dangerText(e.message)}
3058
3118
  } else {
3059
3119
  client = configManager.config?.search?.searchClient;
3060
3120
  }
3061
- const searchIndexer = new import_search2.SearchIndexer({
3121
+ const searchIndexer = new SearchIndexer2({
3062
3122
  batchSize: configManager.config.search?.indexBatchSize || 100,
3063
- bridge: new import_graphql11.FilesystemBridge(
3123
+ bridge: new FilesystemBridge3(
3064
3124
  configManager.rootPath,
3065
3125
  configManager.contentRootPath
3066
3126
  ),
@@ -3130,8 +3190,8 @@ ${dangerText(e.message)}
3130
3190
  const MAX_RETRIES = 5;
3131
3191
  const { config: config2 } = configManager;
3132
3192
  const token = config2.token;
3133
- const { clientId, branch, host } = (0, import_schema_tools2.parseURL)(apiURL);
3134
- const bar2 = new import_progress2.default("Checking clientId and token. :prog", 1);
3193
+ const { clientId, branch, host } = parseURL2(apiURL);
3194
+ const bar2 = new Progress2("Checking clientId and token. :prog", 1);
3135
3195
  const getBranchInfo = async () => {
3136
3196
  const url = `https://${host}/db/${clientId}/status/${previewBaseBranch || branch}`;
3137
3197
  const branchInfo2 = {
@@ -3185,7 +3245,7 @@ ${dangerText(e.message)}
3185
3245
  bar2.tick({
3186
3246
  prog: "\u2705"
3187
3247
  });
3188
- const branchBar = new import_progress2.default(
3248
+ const branchBar = new Progress2(
3189
3249
  `Checking branch '${config2.branch}' is on TinaCloud. :prog`,
3190
3250
  1
3191
3251
  );
@@ -3225,7 +3285,7 @@ ${dangerText(e.message)}
3225
3285
  async syncProject(configManager, apiURL, options) {
3226
3286
  const { config: config2 } = configManager;
3227
3287
  const token = config2.token;
3228
- const { clientId, branch, host } = (0, import_schema_tools2.parseURL)(apiURL);
3288
+ const { clientId, branch, host } = parseURL2(apiURL);
3229
3289
  const { previewName, previewBaseBranch, upstreamBranch } = options || {};
3230
3290
  let url = `https://${host}/db/${clientId}/reset/${branch}?refreshSchema=true&skipIfSchemaCurrent=true`;
3231
3291
  if (upstreamBranch && previewBaseBranch && previewName) {
@@ -3235,7 +3295,7 @@ ${dangerText(e.message)}
3235
3295
  } else if (upstreamBranch && !previewBaseBranch && !previewName) {
3236
3296
  url = `https://${host}/db/${clientId}/reset/${branch}?refreshSchema=true&skipIfSchemaCurrent=true&upstreamBranch=${upstreamBranch}`;
3237
3297
  }
3238
- const bar2 = new import_progress2.default("Syncing Project. :prog", 1);
3298
+ const bar2 = new Progress2("Syncing Project. :prog", 1);
3239
3299
  try {
3240
3300
  const res = await request({
3241
3301
  token,
@@ -3276,7 +3336,7 @@ ${dangerText(e.message)}
3276
3336
  }
3277
3337
  }
3278
3338
  async checkGraphqlSchema(configManager, database, apiURL, timestamp) {
3279
- const bar2 = new import_progress2.default(
3339
+ const bar2 = new Progress2(
3280
3340
  "Checking local GraphQL Schema matches server. :prog",
3281
3341
  1
3282
3342
  );
@@ -3298,11 +3358,11 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3298
3358
  }
3299
3359
  throw new Error(errorMessage);
3300
3360
  }
3301
- const remoteGqlSchema = (0, import_graphql12.buildClientSchema)(remoteSchema);
3361
+ const remoteGqlSchema = buildClientSchema(remoteSchema);
3302
3362
  const localSchemaDocument = await database.getGraphQLSchemaFromBridge();
3303
- const localGraphqlSchema = (0, import_graphql12.buildASTSchema)(localSchemaDocument);
3363
+ const localGraphqlSchema = buildASTSchema2(localSchemaDocument);
3304
3364
  try {
3305
- const diffResult = await (0, import_core3.diff)(remoteGqlSchema, localGraphqlSchema);
3365
+ const diffResult = await diff(remoteGqlSchema, localGraphqlSchema);
3306
3366
  if (diffResult.length === 0) {
3307
3367
  bar2.tick({
3308
3368
  prog: "\u2705"
@@ -3350,13 +3410,13 @@ Additional info:
3350
3410
  }
3351
3411
  }
3352
3412
  async checkTinaSchema(configManager, database, apiURL, previewName, verbose, timestamp) {
3353
- const bar2 = new import_progress2.default(
3413
+ const bar2 = new Progress2(
3354
3414
  "Checking local Tina Schema matches server. :prog",
3355
3415
  1
3356
3416
  );
3357
3417
  const { config: config2 } = configManager;
3358
3418
  const token = config2.token;
3359
- const { clientId, branch, isLocalClient, host } = (0, import_schema_tools2.parseURL)(apiURL);
3419
+ const { clientId, branch, isLocalClient, host } = parseURL2(apiURL);
3360
3420
  if (isLocalClient || !host || !clientId || !branch) {
3361
3421
  if (verbose) {
3362
3422
  logger.info(logText("Not using TinaCloud, skipping Tina Schema check"));
@@ -3384,11 +3444,11 @@ Additional info: Branch: ${config2.branch}, Client ID: ${config2.clientId} `;
3384
3444
  }
3385
3445
  const localTinaSchema = JSON.parse(
3386
3446
  await database.bridge.get(
3387
- import_path8.default.join(database.tinaDirectory, "__generated__", "_schema.json")
3447
+ path9.join(database.tinaDirectory, "__generated__", "_schema.json")
3388
3448
  )
3389
3449
  );
3390
3450
  localTinaSchema.version = void 0;
3391
- const localTinaSchemaSha = import_crypto.default.createHash("sha256").update(JSON.stringify(localTinaSchema)).digest("hex");
3451
+ const localTinaSchemaSha = crypto.createHash("sha256").update(JSON.stringify(localTinaSchema)).digest("hex");
3392
3452
  if (localTinaSchemaSha === remoteTinaSchemaSha) {
3393
3453
  bar2.tick({
3394
3454
  prog: "\u2705"
@@ -3466,7 +3526,7 @@ var fetchRemoteGraphqlSchema = async ({
3466
3526
  headers.append("X-API-KEY", token);
3467
3527
  }
3468
3528
  const body = JSON.stringify({
3469
- query: (0, import_graphql12.getIntrospectionQuery)(),
3529
+ query: getIntrospectionQuery(),
3470
3530
  variables: {}
3471
3531
  });
3472
3532
  headers.append("Content-Type", "application/json");
@@ -3499,14 +3559,14 @@ var fetchSchemaSha = async ({
3499
3559
  };
3500
3560
 
3501
3561
  // src/next/commands/audit-command/index.ts
3502
- var import_clipanion4 = require("clipanion");
3503
- var import_graphql14 = require("@tinacms/graphql");
3562
+ import { Command as Command4, Option as Option4 } from "clipanion";
3563
+ import { buildSchema as buildSchema3 } from "@tinacms/graphql";
3504
3564
 
3505
3565
  // src/next/commands/audit-command/audit.ts
3506
- var import_prompts = __toESM(require("prompts"));
3507
- var import_metrics = require("@tinacms/metrics");
3508
- var import_graphql13 = require("@tinacms/graphql");
3509
- var import_chalk5 = __toESM(require("chalk"));
3566
+ import prompts from "prompts";
3567
+ import { Telemetry } from "@tinacms/metrics";
3568
+ import { resolve } from "@tinacms/graphql";
3569
+ import chalk5 from "chalk";
3510
3570
  var audit = async ({
3511
3571
  database,
3512
3572
  clean,
@@ -3514,7 +3574,7 @@ var audit = async ({
3514
3574
  noTelemetry,
3515
3575
  verbose
3516
3576
  }) => {
3517
- const telemetry = new import_metrics.Telemetry({ disabled: noTelemetry });
3577
+ const telemetry = new Telemetry({ disabled: noTelemetry });
3518
3578
  await telemetry.submitRecord({
3519
3579
  event: {
3520
3580
  name: "tinacms:cli:audit:invoke",
@@ -3524,25 +3584,25 @@ var audit = async ({
3524
3584
  });
3525
3585
  if (clean) {
3526
3586
  logger.info(
3527
- `You are using the \`--clean\` option. This will modify your content as if a user is submitting a form. Before running this you should have a ${import_chalk5.default.bold(
3587
+ `You are using the \`--clean\` option. This will modify your content as if a user is submitting a form. Before running this you should have a ${chalk5.bold(
3528
3588
  "clean git tree"
3529
3589
  )} so unwanted changes can be undone.
3530
3590
 
3531
3591
  `
3532
3592
  );
3533
- const res = await (0, import_prompts.default)({
3593
+ const res = await prompts({
3534
3594
  name: "useClean",
3535
3595
  type: "confirm",
3536
3596
  message: `Do you want to continue?`
3537
3597
  });
3538
3598
  if (!res.useClean) {
3539
- logger.warn(import_chalk5.default.yellowBright("\u26A0\uFE0F Audit not complete"));
3599
+ logger.warn(chalk5.yellowBright("\u26A0\uFE0F Audit not complete"));
3540
3600
  process.exit(0);
3541
3601
  }
3542
3602
  }
3543
3603
  if (useDefaultValues && !clean) {
3544
3604
  logger.warn(
3545
- import_chalk5.default.yellowBright(
3605
+ chalk5.yellowBright(
3546
3606
  "WARNING: using the `--useDefaultValues` without the `--clean` flag has no effect. Please re-run audit and add the `--clean` flag"
3547
3607
  )
3548
3608
  );
@@ -3570,10 +3630,10 @@ var audit = async ({
3570
3630
  }
3571
3631
  if (error) {
3572
3632
  logger.error(
3573
- import_chalk5.default.redBright(`\u203C\uFE0F Audit ${import_chalk5.default.bold("failed")} with errors`)
3633
+ chalk5.redBright(`\u203C\uFE0F Audit ${chalk5.bold("failed")} with errors`)
3574
3634
  );
3575
3635
  } else {
3576
- logger.info(import_chalk5.default.greenBright("\u2705 Audit passed"));
3636
+ logger.info(chalk5.greenBright("\u2705 Audit passed"));
3577
3637
  }
3578
3638
  };
3579
3639
  var auditDocuments = async (args) => {
@@ -3590,7 +3650,7 @@ var auditDocuments = async (args) => {
3590
3650
  }
3591
3651
  }
3592
3652
  }`;
3593
- const docResult = await (0, import_graphql13.resolve)({
3653
+ const docResult = await resolve({
3594
3654
  database,
3595
3655
  query: documentQuery,
3596
3656
  variables: {},
@@ -3601,11 +3661,11 @@ var auditDocuments = async (args) => {
3601
3661
  if (docResult.errors) {
3602
3662
  error = true;
3603
3663
  docResult.errors.forEach((err) => {
3604
- logger.error(import_chalk5.default.red(err.message));
3664
+ logger.error(chalk5.red(err.message));
3605
3665
  if (err.originalError.originalError) {
3606
3666
  logger.error(
3607
3667
  // @ts-ignore FIXME: this doesn't seem right
3608
- import_chalk5.default.red(` ${err.originalError.originalError.message}`)
3668
+ chalk5.red(` ${err.originalError.originalError.message}`)
3609
3669
  );
3610
3670
  }
3611
3671
  });
@@ -3632,7 +3692,7 @@ var auditDocuments = async (args) => {
3632
3692
  params: $params
3633
3693
  ){__typename}
3634
3694
  }`;
3635
- const mutationRes = await (0, import_graphql13.resolve)({
3695
+ const mutationRes = await resolve({
3636
3696
  database,
3637
3697
  query: mutation,
3638
3698
  variables: {
@@ -3647,7 +3707,7 @@ var auditDocuments = async (args) => {
3647
3707
  if (mutationRes.errors) {
3648
3708
  mutationRes.errors.forEach((err) => {
3649
3709
  error = true;
3650
- logger.error(import_chalk5.default.red(err.message));
3710
+ logger.error(chalk5.red(err.message));
3651
3711
  });
3652
3712
  }
3653
3713
  }
@@ -3664,38 +3724,31 @@ function filterObject(obj) {
3664
3724
  }
3665
3725
 
3666
3726
  // src/next/commands/audit-command/index.ts
3667
- var import_graphql15 = require("@tinacms/graphql");
3668
- var AuditCommand = class extends import_clipanion4.Command {
3669
- constructor() {
3670
- super(...arguments);
3671
- this.rootPath = import_clipanion4.Option.String("--rootPath", {
3672
- description: "Specify the root directory to run the CLI from"
3673
- });
3674
- this.verbose = import_clipanion4.Option.Boolean("-v,--verbose", false, {
3675
- description: "increase verbosity of logged output"
3676
- });
3677
- this.clean = import_clipanion4.Option.Boolean("--clean", false, {
3678
- description: "Clean the output"
3679
- });
3680
- this.useDefaultValues = import_clipanion4.Option.Boolean("--useDefaultValues", false, {
3681
- description: "When cleaning the output, use defaults on the config"
3682
- });
3683
- this.noTelemetry = import_clipanion4.Option.Boolean("--noTelemetry", false, {
3684
- description: "Disable anonymous telemetry that is collected"
3685
- });
3686
- this.datalayerPort = import_clipanion4.Option.String("--datalayer-port", "9000", {
3687
- description: "Specify a port to run the datalayer server on. (default 9000)"
3688
- });
3689
- }
3690
- static {
3691
- this.paths = [["audit"]];
3692
- }
3693
- static {
3694
- this.usage = import_clipanion4.Command.Usage({
3695
- category: `Commands`,
3696
- description: `Audit config and content files`
3697
- });
3698
- }
3727
+ import { AuditFileSystemBridge } from "@tinacms/graphql";
3728
+ var AuditCommand = class extends Command4 {
3729
+ static paths = [["audit"]];
3730
+ rootPath = Option4.String("--rootPath", {
3731
+ description: "Specify the root directory to run the CLI from"
3732
+ });
3733
+ verbose = Option4.Boolean("-v,--verbose", false, {
3734
+ description: "increase verbosity of logged output"
3735
+ });
3736
+ clean = Option4.Boolean("--clean", false, {
3737
+ description: "Clean the output"
3738
+ });
3739
+ useDefaultValues = Option4.Boolean("--useDefaultValues", false, {
3740
+ description: "When cleaning the output, use defaults on the config"
3741
+ });
3742
+ noTelemetry = Option4.Boolean("--noTelemetry", false, {
3743
+ description: "Disable anonymous telemetry that is collected"
3744
+ });
3745
+ datalayerPort = Option4.String("--datalayer-port", "9000", {
3746
+ description: "Specify a port to run the datalayer server on. (default 9000)"
3747
+ });
3748
+ static usage = Command4.Usage({
3749
+ category: `Commands`,
3750
+ description: `Audit config and content files`
3751
+ });
3699
3752
  async catch(error) {
3700
3753
  logger.error("Error occured during tinacms audit");
3701
3754
  if (this.verbose) {
@@ -3716,9 +3769,9 @@ var AuditCommand = class extends import_clipanion4.Command {
3716
3769
  const database = await createAndInitializeDatabase(
3717
3770
  configManager,
3718
3771
  Number(this.datalayerPort),
3719
- this.clean ? void 0 : new import_graphql15.AuditFileSystemBridge(configManager.rootPath)
3772
+ this.clean ? void 0 : new AuditFileSystemBridge(configManager.rootPath)
3720
3773
  );
3721
- const { tinaSchema, graphQLSchema, lookup } = await (0, import_graphql14.buildSchema)(
3774
+ const { tinaSchema, graphQLSchema, lookup } = await buildSchema3(
3722
3775
  configManager.config
3723
3776
  );
3724
3777
  const warnings = [];
@@ -3751,29 +3804,29 @@ var AuditCommand = class extends import_clipanion4.Command {
3751
3804
  };
3752
3805
 
3753
3806
  // src/next/commands/init-command/index.ts
3754
- var import_clipanion6 = require("clipanion");
3807
+ import { Command as Command6, Option as Option6 } from "clipanion";
3755
3808
 
3756
3809
  // src/cmds/init/detectEnvironment.ts
3757
- var import_fs_extra8 = __toESM(require("fs-extra"));
3758
- var import_path9 = __toESM(require("path"));
3810
+ import fs9 from "fs-extra";
3811
+ import path10 from "path";
3759
3812
  var checkGitignoreForItem = async ({
3760
3813
  baseDir,
3761
3814
  line
3762
3815
  }) => {
3763
- const gitignoreContent = import_fs_extra8.default.readFileSync(import_path9.default.join(baseDir, ".gitignore")).toString();
3816
+ const gitignoreContent = fs9.readFileSync(path10.join(baseDir, ".gitignore")).toString();
3764
3817
  return gitignoreContent.split("\n").some((item) => item === line);
3765
3818
  };
3766
3819
  var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3767
3820
  const result = {
3768
- fullPathTS: import_path9.default.join(
3821
+ fullPathTS: path10.join(
3769
3822
  parentPath,
3770
3823
  `${name2}.${opts?.typescriptSuffix || opts?.extensionOverride || "ts"}`
3771
3824
  ),
3772
- fullPathJS: import_path9.default.join(
3825
+ fullPathJS: path10.join(
3773
3826
  parentPath,
3774
3827
  `${name2}.${opts?.extensionOverride || "js"}`
3775
3828
  ),
3776
- fullPathOverride: opts?.extensionOverride ? import_path9.default.join(parentPath, `${name2}.${opts?.extensionOverride}`) : "",
3829
+ fullPathOverride: opts?.extensionOverride ? path10.join(parentPath, `${name2}.${opts?.extensionOverride}`) : "",
3777
3830
  generatedFileType,
3778
3831
  name: name2,
3779
3832
  parentPath,
@@ -3791,8 +3844,8 @@ var makeGeneratedFile = async (name2, generatedFileType, parentPath, opts) => {
3791
3844
  };
3792
3845
  }
3793
3846
  };
3794
- result.typescriptExists = await import_fs_extra8.default.pathExists(result.fullPathTS);
3795
- result.javascriptExists = await import_fs_extra8.default.pathExists(result.fullPathJS);
3847
+ result.typescriptExists = await fs9.pathExists(result.fullPathTS);
3848
+ result.javascriptExists = await fs9.pathExists(result.fullPathJS);
3796
3849
  return result;
3797
3850
  };
3798
3851
  var detectEnvironment = async ({
@@ -3801,21 +3854,21 @@ var detectEnvironment = async ({
3801
3854
  rootPath,
3802
3855
  debug = false
3803
3856
  }) => {
3804
- const hasForestryConfig = await import_fs_extra8.default.pathExists(
3805
- import_path9.default.join(pathToForestryConfig, ".forestry", "settings.yml")
3857
+ const hasForestryConfig = await fs9.pathExists(
3858
+ path10.join(pathToForestryConfig, ".forestry", "settings.yml")
3806
3859
  );
3807
- const sampleContentPath = import_path9.default.join(
3860
+ const sampleContentPath = path10.join(
3808
3861
  baseDir,
3809
3862
  "content",
3810
3863
  "posts",
3811
3864
  "hello-world.md"
3812
3865
  );
3813
- const usingSrc = import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src")) && (import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src", "app")) || import_fs_extra8.default.pathExistsSync(import_path9.default.join(baseDir, "src", "pages")));
3814
- const tinaFolder = import_path9.default.join(baseDir, "tina");
3866
+ const usingSrc = fs9.pathExistsSync(path10.join(baseDir, "src")) && (fs9.pathExistsSync(path10.join(baseDir, "src", "app")) || fs9.pathExistsSync(path10.join(baseDir, "src", "pages")));
3867
+ const tinaFolder = path10.join(baseDir, "tina");
3815
3868
  const tinaConfigExists = Boolean(
3816
3869
  // Does the tina folder exist?
3817
- await import_fs_extra8.default.pathExists(tinaFolder) && // Does the tina folder contain a config file?
3818
- (await import_fs_extra8.default.readdir(tinaFolder)).find((x) => x.includes("config"))
3870
+ await fs9.pathExists(tinaFolder) && // Does the tina folder contain a config file?
3871
+ (await fs9.readdir(tinaFolder)).find((x) => x.includes("config"))
3819
3872
  );
3820
3873
  const pagesDir = [baseDir, usingSrc ? "src" : false, "pages"].filter(
3821
3874
  Boolean
@@ -3827,12 +3880,12 @@ var detectEnvironment = async ({
3827
3880
  "next-api-handler": await makeGeneratedFile(
3828
3881
  "[...routes]",
3829
3882
  "next-api-handler",
3830
- import_path9.default.join(...pagesDir, "api", "tina")
3883
+ path10.join(...pagesDir, "api", "tina")
3831
3884
  ),
3832
3885
  "reactive-example": await makeGeneratedFile(
3833
3886
  "[filename]",
3834
3887
  "reactive-example",
3835
- import_path9.default.join(...pagesDir, "demo", "blog"),
3888
+ path10.join(...pagesDir, "demo", "blog"),
3836
3889
  {
3837
3890
  typescriptSuffix: "tsx"
3838
3891
  }
@@ -3840,22 +3893,22 @@ var detectEnvironment = async ({
3840
3893
  "users-json": await makeGeneratedFile(
3841
3894
  "index",
3842
3895
  "users-json",
3843
- import_path9.default.join(baseDir, "content", "users"),
3896
+ path10.join(baseDir, "content", "users"),
3844
3897
  { extensionOverride: "json" }
3845
3898
  ),
3846
3899
  "sample-content": await makeGeneratedFile(
3847
3900
  "hello-world",
3848
3901
  "sample-content",
3849
- import_path9.default.join(baseDir, "content", "posts"),
3902
+ path10.join(baseDir, "content", "posts"),
3850
3903
  { extensionOverride: "md" }
3851
3904
  )
3852
3905
  };
3853
- const hasSampleContent = await import_fs_extra8.default.pathExists(sampleContentPath);
3854
- const hasPackageJSON = await import_fs_extra8.default.pathExists("package.json");
3906
+ const hasSampleContent = await fs9.pathExists(sampleContentPath);
3907
+ const hasPackageJSON = await fs9.pathExists("package.json");
3855
3908
  let hasTinaDeps = false;
3856
3909
  if (hasPackageJSON) {
3857
3910
  try {
3858
- const packageJSON = await import_fs_extra8.default.readJSON("package.json");
3911
+ const packageJSON = await fs9.readJSON("package.json");
3859
3912
  const deps = [];
3860
3913
  if (packageJSON?.dependencies) {
3861
3914
  deps.push(...Object.keys(packageJSON.dependencies));
@@ -3872,15 +3925,15 @@ var detectEnvironment = async ({
3872
3925
  );
3873
3926
  }
3874
3927
  }
3875
- const hasGitIgnore = await import_fs_extra8.default.pathExists(import_path9.default.join(".gitignore"));
3928
+ const hasGitIgnore = await fs9.pathExists(path10.join(".gitignore"));
3876
3929
  const hasGitIgnoreNodeModules = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: "node_modules" });
3877
3930
  const hasEnvTina = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env.tina" });
3878
3931
  const hasGitIgnoreEnv = hasGitIgnore && await checkGitignoreForItem({ baseDir, line: ".env" });
3879
3932
  let frontMatterFormat;
3880
3933
  if (hasForestryConfig) {
3881
- const hugoConfigPath = import_path9.default.join(rootPath, "config.toml");
3882
- if (await import_fs_extra8.default.pathExists(hugoConfigPath)) {
3883
- const hugoConfig = await import_fs_extra8.default.readFile(hugoConfigPath, "utf8");
3934
+ const hugoConfigPath = path10.join(rootPath, "config.toml");
3935
+ if (await fs9.pathExists(hugoConfigPath)) {
3936
+ const hugoConfig = await fs9.readFile(hugoConfigPath, "utf8");
3884
3937
  const metaDataFormat = hugoConfig.toString().match(/metaDataFormat = "(.*)"/)?.[1];
3885
3938
  if (metaDataFormat && (metaDataFormat === "yaml" || metaDataFormat === "toml" || metaDataFormat === "json")) {
3886
3939
  frontMatterFormat = metaDataFormat;
@@ -3911,10 +3964,10 @@ var detectEnvironment = async ({
3911
3964
  var detectEnvironment_default = detectEnvironment;
3912
3965
 
3913
3966
  // src/cmds/init/prompts/index.ts
3914
- var import_prompts6 = __toESM(require("prompts"));
3967
+ import prompts6 from "prompts";
3915
3968
 
3916
3969
  // src/cmds/init/prompts/askTinaCloudSetup.ts
3917
- var import_prompts2 = __toESM(require("prompts"));
3970
+ import prompts2 from "prompts";
3918
3971
  var tinaCloudSetupQuestions = [
3919
3972
  {
3920
3973
  name: "clientId",
@@ -3936,7 +3989,7 @@ ${logText(
3936
3989
  }
3937
3990
  ];
3938
3991
  var askTinaCloudSetup = async ({ config: config2 }) => {
3939
- const { clientId, token } = await (0, import_prompts2.default)(tinaCloudSetupQuestions);
3992
+ const { clientId, token } = await prompts2(tinaCloudSetupQuestions);
3940
3993
  config2.envVars.push(
3941
3994
  {
3942
3995
  key: "NEXT_PUBLIC_TINA_CLIENT_ID",
@@ -3950,7 +4003,7 @@ var askTinaCloudSetup = async ({ config: config2 }) => {
3950
4003
  };
3951
4004
 
3952
4005
  // src/cmds/init/prompts/gitProvider.ts
3953
- var import_prompts3 = __toESM(require("prompts"));
4006
+ import prompts3 from "prompts";
3954
4007
  var supportedGitProviders = {
3955
4008
  github: {
3956
4009
  imports: [
@@ -3972,7 +4025,7 @@ var supportedGitProviders = {
3972
4025
  }
3973
4026
  };
3974
4027
  var chooseGitProvider = async ({ config: config2 }) => {
3975
- const result = await (0, import_prompts3.default)([
4028
+ const result = await prompts3([
3976
4029
  {
3977
4030
  name: "githubToken",
3978
4031
  type: "text",
@@ -4017,7 +4070,7 @@ ${logText(
4017
4070
  };
4018
4071
 
4019
4072
  // src/cmds/init/prompts/databaseAdapter.ts
4020
- var import_prompts4 = __toESM(require("prompts"));
4073
+ import prompts4 from "prompts";
4021
4074
  var supportedDatabaseAdapters = {
4022
4075
  ["upstash-redis"]: {
4023
4076
  databaseAdapterClassText: `new RedisLevel({
@@ -4063,7 +4116,7 @@ var databaseAdapterUpdateConfig = {
4063
4116
  other: async (_args) => {
4064
4117
  },
4065
4118
  mongodb: async ({ config: config2 }) => {
4066
- const result = await (0, import_prompts4.default)([
4119
+ const result = await prompts4([
4067
4120
  {
4068
4121
  name: "mongoDBUri",
4069
4122
  type: "text",
@@ -4078,7 +4131,7 @@ var databaseAdapterUpdateConfig = {
4078
4131
  });
4079
4132
  },
4080
4133
  "upstash-redis": async ({ config: config2 }) => {
4081
- const result = await (0, import_prompts4.default)([
4134
+ const result = await prompts4([
4082
4135
  {
4083
4136
  name: "kvRestApiUrl",
4084
4137
  type: "text",
@@ -4109,7 +4162,7 @@ var chooseDatabaseAdapter = async ({
4109
4162
  framework,
4110
4163
  config: config2
4111
4164
  }) => {
4112
- const answers = await (0, import_prompts4.default)([
4165
+ const answers = await prompts4([
4113
4166
  {
4114
4167
  name: "dataLayerAdapter",
4115
4168
  message: "Select a self-hosted Database Adapter",
@@ -4139,8 +4192,8 @@ var chooseDatabaseAdapter = async ({
4139
4192
  };
4140
4193
 
4141
4194
  // src/cmds/init/prompts/authProvider.ts
4142
- var import_crypto_js = __toESM(require("crypto-js"));
4143
- var import_prompts5 = __toESM(require("prompts"));
4195
+ import crypto2 from "crypto-js";
4196
+ import prompts5 from "prompts";
4144
4197
  var supportedAuthProviders = {
4145
4198
  other: {
4146
4199
  name: "other"
@@ -4189,12 +4242,12 @@ var authProviderUpdateConfig = {
4189
4242
  },
4190
4243
  "tina-cloud": askTinaCloudSetup,
4191
4244
  "next-auth": async ({ config: config2 }) => {
4192
- const result = await (0, import_prompts5.default)([
4245
+ const result = await prompts5([
4193
4246
  {
4194
4247
  name: "nextAuthSecret",
4195
4248
  type: "text",
4196
4249
  message: `What is the NextAuth.js Secret? (Hit enter to use a randomly generated secret)`,
4197
- initial: process.env.NEXTAUTH_SECRET || import_crypto_js.default.lib.WordArray.random(16).toString()
4250
+ initial: process.env.NEXTAUTH_SECRET || crypto2.lib.WordArray.random(16).toString()
4198
4251
  }
4199
4252
  ]);
4200
4253
  config2.envVars.push({
@@ -4219,7 +4272,7 @@ var forestryDisclaimer = logText(
4219
4272
  `Note: This migration will update some of your content to match tina. Please save a backup of your content before doing this migration. (This can be done with git)`
4220
4273
  );
4221
4274
  var askCommonSetUp = async () => {
4222
- const answers = await (0, import_prompts6.default)([
4275
+ const answers = await prompts6([
4223
4276
  {
4224
4277
  name: "framework",
4225
4278
  type: "select",
@@ -4283,7 +4336,7 @@ ${forestryDisclaimer}`
4283
4336
  message: `What format are you using in your frontmatter?`
4284
4337
  });
4285
4338
  }
4286
- const answers = await (0, import_prompts6.default)(questions);
4339
+ const answers = await prompts6(questions);
4287
4340
  return answers;
4288
4341
  };
4289
4342
  var askTinaSetupPrompts = async (params) => {
@@ -4308,11 +4361,11 @@ var askTinaSetupPrompts = async (params) => {
4308
4361
  )
4309
4362
  });
4310
4363
  }
4311
- const answers = await (0, import_prompts6.default)(questions);
4364
+ const answers = await prompts6(questions);
4312
4365
  return answers;
4313
4366
  };
4314
4367
  var askIfUsingSelfHosted = async () => {
4315
- const answers = await (0, import_prompts6.default)([
4368
+ const answers = await prompts6([
4316
4369
  {
4317
4370
  name: "hosting",
4318
4371
  type: "select",
@@ -4345,20 +4398,20 @@ var makeImportString = (imports) => {
4345
4398
  };
4346
4399
 
4347
4400
  // src/cmds/init/prompts/generatedFiles.ts
4348
- var import_prompts7 = __toESM(require("prompts"));
4401
+ import prompts7 from "prompts";
4349
4402
  var askIfOverride = async ({
4350
4403
  generatedFile,
4351
4404
  usingTypescript
4352
4405
  }) => {
4353
4406
  if (usingTypescript) {
4354
- const result = await (0, import_prompts7.default)({
4407
+ const result = await prompts7({
4355
4408
  name: `override`,
4356
4409
  type: "confirm",
4357
4410
  message: `Found existing file at ${generatedFile.fullPathTS}. Would you like to overwrite?`
4358
4411
  });
4359
4412
  return Boolean(result.override);
4360
4413
  } else {
4361
- const result = await (0, import_prompts7.default)({
4414
+ const result = await prompts7({
4362
4415
  name: `override`,
4363
4416
  type: "confirm",
4364
4417
  message: `Found existing file at ${generatedFile.fullPathJS}. Would you like to overwrite?`
@@ -4493,24 +4546,25 @@ var CLICommand = class {
4493
4546
  };
4494
4547
 
4495
4548
  // src/cmds/init/apply.ts
4496
- var import_path13 = __toESM(require("path"));
4549
+ import path14 from "path";
4497
4550
 
4498
4551
  // src/cmds/forestry-migrate/index.ts
4499
- var import_fs_extra10 = __toESM(require("fs-extra"));
4500
- var import_path11 = __toESM(require("path"));
4501
- var import_js_yaml2 = __toESM(require("js-yaml"));
4502
- var import_minimatch = require("minimatch");
4503
- var import_graphql16 = require("@tinacms/graphql");
4504
- var import_schema_tools3 = require("@tinacms/schema-tools");
4552
+ import fs11 from "fs-extra";
4553
+ import path12 from "path";
4554
+ import yaml2 from "js-yaml";
4555
+ import pkg from "minimatch";
4556
+ import { parseFile, stringifyFile } from "@tinacms/graphql";
4557
+ import { CONTENT_FORMATS } from "@tinacms/schema-tools";
4505
4558
 
4506
4559
  // src/cmds/forestry-migrate/util/index.ts
4507
- var import_fs_extra9 = __toESM(require("fs-extra"));
4508
- var import_path10 = __toESM(require("path"));
4509
- var import_js_yaml = __toESM(require("js-yaml"));
4510
- var import_zod = __toESM(require("zod"));
4560
+ import fs10 from "fs-extra";
4561
+ import path11 from "path";
4562
+ import yaml from "js-yaml";
4563
+ import z from "zod";
4511
4564
 
4512
4565
  // src/cmds/forestry-migrate/util/errorSingleton.ts
4513
4566
  var ErrorSingleton = class _ErrorSingleton {
4567
+ static instance;
4514
4568
  /**
4515
4569
  * The Singleton's constructor should always be private to prevent direct
4516
4570
  * construction calls with the `new` operator.
@@ -4530,6 +4584,7 @@ var ErrorSingleton = class _ErrorSingleton {
4530
4584
  }
4531
4585
  return _ErrorSingleton.instance;
4532
4586
  }
4587
+ collectionNameErrors;
4533
4588
  addErrorName(error) {
4534
4589
  this.collectionNameErrors.push(error);
4535
4590
  }
@@ -4552,8 +4607,8 @@ var ErrorSingleton = class _ErrorSingleton {
4552
4607
  };
4553
4608
 
4554
4609
  // src/cmds/forestry-migrate/util/codeTransformer.ts
4555
- var import_prettier = require("prettier");
4556
- var import_parser_typescript = __toESM(require("prettier/parser-typescript"));
4610
+ import { format } from "prettier";
4611
+ import TsParser from "prettier/parser-typescript.js";
4557
4612
  var addVariablesToCode = (codeWithTinaPrefix) => {
4558
4613
  const code = codeWithTinaPrefix.replace(
4559
4614
  /"__TINA_INTERNAL__:::(.*?):::"/g,
@@ -4590,7 +4645,7 @@ var makeTemplateFile = async ({
4590
4645
  `export function ${stringifyLabelWithField(
4591
4646
  template.templateObj.label
4592
4647
  )} (){
4593
- return ${addVariablesToCode(JSON.stringify(template.fields, null, 2)).code} ${usingTypescript ? "as TinaField[]" : ""}
4648
+ return ${addVariablesToCode(JSON.stringify(template.fields, null, 2)).code} ${usingTypescript ? "as TinaField[]" : ""}
4594
4649
  } `
4595
4650
  );
4596
4651
  }
@@ -4598,9 +4653,9 @@ var makeTemplateFile = async ({
4598
4653
  ${usingTypescript ? "import type { TinaField } from 'tinacms'" : ""}
4599
4654
  ${templateCodeText.join("\n")}
4600
4655
  `;
4601
- const formattedCode = (0, import_prettier.format)(templateCode, {
4656
+ const formattedCode = format(templateCode, {
4602
4657
  parser: "typescript",
4603
- plugins: [import_parser_typescript.default]
4658
+ plugins: [TsParser]
4604
4659
  });
4605
4660
  return { importStatements, templateCodeText: formattedCode };
4606
4661
  };
@@ -4632,82 +4687,82 @@ var stringifyTemplateName = (name2, template) => {
4632
4687
  return newName;
4633
4688
  }
4634
4689
  };
4635
- var forestryConfigSchema = import_zod.default.object({
4636
- sections: import_zod.default.array(
4637
- import_zod.default.object({
4638
- type: import_zod.default.union([
4639
- import_zod.default.literal("directory"),
4640
- import_zod.default.literal("document"),
4641
- import_zod.default.literal("heading"),
4642
- import_zod.default.literal("jekyll-pages"),
4643
- import_zod.default.literal("jekyll-posts")
4690
+ var forestryConfigSchema = z.object({
4691
+ sections: z.array(
4692
+ z.object({
4693
+ type: z.union([
4694
+ z.literal("directory"),
4695
+ z.literal("document"),
4696
+ z.literal("heading"),
4697
+ z.literal("jekyll-pages"),
4698
+ z.literal("jekyll-posts")
4644
4699
  ]),
4645
- label: import_zod.default.string(),
4646
- path: import_zod.default.string().optional().nullable(),
4647
- match: import_zod.default.string().optional().nullable(),
4648
- exclude: import_zod.default.string().optional().nullable(),
4649
- create: import_zod.default.union([import_zod.default.literal("all"), import_zod.default.literal("documents"), import_zod.default.literal("none")]).optional(),
4650
- templates: import_zod.default.array(import_zod.default.string()).optional().nullable(),
4651
- new_doc_ext: import_zod.default.string().optional().nullable(),
4652
- read_only: import_zod.default.boolean().optional().nullable()
4700
+ label: z.string(),
4701
+ path: z.string().optional().nullable(),
4702
+ match: z.string().optional().nullable(),
4703
+ exclude: z.string().optional().nullable(),
4704
+ create: z.union([z.literal("all"), z.literal("documents"), z.literal("none")]).optional(),
4705
+ templates: z.array(z.string()).optional().nullable(),
4706
+ new_doc_ext: z.string().optional().nullable(),
4707
+ read_only: z.boolean().optional().nullable()
4653
4708
  })
4654
4709
  )
4655
4710
  });
4656
- var forestryFieldWithoutField = import_zod.default.object({
4711
+ var forestryFieldWithoutField = z.object({
4657
4712
  // TODO: maybe better type this?
4658
- type: import_zod.default.union([
4659
- import_zod.default.literal("text"),
4660
- import_zod.default.literal("datetime"),
4661
- import_zod.default.literal("list"),
4662
- import_zod.default.literal("file"),
4663
- import_zod.default.literal("image_gallery"),
4664
- import_zod.default.literal("textarea"),
4665
- import_zod.default.literal("tag_list"),
4666
- import_zod.default.literal("number"),
4667
- import_zod.default.literal("boolean"),
4668
- import_zod.default.literal("field_group"),
4669
- import_zod.default.literal("field_group_list"),
4670
- import_zod.default.literal("select"),
4671
- import_zod.default.literal("include"),
4672
- import_zod.default.literal("blocks"),
4673
- import_zod.default.literal("color")
4713
+ type: z.union([
4714
+ z.literal("text"),
4715
+ z.literal("datetime"),
4716
+ z.literal("list"),
4717
+ z.literal("file"),
4718
+ z.literal("image_gallery"),
4719
+ z.literal("textarea"),
4720
+ z.literal("tag_list"),
4721
+ z.literal("number"),
4722
+ z.literal("boolean"),
4723
+ z.literal("field_group"),
4724
+ z.literal("field_group_list"),
4725
+ z.literal("select"),
4726
+ z.literal("include"),
4727
+ z.literal("blocks"),
4728
+ z.literal("color")
4674
4729
  ]),
4675
- template_types: import_zod.default.array(import_zod.default.string()).optional().nullable(),
4676
- name: import_zod.default.string(),
4677
- label: import_zod.default.string(),
4678
- default: import_zod.default.any().optional(),
4679
- template: import_zod.default.string().optional(),
4680
- config: import_zod.default.object({
4730
+ template_types: z.array(z.string()).optional().nullable(),
4731
+ name: z.string(),
4732
+ label: z.string(),
4733
+ default: z.any().optional(),
4734
+ template: z.string().optional(),
4735
+ config: z.object({
4681
4736
  // min and max are used for lists
4682
- min: import_zod.default.number().optional().nullable(),
4683
- max: import_zod.default.number().optional().nullable(),
4684
- required: import_zod.default.boolean().optional().nullable(),
4685
- use_select: import_zod.default.boolean().optional().nullable(),
4686
- date_format: import_zod.default.string().optional().nullable(),
4687
- time_format: import_zod.default.string().optional().nullable(),
4688
- options: import_zod.default.array(import_zod.default.string()).optional().nullable(),
4689
- source: import_zod.default.object({
4690
- type: import_zod.default.union([
4691
- import_zod.default.literal("custom"),
4692
- import_zod.default.literal("pages"),
4693
- import_zod.default.literal("documents"),
4694
- import_zod.default.literal("simple"),
4737
+ min: z.number().optional().nullable(),
4738
+ max: z.number().optional().nullable(),
4739
+ required: z.boolean().optional().nullable(),
4740
+ use_select: z.boolean().optional().nullable(),
4741
+ date_format: z.string().optional().nullable(),
4742
+ time_format: z.string().optional().nullable(),
4743
+ options: z.array(z.string()).optional().nullable(),
4744
+ source: z.object({
4745
+ type: z.union([
4746
+ z.literal("custom"),
4747
+ z.literal("pages"),
4748
+ z.literal("documents"),
4749
+ z.literal("simple"),
4695
4750
  // TODO: I want to ignore this key if its invalid
4696
- import_zod.default.string()
4751
+ z.string()
4697
4752
  ]).optional().nullable(),
4698
- section: import_zod.default.string().optional().nullable()
4753
+ section: z.string().optional().nullable()
4699
4754
  }).optional()
4700
4755
  }).optional()
4701
4756
  });
4702
- var forestryField = import_zod.default.lazy(
4757
+ var forestryField = z.lazy(
4703
4758
  () => forestryFieldWithoutField.extend({
4704
- fields: import_zod.default.array(forestryField).optional()
4759
+ fields: z.array(forestryField).optional()
4705
4760
  })
4706
4761
  );
4707
- var FrontmatterTemplateSchema = import_zod.default.object({
4708
- label: import_zod.default.string(),
4709
- hide_body: import_zod.default.boolean().optional(),
4710
- fields: import_zod.default.array(forestryField).optional()
4762
+ var FrontmatterTemplateSchema = z.object({
4763
+ label: z.string(),
4764
+ hide_body: z.boolean().optional(),
4765
+ fields: z.array(forestryField).optional()
4711
4766
  });
4712
4767
  var transformForestryFieldsToTinaFields = ({
4713
4768
  fields,
@@ -4930,7 +4985,7 @@ var transformForestryFieldsToTinaFields = ({
4930
4985
  return tinaFields;
4931
4986
  };
4932
4987
  var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false }) => {
4933
- const templatePath = import_path10.default.join(
4988
+ const templatePath = path11.join(
4934
4989
  pathToForestryConfig,
4935
4990
  ".forestry",
4936
4991
  "front_matter",
@@ -4939,7 +4994,7 @@ var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false })
4939
4994
  );
4940
4995
  let templateString = "";
4941
4996
  try {
4942
- templateString = import_fs_extra9.default.readFileSync(templatePath).toString();
4997
+ templateString = fs10.readFileSync(templatePath).toString();
4943
4998
  } catch {
4944
4999
  throw new Error(
4945
5000
  `Could not find template ${tem} at ${templatePath}
@@ -4947,7 +5002,7 @@ var getFieldsFromTemplates = ({ tem, pathToForestryConfig, skipBlocks = false })
4947
5002
  This will require manual migration.`
4948
5003
  );
4949
5004
  }
4950
- const templateObj = import_js_yaml.default.load(templateString);
5005
+ const templateObj = yaml.load(templateString);
4951
5006
  const template = parseTemplates({ val: templateObj });
4952
5007
  const fields = transformForestryFieldsToTinaFields({
4953
5008
  fields: template.fields,
@@ -4967,6 +5022,7 @@ var parseSections = ({ val }) => {
4967
5022
  };
4968
5023
 
4969
5024
  // src/cmds/forestry-migrate/index.ts
5025
+ var { minimatch } = pkg;
4970
5026
  var BODY_FIELD = {
4971
5027
  // This is the body field
4972
5028
  type: "rich-text",
@@ -4995,7 +5051,7 @@ var transformForestryMatchToTinaMatch = (match) => {
4995
5051
  };
4996
5052
  function checkExt(ext) {
4997
5053
  const extReal = ext.replace(".", "");
4998
- if (import_schema_tools3.CONTENT_FORMATS.includes(extReal)) {
5054
+ if (CONTENT_FORMATS.includes(extReal)) {
4999
5055
  return extReal;
5000
5056
  } else {
5001
5057
  return false;
@@ -5004,9 +5060,9 @@ function checkExt(ext) {
5004
5060
  var generateAllTemplates = async ({
5005
5061
  pathToForestryConfig
5006
5062
  }) => {
5007
- const allTemplates = (await import_fs_extra10.default.readdir(
5008
- import_path11.default.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
5009
- )).map((tem) => import_path11.default.basename(tem, ".yml"));
5063
+ const allTemplates = (await fs11.readdir(
5064
+ path12.join(pathToForestryConfig, ".forestry", "front_matter", "templates")
5065
+ )).map((tem) => path12.basename(tem, ".yml"));
5010
5066
  const templateMap = /* @__PURE__ */ new Map();
5011
5067
  const proms = allTemplates.map(async (tem) => {
5012
5068
  try {
@@ -5081,7 +5137,7 @@ var generateCollectionFromForestrySection = (args) => {
5081
5137
  glob = section.path + "/" + section.match;
5082
5138
  }
5083
5139
  if (pages.some((page) => {
5084
- return (0, import_minimatch.minimatch)(page, glob);
5140
+ return minimatch(page, glob);
5085
5141
  })) {
5086
5142
  forestryTemplates.push(templateKey);
5087
5143
  }
@@ -5151,9 +5207,9 @@ var generateCollectionFromForestrySection = (args) => {
5151
5207
  return c;
5152
5208
  } else if (section.type === "document") {
5153
5209
  const filePath = section.path;
5154
- const extname = import_path11.default.extname(filePath);
5155
- const fileName = import_path11.default.basename(filePath, extname);
5156
- const dir = import_path11.default.dirname(filePath);
5210
+ const extname = path12.extname(filePath);
5211
+ const fileName = path12.basename(filePath, extname);
5212
+ const dir = path12.dirname(filePath);
5157
5213
  const ext = checkExt(extname);
5158
5214
  if (ext) {
5159
5215
  const fields = [];
@@ -5215,8 +5271,8 @@ var generateCollections = async ({
5215
5271
  templateMap,
5216
5272
  usingTypescript
5217
5273
  });
5218
- const forestryConfig = await import_fs_extra10.default.readFile(
5219
- import_path11.default.join(pathToForestryConfig, ".forestry", "settings.yml")
5274
+ const forestryConfig = await fs11.readFile(
5275
+ path12.join(pathToForestryConfig, ".forestry", "settings.yml")
5220
5276
  );
5221
5277
  rewriteTemplateKeysInDocs({
5222
5278
  templateMap,
@@ -5226,7 +5282,7 @@ var generateCollections = async ({
5226
5282
  }
5227
5283
  });
5228
5284
  const collections = parseSections({
5229
- val: import_js_yaml2.default.load(forestryConfig.toString())
5285
+ val: yaml2.load(forestryConfig.toString())
5230
5286
  }).sections.map(
5231
5287
  (section) => generateCollectionFromForestrySection({
5232
5288
  section,
@@ -5246,13 +5302,13 @@ var rewriteTemplateKeysInDocs = (args) => {
5246
5302
  const { templateObj } = templateMap.get(templateKey);
5247
5303
  templateObj?.pages?.forEach((page) => {
5248
5304
  try {
5249
- const filePath = import_path11.default.join(page);
5250
- if (import_fs_extra10.default.lstatSync(filePath).isDirectory()) {
5305
+ const filePath = path12.join(page);
5306
+ if (fs11.lstatSync(filePath).isDirectory()) {
5251
5307
  return;
5252
5308
  }
5253
- const extname = import_path11.default.extname(filePath);
5254
- const fileContent = import_fs_extra10.default.readFileSync(filePath).toString();
5255
- const content = (0, import_graphql16.parseFile)(
5309
+ const extname = path12.extname(filePath);
5310
+ const fileContent = fs11.readFileSync(filePath).toString();
5311
+ const content = parseFile(
5256
5312
  fileContent,
5257
5313
  extname,
5258
5314
  (yup) => yup.object({}),
@@ -5262,9 +5318,9 @@ var rewriteTemplateKeysInDocs = (args) => {
5262
5318
  _template: stringifyLabel(templateKey),
5263
5319
  ...content
5264
5320
  };
5265
- import_fs_extra10.default.writeFileSync(
5321
+ fs11.writeFileSync(
5266
5322
  filePath,
5267
- (0, import_graphql16.stringifyFile)(newContent, extname, true, markdownParseConfig)
5323
+ stringifyFile(newContent, extname, true, markdownParseConfig)
5268
5324
  );
5269
5325
  } catch (error) {
5270
5326
  console.log(
@@ -5276,32 +5332,25 @@ var rewriteTemplateKeysInDocs = (args) => {
5276
5332
  };
5277
5333
 
5278
5334
  // src/cmds/init/apply.ts
5279
- var import_metrics2 = require("@tinacms/metrics");
5280
- var import_fs_extra13 = __toESM(require("fs-extra"));
5335
+ import { Telemetry as Telemetry2 } from "@tinacms/metrics";
5336
+ import fs14 from "fs-extra";
5281
5337
 
5282
5338
  // src/next/commands/codemod-command/index.ts
5283
- var import_clipanion5 = require("clipanion");
5284
- var import_fs_extra11 = __toESM(require("fs-extra"));
5285
- var import_path12 = __toESM(require("path"));
5286
- var CodemodCommand = class extends import_clipanion5.Command {
5287
- constructor() {
5288
- super(...arguments);
5289
- this.rootPath = import_clipanion5.Option.String("--rootPath", {
5290
- description: "Specify the root directory to run the CLI from"
5291
- });
5292
- this.verbose = import_clipanion5.Option.Boolean("-v,--verbose", false, {
5293
- description: "increase verbosity of logged output"
5294
- });
5295
- }
5296
- static {
5297
- this.paths = [["codemod"], ["codemod", "move-tina-folder"]];
5298
- }
5299
- static {
5300
- this.usage = import_clipanion5.Command.Usage({
5301
- category: `Commands`,
5302
- description: `Use codemods for various Tina tasks`
5303
- });
5304
- }
5339
+ import { Command as Command5, Option as Option5 } from "clipanion";
5340
+ import fs12 from "fs-extra";
5341
+ import path13 from "path";
5342
+ var CodemodCommand = class extends Command5 {
5343
+ static paths = [["codemod"], ["codemod", "move-tina-folder"]];
5344
+ rootPath = Option5.String("--rootPath", {
5345
+ description: "Specify the root directory to run the CLI from"
5346
+ });
5347
+ verbose = Option5.Boolean("-v,--verbose", false, {
5348
+ description: "increase verbosity of logged output"
5349
+ });
5350
+ static usage = Command5.Usage({
5351
+ category: `Commands`,
5352
+ description: `Use codemods for various Tina tasks`
5353
+ });
5305
5354
  async catch(error) {
5306
5355
  console.log(error);
5307
5356
  }
@@ -5330,13 +5379,13 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5330
5379
  logger.error(e.message);
5331
5380
  process.exit(1);
5332
5381
  }
5333
- const tinaDestination = import_path12.default.join(configManager.rootPath, "tina");
5334
- if (await import_fs_extra11.default.existsSync(tinaDestination)) {
5382
+ const tinaDestination = path13.join(configManager.rootPath, "tina");
5383
+ if (await fs12.existsSync(tinaDestination)) {
5335
5384
  logger.info(
5336
5385
  `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.`
5337
5386
  );
5338
5387
  } else {
5339
- await import_fs_extra11.default.moveSync(configManager.tinaFolderPath, tinaDestination);
5388
+ await fs12.moveSync(configManager.tinaFolderPath, tinaDestination);
5340
5389
  await writeGitignore(configManager.rootPath);
5341
5390
  logger.info(
5342
5391
  "Move to 'tina' folder complete. Be sure to update any imports of the autogenerated client!"
@@ -5344,8 +5393,8 @@ var moveTinaFolder = async (rootPath = process.cwd()) => {
5344
5393
  }
5345
5394
  };
5346
5395
  var writeGitignore = async (rootPath) => {
5347
- await import_fs_extra11.default.outputFileSync(
5348
- import_path12.default.join(rootPath, "tina", ".gitignore"),
5396
+ await fs12.outputFileSync(
5397
+ path13.join(rootPath, "tina", ".gitignore"),
5349
5398
  "__generated__"
5350
5399
  );
5351
5400
  };
@@ -5753,7 +5802,7 @@ Suspendisse facilisis, mi ac scelerisque interdum, ligula ex imperdiet felis, a
5753
5802
  `;
5754
5803
 
5755
5804
  // src/cmds/init/apply.ts
5756
- var import_prettier2 = require("prettier");
5805
+ import { format as format2 } from "prettier";
5757
5806
 
5758
5807
  // src/utils/script-helpers.ts
5759
5808
  function generateGqlScript(scriptValue, opts) {
@@ -5776,38 +5825,38 @@ function extendNextScripts(scripts, opts) {
5776
5825
  }
5777
5826
 
5778
5827
  // src/cmds/init/codegen/index.ts
5779
- var import_typescript3 = __toESM(require("typescript"));
5780
- var import_fs_extra12 = __toESM(require("fs-extra"));
5828
+ import ts2 from "typescript";
5829
+ import fs13 from "fs-extra";
5781
5830
 
5782
5831
  // src/cmds/init/codegen/util.ts
5783
- var import_typescript2 = __toESM(require("typescript"));
5784
- var makeTransformer = (makeVisitor) => (ctx) => (node) => import_typescript2.default.visitNode(node, makeVisitor(ctx));
5832
+ import ts from "typescript";
5833
+ var makeTransformer = (makeVisitor) => (ctx) => (node) => ts.visitNode(node, makeVisitor(ctx));
5785
5834
  function parseExpression(expression) {
5786
- const sourceFile = import_typescript2.default.createSourceFile(
5835
+ const sourceFile = ts.createSourceFile(
5787
5836
  "temp.ts",
5788
5837
  expression,
5789
- import_typescript2.default.ScriptTarget.Latest
5838
+ ts.ScriptTarget.Latest
5790
5839
  );
5791
5840
  if (sourceFile.statements.length !== 1) {
5792
5841
  throw new Error("Expected one statement");
5793
5842
  }
5794
5843
  const statement = sourceFile.statements[0];
5795
- if (!import_typescript2.default.isExpressionStatement(statement)) {
5844
+ if (!ts.isExpressionStatement(statement)) {
5796
5845
  throw new Error("Expected an expression statement");
5797
5846
  }
5798
5847
  return [sourceFile, statement.expression];
5799
5848
  }
5800
5849
  function parseVariableStatement(stmt) {
5801
- const sourceFile = import_typescript2.default.createSourceFile(
5850
+ const sourceFile = ts.createSourceFile(
5802
5851
  "temp.ts",
5803
5852
  stmt,
5804
- import_typescript2.default.ScriptTarget.Latest
5853
+ ts.ScriptTarget.Latest
5805
5854
  );
5806
5855
  if (sourceFile.statements.length !== 1) {
5807
5856
  throw new Error("Expected one statement");
5808
5857
  }
5809
5858
  const statement = sourceFile.statements[0];
5810
- if (!import_typescript2.default.isVariableStatement(statement)) {
5859
+ if (!ts.isVariableStatement(statement)) {
5811
5860
  throw new Error("Expected a variable statement");
5812
5861
  }
5813
5862
  return [sourceFile, statement];
@@ -5815,7 +5864,7 @@ function parseVariableStatement(stmt) {
5815
5864
 
5816
5865
  // src/cmds/init/codegen/index.ts
5817
5866
  var makeVariableStatementVisitor = (sourceFile, variableStmtSourceFile, variableStmt) => (ctx) => (node) => {
5818
- if (import_typescript3.default.isSourceFile(node)) {
5867
+ if (ts2.isSourceFile(node)) {
5819
5868
  const newStatements = [...node.statements];
5820
5869
  let encounteredImports = false;
5821
5870
  let firstNonImportStatementIdx = -1;
@@ -5823,7 +5872,7 @@ var makeVariableStatementVisitor = (sourceFile, variableStmtSourceFile, variable
5823
5872
  const [newVarDec] = variableStmt.declarationList.declarations;
5824
5873
  const newVarDecName = newVarDec.name.getText(variableStmtSourceFile);
5825
5874
  for (let i = 0; i < newStatements.length; i++) {
5826
- const isImport = import_typescript3.default.isImportDeclaration(newStatements[i]);
5875
+ const isImport = ts2.isImportDeclaration(newStatements[i]);
5827
5876
  if (isImport && !encounteredImports) {
5828
5877
  encounteredImports = true;
5829
5878
  }
@@ -5831,9 +5880,9 @@ var makeVariableStatementVisitor = (sourceFile, variableStmtSourceFile, variable
5831
5880
  firstNonImportStatementIdx = i;
5832
5881
  }
5833
5882
  const stmt = newStatements[i];
5834
- if (import_typescript3.default.isVariableStatement(stmt)) {
5883
+ if (ts2.isVariableStatement(stmt)) {
5835
5884
  const [dec] = stmt.declarationList.declarations;
5836
- if (dec.name && import_typescript3.default.isIdentifier(dec.name) && dec.name.getText(sourceFile) === newVarDecName) {
5885
+ if (dec.name && ts2.isIdentifier(dec.name) && dec.name.getText(sourceFile) === newVarDecName) {
5837
5886
  existingStatementIdx = i;
5838
5887
  }
5839
5888
  }
@@ -5847,19 +5896,19 @@ var makeVariableStatementVisitor = (sourceFile, variableStmtSourceFile, variable
5847
5896
  if (existingStatementIdx === -1) {
5848
5897
  newStatements.splice(firstNonImportStatementIdx, 0, variableStmt);
5849
5898
  }
5850
- return import_typescript3.default.factory.updateSourceFile(node, newStatements);
5899
+ return ts2.factory.updateSourceFile(node, newStatements);
5851
5900
  }
5852
5901
  };
5853
5902
  var makeImportsVisitor = (sourceFile, importMap) => (ctx) => (node) => {
5854
- if (import_typescript3.default.isSourceFile(node)) {
5903
+ if (ts2.isSourceFile(node)) {
5855
5904
  const newStatements = [...node.statements];
5856
5905
  let changed = false;
5857
5906
  for (const [moduleName, imports] of Object.entries(importMap)) {
5858
5907
  let foundImportStatement = false;
5859
5908
  for (const statement of newStatements) {
5860
- if (import_typescript3.default.isImportDeclaration(statement) && import_typescript3.default.isStringLiteral(statement.moduleSpecifier) && statement.moduleSpecifier.text === moduleName) {
5909
+ if (ts2.isImportDeclaration(statement) && ts2.isStringLiteral(statement.moduleSpecifier) && statement.moduleSpecifier.text === moduleName) {
5861
5910
  foundImportStatement = true;
5862
- const existingImports = statement.importClause?.namedBindings && import_typescript3.default.isNamedImports(statement.importClause.namedBindings) ? statement.importClause.namedBindings.elements.map(
5911
+ const existingImports = statement.importClause?.namedBindings && ts2.isNamedImports(statement.importClause.namedBindings) ? statement.importClause.namedBindings.elements.map(
5863
5912
  (e) => e.name.text
5864
5913
  ) : [];
5865
5914
  const newImports = [
@@ -5870,22 +5919,22 @@ var makeImportsVisitor = (sourceFile, importMap) => (ctx) => (node) => {
5870
5919
  ])
5871
5920
  ];
5872
5921
  const importSpecifiers = newImports.map(
5873
- (i) => import_typescript3.default.factory.createImportSpecifier(
5922
+ (i) => ts2.factory.createImportSpecifier(
5874
5923
  void 0,
5875
- import_typescript3.default.factory.createIdentifier(i),
5876
- import_typescript3.default.factory.createIdentifier(i)
5924
+ ts2.factory.createIdentifier(i),
5925
+ ts2.factory.createIdentifier(i)
5877
5926
  )
5878
5927
  );
5879
- const namedImports = import_typescript3.default.factory.createNamedImports(importSpecifiers);
5880
- const importClause = import_typescript3.default.factory.createImportClause(
5928
+ const namedImports = ts2.factory.createNamedImports(importSpecifiers);
5929
+ const importClause = ts2.factory.createImportClause(
5881
5930
  false,
5882
5931
  void 0,
5883
5932
  namedImports
5884
5933
  );
5885
- const importDec = import_typescript3.default.factory.createImportDeclaration(
5934
+ const importDec = ts2.factory.createImportDeclaration(
5886
5935
  void 0,
5887
5936
  importClause,
5888
- import_typescript3.default.factory.createStringLiteral(moduleName)
5937
+ ts2.factory.createStringLiteral(moduleName)
5889
5938
  );
5890
5939
  newStatements[newStatements.indexOf(statement)] = importDec;
5891
5940
  changed = true;
@@ -5893,45 +5942,45 @@ var makeImportsVisitor = (sourceFile, importMap) => (ctx) => (node) => {
5893
5942
  }
5894
5943
  if (!foundImportStatement) {
5895
5944
  const importSpecifiers = imports.map(
5896
- (i) => import_typescript3.default.factory.createImportSpecifier(
5945
+ (i) => ts2.factory.createImportSpecifier(
5897
5946
  void 0,
5898
- import_typescript3.default.factory.createIdentifier(i),
5899
- import_typescript3.default.factory.createIdentifier(i)
5947
+ ts2.factory.createIdentifier(i),
5948
+ ts2.factory.createIdentifier(i)
5900
5949
  )
5901
5950
  );
5902
- const namedImports = import_typescript3.default.factory.createNamedImports(importSpecifiers);
5903
- const importClause = import_typescript3.default.factory.createImportClause(
5951
+ const namedImports = ts2.factory.createNamedImports(importSpecifiers);
5952
+ const importClause = ts2.factory.createImportClause(
5904
5953
  false,
5905
5954
  void 0,
5906
5955
  namedImports
5907
5956
  );
5908
- const importDec = import_typescript3.default.factory.createImportDeclaration(
5957
+ const importDec = ts2.factory.createImportDeclaration(
5909
5958
  void 0,
5910
5959
  importClause,
5911
- import_typescript3.default.factory.createStringLiteral(moduleName)
5960
+ ts2.factory.createStringLiteral(moduleName)
5912
5961
  );
5913
5962
  newStatements.unshift(importDec);
5914
5963
  changed = true;
5915
5964
  }
5916
5965
  }
5917
5966
  if (changed) {
5918
- return import_typescript3.default.factory.updateSourceFile(node, newStatements);
5967
+ return ts2.factory.updateSourceFile(node, newStatements);
5919
5968
  }
5920
5969
  }
5921
5970
  };
5922
5971
  var makeAddExpressionToSchemaCollectionVisitor = (sourceFile, functionName, newExpressionSourceFile, newExpression) => (ctx) => {
5923
5972
  const visit2 = (node) => {
5924
- if (import_typescript3.default.isCallExpression(node) && import_typescript3.default.isIdentifier(node.expression) && node.expression.text === functionName && node.arguments.length > 0 && import_typescript3.default.isObjectLiteralExpression(node.arguments[0])) {
5973
+ if (ts2.isCallExpression(node) && ts2.isIdentifier(node.expression) && node.expression.text === functionName && node.arguments.length > 0 && ts2.isObjectLiteralExpression(node.arguments[0])) {
5925
5974
  const configObject = node.arguments[0];
5926
5975
  const updateProperties = configObject.properties.map((property) => {
5927
- if (import_typescript3.default.isPropertyAssignment(property)) {
5976
+ if (ts2.isPropertyAssignment(property)) {
5928
5977
  const thisPropertyName = property.name.getText(sourceFile);
5929
- if (thisPropertyName === "schema" && import_typescript3.default.isPropertyAssignment(property) && import_typescript3.default.isObjectLiteralExpression(property.initializer)) {
5978
+ if (thisPropertyName === "schema" && ts2.isPropertyAssignment(property) && ts2.isObjectLiteralExpression(property.initializer)) {
5930
5979
  const schemaObject = property.initializer;
5931
5980
  const collectionsProperty = schemaObject.properties.find(
5932
- (p) => import_typescript3.default.isPropertyAssignment(p) && p.name.getText(sourceFile) === "collections"
5981
+ (p) => ts2.isPropertyAssignment(p) && p.name.getText(sourceFile) === "collections"
5933
5982
  );
5934
- if (collectionsProperty && import_typescript3.default.isPropertyAssignment(collectionsProperty) && import_typescript3.default.isArrayLiteralExpression(collectionsProperty.initializer)) {
5983
+ if (collectionsProperty && ts2.isPropertyAssignment(collectionsProperty) && ts2.isArrayLiteralExpression(collectionsProperty.initializer)) {
5935
5984
  const collectionsArray = collectionsProperty.initializer;
5936
5985
  const collectionItems = collectionsArray.elements.map(
5937
5986
  (e) => e.getText(sourceFile)
@@ -5941,16 +5990,16 @@ var makeAddExpressionToSchemaCollectionVisitor = (sourceFile, functionName, newE
5941
5990
  )) {
5942
5991
  return property;
5943
5992
  }
5944
- return import_typescript3.default.factory.updatePropertyAssignment(
5993
+ return ts2.factory.updatePropertyAssignment(
5945
5994
  property,
5946
5995
  property.name,
5947
- import_typescript3.default.factory.createObjectLiteralExpression(
5996
+ ts2.factory.createObjectLiteralExpression(
5948
5997
  schemaObject.properties.map((subProp) => {
5949
- if (import_typescript3.default.isPropertyAssignment(subProp) && subProp.name.getText(sourceFile) === "collections" && import_typescript3.default.isArrayLiteralExpression(subProp.initializer)) {
5950
- return import_typescript3.default.factory.updatePropertyAssignment(
5998
+ if (ts2.isPropertyAssignment(subProp) && subProp.name.getText(sourceFile) === "collections" && ts2.isArrayLiteralExpression(subProp.initializer)) {
5999
+ return ts2.factory.updatePropertyAssignment(
5951
6000
  subProp,
5952
6001
  subProp.name,
5953
- import_typescript3.default.factory.createArrayLiteralExpression(
6002
+ ts2.factory.createArrayLiteralExpression(
5954
6003
  [newExpression, ...subProp.initializer.elements],
5955
6004
  true
5956
6005
  )
@@ -5966,56 +6015,56 @@ var makeAddExpressionToSchemaCollectionVisitor = (sourceFile, functionName, newE
5966
6015
  }
5967
6016
  return property;
5968
6017
  });
5969
- return import_typescript3.default.factory.createCallExpression(
6018
+ return ts2.factory.createCallExpression(
5970
6019
  node.expression,
5971
6020
  node.typeArguments,
5972
- [import_typescript3.default.factory.createObjectLiteralExpression(updateProperties, true)]
6021
+ [ts2.factory.createObjectLiteralExpression(updateProperties, true)]
5973
6022
  );
5974
6023
  }
5975
- return import_typescript3.default.visitEachChild(node, visit2, ctx);
6024
+ return ts2.visitEachChild(node, visit2, ctx);
5976
6025
  };
5977
6026
  return (sourceFile2) => {
5978
- return import_typescript3.default.visitEachChild(sourceFile2, visit2, ctx);
6027
+ return ts2.visitEachChild(sourceFile2, visit2, ctx);
5979
6028
  };
5980
6029
  };
5981
6030
  var makeUpdateObjectLiteralPropertyVisitor = (sourceFile, functionName, propertyName, propertyValueExpressionSourceFile, propertyValue) => (ctx) => {
5982
6031
  const visitor = (node) => {
5983
- if (import_typescript3.default.isCallExpression(node) && import_typescript3.default.isIdentifier(node.expression) && node.expression.text === functionName && node.arguments.length > 0 && import_typescript3.default.isObjectLiteralExpression(node.arguments[0])) {
6032
+ if (ts2.isCallExpression(node) && ts2.isIdentifier(node.expression) && node.expression.text === functionName && node.arguments.length > 0 && ts2.isObjectLiteralExpression(node.arguments[0])) {
5984
6033
  let foundProperty = false;
5985
6034
  const configObject = node.arguments[0];
5986
6035
  const updateProperties = configObject.properties.map((property) => {
5987
- if (import_typescript3.default.isPropertyAssignment(property) || import_typescript3.default.isShorthandPropertyAssignment(property)) {
6036
+ if (ts2.isPropertyAssignment(property) || ts2.isShorthandPropertyAssignment(property)) {
5988
6037
  const name2 = property.name.getText(sourceFile);
5989
6038
  if (name2 === propertyName) {
5990
6039
  foundProperty = true;
5991
- return import_typescript3.default.factory.createPropertyAssignment(name2, propertyValue);
6040
+ return ts2.factory.createPropertyAssignment(name2, propertyValue);
5992
6041
  }
5993
6042
  }
5994
6043
  return property;
5995
6044
  });
5996
6045
  if (!foundProperty) {
5997
6046
  updateProperties.unshift(
5998
- import_typescript3.default.factory.createPropertyAssignment(propertyName, propertyValue)
6047
+ ts2.factory.createPropertyAssignment(propertyName, propertyValue)
5999
6048
  );
6000
6049
  }
6001
- return import_typescript3.default.factory.createCallExpression(
6050
+ return ts2.factory.createCallExpression(
6002
6051
  node.expression,
6003
6052
  node.typeArguments,
6004
- [import_typescript3.default.factory.createObjectLiteralExpression(updateProperties, true)]
6053
+ [ts2.factory.createObjectLiteralExpression(updateProperties, true)]
6005
6054
  );
6006
6055
  }
6007
- return import_typescript3.default.visitEachChild(node, visitor, ctx);
6056
+ return ts2.visitEachChild(node, visitor, ctx);
6008
6057
  };
6009
6058
  return (sourceFile2) => {
6010
- return import_typescript3.default.visitNode(sourceFile2, visitor);
6059
+ return ts2.visitNode(sourceFile2, visitor);
6011
6060
  };
6012
6061
  };
6013
6062
  var addSelfHostedTinaAuthToConfig = async (config2, configFile) => {
6014
6063
  const pathToConfig = configFile.resolve(config2.typescript).path;
6015
- const sourceFile = import_typescript3.default.createSourceFile(
6064
+ const sourceFile = ts2.createSourceFile(
6016
6065
  pathToConfig,
6017
- import_fs_extra12.default.readFileSync(pathToConfig, "utf8"),
6018
- config2.typescript ? import_typescript3.default.ScriptTarget.Latest : import_typescript3.default.ScriptTarget.ESNext
6066
+ fs13.readFileSync(pathToConfig, "utf8"),
6067
+ config2.typescript ? ts2.ScriptTarget.Latest : ts2.ScriptTarget.ESNext
6019
6068
  );
6020
6069
  const { configImports, configAuthProviderClass, extraTinaCollections } = config2.authProvider;
6021
6070
  const importMap = {
@@ -6028,7 +6077,7 @@ var addSelfHostedTinaAuthToConfig = async (config2, configFile) => {
6028
6077
  {}
6029
6078
  )
6030
6079
  };
6031
- const transformedSourceFileResult = import_typescript3.default.transform(
6080
+ const transformedSourceFileResult = ts2.transform(
6032
6081
  sourceFile,
6033
6082
  [
6034
6083
  makeImportsVisitor(sourceFile, {
@@ -6064,13 +6113,14 @@ var addSelfHostedTinaAuthToConfig = async (config2, configFile) => {
6064
6113
  )
6065
6114
  ].map((visitor) => makeTransformer(visitor))
6066
6115
  );
6067
- return import_fs_extra12.default.writeFile(
6116
+ return fs13.writeFile(
6068
6117
  pathToConfig,
6069
- import_typescript3.default.createPrinter({ omitTrailingSemicolon: true }).printFile(transformedSourceFileResult.transformed[0])
6118
+ ts2.createPrinter({ omitTrailingSemicolon: true }).printFile(transformedSourceFileResult.transformed[0])
6070
6119
  );
6071
6120
  };
6072
6121
 
6073
6122
  // src/cmds/init/apply.ts
6123
+ import { exec } from "child_process";
6074
6124
  async function apply({
6075
6125
  env,
6076
6126
  params,
@@ -6181,8 +6231,8 @@ async function apply({
6181
6231
  await addConfigFile({
6182
6232
  configArgs: {
6183
6233
  config: config2,
6184
- publicFolder: import_path13.default.join(
6185
- import_path13.default.relative(process.cwd(), pathToForestryConfig),
6234
+ publicFolder: path14.join(
6235
+ path14.relative(process.cwd(), pathToForestryConfig),
6186
6236
  config2.publicFolder
6187
6237
  ),
6188
6238
  collections,
@@ -6239,7 +6289,7 @@ var reportTelemetry = async ({
6239
6289
  if (noTelemetry) {
6240
6290
  logger.info(logText("Telemetry disabled"));
6241
6291
  }
6242
- const telemetry = new import_metrics2.Telemetry({ disabled: noTelemetry });
6292
+ const telemetry = new Telemetry2({ disabled: noTelemetry });
6243
6293
  const schemaFileType = usingTypescript ? "ts" : "js";
6244
6294
  await telemetry.submitRecord({
6245
6295
  event: {
@@ -6255,18 +6305,18 @@ var createPackageJSON = async () => {
6255
6305
  };
6256
6306
  var createGitignore = async ({ baseDir }) => {
6257
6307
  logger.info(logText("No .gitignore found, creating one"));
6258
- import_fs_extra13.default.outputFileSync(import_path13.default.join(baseDir, ".gitignore"), "node_modules");
6308
+ fs14.outputFileSync(path14.join(baseDir, ".gitignore"), "node_modules");
6259
6309
  };
6260
6310
  var updateGitIgnore = async ({
6261
6311
  baseDir,
6262
6312
  items
6263
6313
  }) => {
6264
6314
  logger.info(logText(`Adding ${items.join(",")} to .gitignore`));
6265
- const gitignoreContent = import_fs_extra13.default.readFileSync(import_path13.default.join(baseDir, ".gitignore")).toString();
6315
+ const gitignoreContent = fs14.readFileSync(path14.join(baseDir, ".gitignore")).toString();
6266
6316
  const newGitignoreContent = [...gitignoreContent.split("\n"), ...items].join(
6267
6317
  "\n"
6268
6318
  );
6269
- await import_fs_extra13.default.writeFile(import_path13.default.join(baseDir, ".gitignore"), newGitignoreContent);
6319
+ await fs14.writeFile(path14.join(baseDir, ".gitignore"), newGitignoreContent);
6270
6320
  };
6271
6321
  var addDependencies = async (config2, env, params) => {
6272
6322
  const { packageManager } = config2;
@@ -6341,7 +6391,7 @@ var writeGeneratedFile = async ({
6341
6391
  if (exists) {
6342
6392
  if (overwrite) {
6343
6393
  logger.info(`Overwriting file at ${path15}... \u2705`);
6344
- import_fs_extra13.default.outputFileSync(path15, content);
6394
+ fs14.outputFileSync(path15, content);
6345
6395
  } else {
6346
6396
  logger.info(`Not overwriting file at ${path15}.`);
6347
6397
  logger.info(
@@ -6351,8 +6401,8 @@ ${indentText(content)}}`)
6351
6401
  }
6352
6402
  } else {
6353
6403
  logger.info(`Adding file at ${path15}... \u2705`);
6354
- await import_fs_extra13.default.ensureDir(parentPath);
6355
- import_fs_extra13.default.outputFileSync(path15, content);
6404
+ await fs14.ensureDir(parentPath);
6405
+ fs14.outputFileSync(path15, content);
6356
6406
  }
6357
6407
  };
6358
6408
  var addConfigFile = async ({
@@ -6361,7 +6411,7 @@ var addConfigFile = async ({
6361
6411
  generatedFile,
6362
6412
  config: config2
6363
6413
  }) => {
6364
- const content = (0, import_prettier2.format)(generateConfig(configArgs), {
6414
+ const content = format2(generateConfig(configArgs), {
6365
6415
  parser: "babel"
6366
6416
  });
6367
6417
  await writeGeneratedFile({
@@ -6391,7 +6441,7 @@ var addNextApiRoute = async ({
6391
6441
  generatedFile,
6392
6442
  env
6393
6443
  }) => {
6394
- const content = (0, import_prettier2.format)(nextApiRouteTemplate({ config: config2, env }), {
6444
+ const content = format2(nextApiRouteTemplate({ config: config2, env }), {
6395
6445
  parser: "babel"
6396
6446
  });
6397
6447
  await writeGeneratedFile({
@@ -6430,7 +6480,7 @@ var addContentFile = async ({
6430
6480
  return () => ({
6431
6481
  exists: env.sampleContentExists,
6432
6482
  path: env.sampleContentPath,
6433
- parentPath: import_path13.default.dirname(env.sampleContentPath)
6483
+ parentPath: path14.dirname(env.sampleContentPath)
6434
6484
  });
6435
6485
  }
6436
6486
  },
@@ -6453,10 +6503,10 @@ ${titleText(" TinaCMS ")} backend initialized!`));
6453
6503
  return `${x.key}=${x.value || "***"}`;
6454
6504
  }).join("\n") + `
6455
6505
  TINA_PUBLIC_IS_LOCAL=true`;
6456
- const envFile = import_path13.default.join(process.cwd(), ".env");
6457
- if (!import_fs_extra13.default.existsSync(envFile)) {
6506
+ const envFile = path14.join(process.cwd(), ".env");
6507
+ if (!fs14.existsSync(envFile)) {
6458
6508
  logger.info(`Adding .env file to your project... \u2705`);
6459
- import_fs_extra13.default.writeFileSync(envFile, envFileText);
6509
+ fs14.writeFileSync(envFile, envFileText);
6460
6510
  } else {
6461
6511
  logger.info(
6462
6512
  "Please add the following environment variables to your .env file"
@@ -6527,7 +6577,7 @@ var addReactiveFile = {
6527
6577
  baseDir,
6528
6578
  dataLayer
6529
6579
  }) => {
6530
- const packageJsonPath = import_path13.default.join(baseDir, "package.json");
6580
+ const packageJsonPath = path14.join(baseDir, "package.json");
6531
6581
  await writeGeneratedFile({
6532
6582
  generatedFile,
6533
6583
  typescript: config2.typescript,
@@ -6540,7 +6590,7 @@ var addReactiveFile = {
6540
6590
  })
6541
6591
  });
6542
6592
  logger.info("Adding a nextjs example... \u2705");
6543
- const packageJson = JSON.parse(import_fs_extra13.default.readFileSync(packageJsonPath).toString());
6593
+ const packageJson = JSON.parse(fs14.readFileSync(packageJsonPath).toString());
6544
6594
  const scripts = packageJson.scripts || {};
6545
6595
  const updatedPackageJson = JSON.stringify(
6546
6596
  {
@@ -6553,11 +6603,10 @@ var addReactiveFile = {
6553
6603
  null,
6554
6604
  2
6555
6605
  );
6556
- import_fs_extra13.default.writeFileSync(packageJsonPath, updatedPackageJson);
6606
+ fs14.writeFileSync(packageJsonPath, updatedPackageJson);
6557
6607
  }
6558
6608
  };
6559
6609
  function execShellCommand(cmd) {
6560
- const exec = require("child_process").exec;
6561
6610
  return new Promise((resolve2, reject) => {
6562
6611
  exec(cmd, (error, stdout, stderr) => {
6563
6612
  if (error) {
@@ -6603,34 +6652,27 @@ var command = new CLICommand({
6603
6652
  });
6604
6653
 
6605
6654
  // src/next/commands/init-command/index.ts
6606
- var InitCommand = class extends import_clipanion6.Command {
6607
- constructor() {
6608
- super(...arguments);
6609
- this.pathToForestryConfig = import_clipanion6.Option.String("--forestryPath", {
6610
- description: "Specify the relative path to the .forestry directory, if importing an existing forestry site."
6611
- });
6612
- this.rootPath = import_clipanion6.Option.String("--rootPath", {
6613
- description: "Specify the root directory to run the CLI from (defaults to current working directory)"
6614
- });
6615
- this.debug = import_clipanion6.Option.Boolean("--debug", false, {
6616
- description: "Enable debug logging"
6617
- });
6618
- this.noTelemetry = import_clipanion6.Option.Boolean("--noTelemetry", false, {
6619
- description: "Disable anonymous telemetry that is collected"
6620
- });
6621
- this.tinaVersion = import_clipanion6.Option.String("--tinaVersion", {
6622
- description: "Specify a version for tina dependencies"
6623
- });
6624
- }
6625
- static {
6626
- this.paths = [["init"], ["init", "backend"]];
6627
- }
6628
- static {
6629
- this.usage = import_clipanion6.Command.Usage({
6630
- category: `Commands`,
6631
- description: `Add Tina to an existing project`
6632
- });
6633
- }
6655
+ var InitCommand = class extends Command6 {
6656
+ static paths = [["init"], ["init", "backend"]];
6657
+ pathToForestryConfig = Option6.String("--forestryPath", {
6658
+ description: "Specify the relative path to the .forestry directory, if importing an existing forestry site."
6659
+ });
6660
+ rootPath = Option6.String("--rootPath", {
6661
+ description: "Specify the root directory to run the CLI from (defaults to current working directory)"
6662
+ });
6663
+ debug = Option6.Boolean("--debug", false, {
6664
+ description: "Enable debug logging"
6665
+ });
6666
+ noTelemetry = Option6.Boolean("--noTelemetry", false, {
6667
+ description: "Disable anonymous telemetry that is collected"
6668
+ });
6669
+ tinaVersion = Option6.String("--tinaVersion", {
6670
+ description: "Specify a version for tina dependencies"
6671
+ });
6672
+ static usage = Command6.Usage({
6673
+ category: `Commands`,
6674
+ description: `Add Tina to an existing project`
6675
+ });
6634
6676
  async catch(error) {
6635
6677
  logger.error("Error occured during tinacms init");
6636
6678
  console.error(error);
@@ -6652,28 +6694,24 @@ var InitCommand = class extends import_clipanion6.Command {
6652
6694
  };
6653
6695
 
6654
6696
  // src/next/commands/searchindex-command/index.ts
6655
- var import_clipanion7 = require("clipanion");
6656
- var import_graphql17 = require("@tinacms/graphql");
6657
- var import_search3 = require("@tinacms/search");
6658
- var SearchIndexCommand = class extends import_clipanion7.Command {
6659
- constructor() {
6660
- super(...arguments);
6661
- this.rootPath = import_clipanion7.Option.String("--rootPath", {
6662
- description: "Specify the root directory to run the CLI from (defaults to current working directory)"
6663
- });
6664
- this.verbose = import_clipanion7.Option.Boolean("-v,--verbose", false, {
6665
- description: "increase verbosity of logged output"
6666
- });
6667
- }
6668
- static {
6669
- this.paths = [["search-index"]];
6670
- }
6671
- static {
6672
- this.usage = import_clipanion7.Command.Usage({
6673
- category: `Commands`,
6674
- description: `Index the site for search`
6675
- });
6676
- }
6697
+ import { Command as Command7, Option as Option7 } from "clipanion";
6698
+ import { createSchema, FilesystemBridge as FilesystemBridge4 } from "@tinacms/graphql";
6699
+ import {
6700
+ SearchIndexer as SearchIndexer3,
6701
+ TinaCMSSearchIndexClient as TinaCMSSearchIndexClient2
6702
+ } from "@tinacms/search";
6703
+ var SearchIndexCommand = class extends Command7 {
6704
+ static paths = [["search-index"]];
6705
+ rootPath = Option7.String("--rootPath", {
6706
+ description: "Specify the root directory to run the CLI from (defaults to current working directory)"
6707
+ });
6708
+ verbose = Option7.Boolean("-v,--verbose", false, {
6709
+ description: "increase verbosity of logged output"
6710
+ });
6711
+ static usage = Command7.Usage({
6712
+ category: `Commands`,
6713
+ description: `Index the site for search`
6714
+ });
6677
6715
  async catch(error) {
6678
6716
  logger.error("Error occured during tinacms search-index");
6679
6717
  console.error(error);
@@ -6695,7 +6733,7 @@ var SearchIndexCommand = class extends import_clipanion7.Command {
6695
6733
  process.exit(1);
6696
6734
  }
6697
6735
  const { schema } = configManager.config;
6698
- const tinaSchema = await (0, import_graphql17.createSchema)({
6736
+ const tinaSchema = await createSchema({
6699
6737
  schema: { ...schema, config: configManager.config }
6700
6738
  });
6701
6739
  let client;
@@ -6723,7 +6761,7 @@ var SearchIndexCommand = class extends import_clipanion7.Command {
6723
6761
  "indexerToken not configured in tina search configuration."
6724
6762
  );
6725
6763
  }
6726
- client = new import_search3.TinaCMSSearchIndexClient({
6764
+ client = new TinaCMSSearchIndexClient2({
6727
6765
  apiUrl: `${configManager.config.tinaioConfig?.contentApiUrlOverride || "https://content.tinajs.io"}/searchIndex/${configManager.config?.clientId}`,
6728
6766
  branch: configManager.config?.branch,
6729
6767
  indexerToken: configManager.config?.search?.tina?.indexerToken,
@@ -6732,9 +6770,9 @@ var SearchIndexCommand = class extends import_clipanion7.Command {
6732
6770
  } else {
6733
6771
  client = configManager.config?.search?.searchClient;
6734
6772
  }
6735
- const searchIndexer = new import_search3.SearchIndexer({
6773
+ const searchIndexer = new SearchIndexer3({
6736
6774
  batchSize: configManager.config.search?.indexBatchSize || 100,
6737
- bridge: new import_graphql17.FilesystemBridge(
6775
+ bridge: new FilesystemBridge4(
6738
6776
  configManager.rootPath,
6739
6777
  configManager.contentRootPath
6740
6778
  ),
@@ -6762,7 +6800,7 @@ var SearchIndexCommand = class extends import_clipanion7.Command {
6762
6800
  };
6763
6801
 
6764
6802
  // src/index.ts
6765
- var cli = new import_clipanion8.Cli({
6803
+ var cli = new Cli({
6766
6804
  binaryName: `tinacms`,
6767
6805
  binaryLabel: `TinaCMS`,
6768
6806
  binaryVersion: version
@@ -6773,7 +6811,10 @@ cli.register(AuditCommand);
6773
6811
  cli.register(InitCommand);
6774
6812
  cli.register(CodemodCommand);
6775
6813
  cli.register(SearchIndexCommand);
6776
- cli.register(import_clipanion8.Builtins.DefinitionsCommand);
6777
- cli.register(import_clipanion8.Builtins.HelpCommand);
6778
- cli.register(import_clipanion8.Builtins.VersionCommand);
6814
+ cli.register(Builtins.DefinitionsCommand);
6815
+ cli.register(Builtins.HelpCommand);
6816
+ cli.register(Builtins.VersionCommand);
6779
6817
  var index_default = cli;
6818
+ export {
6819
+ index_default as default
6820
+ };