create-convex-monorepo 0.3.0 → 0.3.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.
package/README.md CHANGED
@@ -28,31 +28,40 @@ Contributors can run the checkout with `pnpm dev`; see [CONTRIBUTING.md](CONTRIB
28
28
 
29
29
  ## Manage an existing workspace
30
30
 
31
- The same npm package also provides the `convex-monorepo` command. Install it in the generated workspace:
31
+ Run the same CLI from the workspace root or any subdirectory. No global or project installation is needed:
32
32
 
33
33
  ```sh
34
- pnpm add -Dw create-convex-monorepo@latest
35
- pnpm exec convex-monorepo add
34
+ npx create-convex-monorepo@latest
36
35
  ```
37
36
 
38
- Or run it without installing a project dependency:
37
+ With a terminal attached, it detects `convex-monorepo.json` and offers a menu to add an app, add Clerk, check the workspace, sync frontend URLs, or check for updates. Without a terminal, it prints management help without changing files.
38
+
39
+ You can also run each command directly:
39
40
 
40
41
  ```sh
41
- pnpm --package create-convex-monorepo@latest dlx convex-monorepo doctor
42
- npx --yes --package create-convex-monorepo@latest convex-monorepo doctor
42
+ npx create-convex-monorepo@latest add app admin --framework vite --example none --dry-run
43
+ npx create-convex-monorepo@latest add app admin --framework vite --example none --install
44
+ npx create-convex-monorepo@latest add app mobile --framework expo --no-install
45
+ npx create-convex-monorepo@latest add auth clerk --dry-run
46
+ npx create-convex-monorepo@latest add auth clerk --install
47
+ npx create-convex-monorepo@latest env sync --app mobile
48
+ npx create-convex-monorepo@latest doctor
49
+ npx create-convex-monorepo@latest upgrade --check
43
50
  ```
44
51
 
45
- Run commands from the workspace root or any subdirectory:
52
+ The same commands work through pnpm:
53
+
54
+ ```sh
55
+ pnpm create convex-monorepo@latest add app admin --framework vite --no-install
56
+ pnpm create convex-monorepo@latest doctor
57
+ ```
58
+
59
+ The separate `convex-monorepo` binary remains available for users who install the package locally or globally. For example, after `pnpm add -Dw create-convex-monorepo@latest`, run `pnpm exec convex-monorepo doctor`.
60
+
61
+ To explicitly generate a new project, use `create <project-name>`. This also lets you use a command name such as `doctor` as the project name:
46
62
 
47
63
  ```sh
48
- pnpm exec convex-monorepo add app admin --framework vite --example none --dry-run
49
- pnpm exec convex-monorepo add app admin --framework vite --example none --install
50
- pnpm exec convex-monorepo add app mobile --framework expo --no-install
51
- pnpm exec convex-monorepo add auth clerk --dry-run
52
- pnpm exec convex-monorepo add auth clerk --install
53
- pnpm exec convex-monorepo env sync --app mobile
54
- pnpm exec convex-monorepo doctor
55
- pnpm exec convex-monorepo upgrade --check
64
+ npx create-convex-monorepo@latest create doctor --apps vite --no-install --no-git
56
65
  ```
57
66
 
58
67
  | Command | Behavior |
@@ -179,7 +188,7 @@ Use explicit names to choose folders and repeat a framework:
179
188
  pnpm create convex-monorepo@latest acme --apps web:next,admin:next,mobile:expo --yes
180
189
  ```
181
190
 
182
- Apps become `@acme/web`, `@acme/admin`, and `@acme/mobile`. All depend on `@acme/backend` through `workspace:*`. The generator assigns distinct web development ports. v0.1 creates a new workspace; adding an app to an existing workspace is not implemented.
191
+ Apps become `@acme/web`, `@acme/admin`, and `@acme/mobile`. All depend on `@acme/backend` through `workspace:*`. The generator assigns distinct web development ports. Use `npx create-convex-monorepo@latest add app` to add another frontend later.
183
192
 
184
193
  ## First run and development
185
194
 
@@ -205,6 +214,17 @@ pnpm build
205
214
 
206
215
  Complete setup in a normal terminal before starting Turbo. Stop a separately running backend watcher before `pnpm dev`, which starts its own. Public environment values are embedded at build time; rebuild frontends when they change. Backend build checks types and does not deploy.
207
216
 
217
+ ## Code formatting
218
+
219
+ Generated source and configuration files are formatted with Prettier before they are written, including when using `--no-install`. New workspaces include a pinned Prettier dependency and matching configuration:
220
+
221
+ ```sh
222
+ pnpm format
223
+ pnpm format:check
224
+ ```
225
+
226
+ Convex `_generated` files, TanStack's generated route tree, build output, lockfiles, and environment files are excluded. Adding an app formats its new files; it does not reformat existing application code. Auth migration accepts formatting differences in older starters while still rejecting customized code that would be replaced.
227
+
208
228
  ## Convex backend sharing
209
229
 
210
230
  ```ts
@@ -255,7 +275,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md), [adding a framework](docs/adding-a-frame
255
275
 
256
276
  ## Roadmap
257
277
 
258
- The next release should add `doctor` to check deployment URLs, generated types, version alignment, and auth setup in an existing workspace. Later candidates are `add app`, another auth provider, and additional package-manager adapters. These commands are not available in v0.1.
278
+ Next candidates are reviewed upgrade migrations, additional auth providers, and more package-manager adapters. `upgrade --check` currently reports versions without changing dependencies.
259
279
 
260
280
  MIT licensed. See [LICENSE](LICENSE).
261
281
 
package/dist/cli/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { getPackageVersion } from '../version.js';
3
- import { runCreate } from '../commands/create.js';
3
+ import { runEntry } from '../commands/entry.js';
4
4
  const controller = new AbortController();
5
- const interrupt = () => controller.abort(new Error('Generation interrupted.'));
5
+ const interrupt = () => controller.abort(new Error('Command interrupted.'));
6
6
  process.once('SIGINT', interrupt);
7
7
  process.once('SIGTERM', interrupt);
8
8
  try {
9
- await runCreate(process.argv.slice(2), await getPackageVersion(), controller.signal);
9
+ await runEntry(process.argv.slice(2), await getPackageVersion(), controller.signal);
10
10
  }
11
11
  catch (error) {
12
12
  console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAC/E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAClC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,IAAI,CAAC;IACH,MAAM,SAAS,CACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,MAAM,iBAAiB,EAAE,EACzB,UAAU,CAAC,MAAM,CAClB,CAAC;AACJ,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CACX,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;QAAS,CAAC;IACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC5E,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAClC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,IAAI,CAAC;IACH,MAAM,QAAQ,CACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,MAAM,iBAAiB,EAAE,EACzB,UAAU,CAAC,MAAM,CAClB,CAAC;AACJ,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CACX,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACF,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;QAAS,CAAC;IACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type RawOptions } from '../generator/options.js';
2
- export declare const help = "create-convex-monorepo [project-name] [options]\n\nGenerate a pnpm + Turborepo workspace sharing one Convex backend.\n\n --apps <list> next,vite,tanstack-start,expo or web:next,admin:vite\n --example <name> messages (default) or none for blank apps\n --auth <provider> none (default) or clerk\n --package-manager <name> pnpm (v0.1)\n --install / --no-install Install generated dependencies\n --init-convex / --no-init-convex Set up Convex and link URLs (requires install)\n --git / --no-git Initialize a git repository\n --yes, -y Accept defaults, including installation and git\n --help, -h Show usage\n --version, -v Show version\n\nWithout a terminal, prompts are disabled. Installation and git default to off\nunless explicitly enabled or --yes is passed. Convex setup requires --init-convex\nwhen prompts are skipped; --yes does not opt into Convex account setup.\nNamed apps may repeat a framework.\n";
2
+ export declare const help = "create-convex-monorepo [project-name] [options]\n\nGenerate a pnpm + Turborepo workspace sharing one Convex backend.\n\nUse create <project-name> to explicitly create a project, including names such\nas add or doctor. Inside an existing workspace, running without arguments opens\nthe management menu. Commands: add app, add auth clerk, doctor, env sync,\nupgrade --check. No global or project installation is required.\n\n --apps <list> next,vite,tanstack-start,expo or web:next,admin:vite\n --example <name> messages (default) or none for blank apps\n --auth <provider> none (default) or clerk\n --package-manager <name> pnpm (v0.1)\n --install / --no-install Install generated dependencies\n --init-convex / --no-init-convex Set up Convex and link URLs (requires install)\n --git / --no-git Initialize a git repository\n --yes, -y Accept defaults, including installation and git\n --help, -h Show usage\n --version, -v Show version\n\nWithout a terminal, prompts are disabled. Installation and git default to off\nunless explicitly enabled or --yes is passed. Convex setup requires --init-convex\nwhen prompts are skipped; --yes does not opt into Convex account setup.\nNamed apps may repeat a framework.\n";
3
3
  export declare function parseCommand(args: string[]): {
4
4
  raw: RawOptions;
5
5
  help: boolean;
@@ -6,6 +6,11 @@ export const help = `create-convex-monorepo [project-name] [options]
6
6
 
7
7
  Generate a pnpm + Turborepo workspace sharing one Convex backend.
8
8
 
9
+ Use create <project-name> to explicitly create a project, including names such
10
+ as add or doctor. Inside an existing workspace, running without arguments opens
11
+ the management menu. Commands: add app, add auth clerk, doctor, env sync,
12
+ upgrade --check. No global or project installation is required.
13
+
9
14
  --apps <list> next,vite,tanstack-start,expo or web:next,admin:vite
10
15
  --example <name> messages (default) or none for blank apps
11
16
  --auth <provider> none (default) or clerk
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runEntry(args: string[], version: string, signal?: AbortSignal): Promise<void>;
@@ -0,0 +1,93 @@
1
+ import * as prompts from '@clack/prompts';
2
+ import { lstat } from 'node:fs/promises';
3
+ import { dirname, join, resolve } from 'node:path';
4
+ import { isMissing, loadWorkspace } from '../workspace/project.js';
5
+ import { help, parseCommand, runCreate } from './create.js';
6
+ import { runWorkspace, workspaceHelp } from './workspace.js';
7
+ const managementCommands = new Set(['add', 'doctor', 'env', 'upgrade']);
8
+ const actions = [
9
+ { value: 'app', label: 'Add an application', args: ['add', 'app'] },
10
+ {
11
+ value: 'auth',
12
+ label: 'Add Clerk authentication',
13
+ args: ['add', 'auth', 'clerk'],
14
+ },
15
+ { value: 'doctor', label: 'Check workspace setup', args: ['doctor'] },
16
+ { value: 'env', label: 'Sync frontend Convex URLs', args: ['env', 'sync'] },
17
+ {
18
+ value: 'upgrade',
19
+ label: 'Check for CLI updates',
20
+ args: ['upgrade', '--check'],
21
+ },
22
+ ];
23
+ const managementHelp = workspaceHelp.replace('convex-monorepo <command>', 'npx create-convex-monorepo@latest <command>');
24
+ /** Absence is optional; malformed or unsafe metadata must still fail. */
25
+ async function existingWorkspace() {
26
+ let directory = resolve(process.cwd());
27
+ while (true) {
28
+ try {
29
+ await lstat(join(directory, 'convex-monorepo.json'));
30
+ return loadWorkspace(directory);
31
+ }
32
+ catch (error) {
33
+ if (!isMissing(error))
34
+ throw error;
35
+ }
36
+ const parent = dirname(directory);
37
+ if (parent === directory)
38
+ return null;
39
+ directory = parent;
40
+ }
41
+ }
42
+ export async function runEntry(args, version, signal) {
43
+ if (args[0] === 'create') {
44
+ await runCreate(args.slice(1), version, signal);
45
+ return;
46
+ }
47
+ if (args[0] && managementCommands.has(args[0])) {
48
+ await runWorkspace(args, version, signal);
49
+ return;
50
+ }
51
+ if (args[0] === 'help') {
52
+ // Let the existing parser reject extra arguments and unknown flags.
53
+ await runWorkspace(args, version, signal);
54
+ console.log(help);
55
+ return;
56
+ }
57
+ const parsed = parseCommand(args);
58
+ if (parsed.help) {
59
+ console.log(`${help}\n${managementHelp}`);
60
+ return;
61
+ }
62
+ if (parsed.version) {
63
+ console.log(version);
64
+ return;
65
+ }
66
+ signal?.throwIfAborted();
67
+ if (parsed.raw.name === undefined) {
68
+ const workspace = await existingWorkspace();
69
+ if (workspace) {
70
+ if (args.length)
71
+ throw new Error('An existing Convex monorepo was found. Choose a workspace command, or use create <project-name> to generate another project. Run npx create-convex-monorepo@latest --help.');
72
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
73
+ console.log(`Existing workspace: ${workspace.config.name}\n\n${managementHelp}`);
74
+ return;
75
+ }
76
+ signal?.throwIfAborted();
77
+ const action = await prompts.select({
78
+ message: `Manage ${workspace.config.name}: what would you like to do?`,
79
+ options: actions.map(({ value, label }) => ({ value, label })),
80
+ });
81
+ if (prompts.isCancel(action))
82
+ throw new Error('Workspace command cancelled.');
83
+ signal?.throwIfAborted();
84
+ const selected = actions.find(({ value }) => value === action);
85
+ if (!selected)
86
+ throw new Error('Unknown workspace action.');
87
+ await runWorkspace([...selected.args], version, signal);
88
+ return;
89
+ }
90
+ }
91
+ await runCreate(args, version, signal);
92
+ }
93
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/commands/entry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { mkdir, readFile, writeFile, lstat } from 'node:fs/promises';
2
2
  import { dirname, isAbsolute, relative, resolve, sep } from 'node:path';
3
+ import { formatGeneratedFile } from './format.js';
3
4
  export function mergeManifests(base, patch) {
4
5
  const result = { ...base, ...patch };
5
6
  for (const field of [
@@ -63,7 +64,9 @@ export function createContext(root, options) {
63
64
  if (owned.has(target))
64
65
  throw new Error(`Template output collision: ${path}`);
65
66
  await mkdir(dirname(target), { recursive: true });
66
- await writeFile(target, contents, { flag: 'wx' });
67
+ await writeFile(target, await formatGeneratedFile(path, contents), {
68
+ flag: 'wx',
69
+ });
67
70
  owned.add(target);
68
71
  },
69
72
  async json(path, value) {
@@ -74,7 +77,7 @@ export function createContext(root, options) {
74
77
  if (!owned.has(target))
75
78
  throw new Error(`Cannot patch a package not generated by this context: ${path}`);
76
79
  const base = JSON.parse(await readFile(target, 'utf8'));
77
- await writeFile(target, `${JSON.stringify(mergeManifests(base, patch), null, 2)}\n`);
80
+ await writeFile(target, await formatGeneratedFile(path, `${JSON.stringify(mergeManifests(base, patch), null, 2)}\n`));
78
81
  },
79
82
  };
80
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const formattingOptions: {
2
+ singleQuote: true;
3
+ trailingComma: "all";
4
+ endOfLine: "lf";
5
+ };
6
+ /** Format only authored output, with no config/plugin discovery or subprocess. */
7
+ export declare function formatGeneratedFile(path: string, source: string): Promise<string>;
8
+ /** Accept formatting differences in older starters, but retain code/comment conflicts. */
9
+ export declare function equivalentGeneratedFile(path: string, left: string | null | undefined, right: string | null | undefined): Promise<boolean>;
@@ -0,0 +1,47 @@
1
+ import { extname } from 'node:path';
2
+ import { format } from 'prettier';
3
+ export const formattingOptions = {
4
+ singleQuote: true,
5
+ trailingComma: 'all',
6
+ endOfLine: 'lf',
7
+ };
8
+ const extensions = new Set([
9
+ '.ts',
10
+ '.tsx',
11
+ '.mts',
12
+ '.cts',
13
+ '.js',
14
+ '.jsx',
15
+ '.mjs',
16
+ '.cjs',
17
+ '.json',
18
+ '.css',
19
+ '.html',
20
+ '.md',
21
+ '.yaml',
22
+ '.yml',
23
+ ]);
24
+ /** Format only authored output, with no config/plugin discovery or subprocess. */
25
+ export async function formatGeneratedFile(path, source) {
26
+ if (path.split('/').includes('_generated') ||
27
+ path.endsWith('/routeTree.gen.ts'))
28
+ return source;
29
+ if (!extensions.has(extname(path)))
30
+ return source;
31
+ return format(source, { ...formattingOptions, filepath: path });
32
+ }
33
+ /** Accept formatting differences in older starters, but retain code/comment conflicts. */
34
+ export async function equivalentGeneratedFile(path, left, right) {
35
+ if (left == null || right == null)
36
+ return left === right;
37
+ if (left.replace(/\r\n/g, '\n') === right.replace(/\r\n/g, '\n'))
38
+ return true;
39
+ try {
40
+ return ((await formatGeneratedFile(path, left)) ===
41
+ (await formatGeneratedFile(path, right)));
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/generator/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAgB,MAAM,UAAU,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,IAAI;CACE,CAAC;AAEpB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,MAAc;IAEd,IACE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAElC,OAAO,MAAM,CAAC;IAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,IAA+B,EAC/B,KAAgC;IAEhC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,KAAK,KAAK,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,IAAI,CAAC;QACH,OAAO,CACL,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACzC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { getPackageVersion } from '../../version.js';
3
3
  import { versions as v } from '../versions.js';
4
+ import { formattingOptions } from '../../generator/format.js';
4
5
  export async function generateRoot(ctx) {
5
6
  const { options, scope } = ctx;
6
7
  await ctx.write('scripts/convex-setup.mjs', await readFile(new URL('../../../assets/setup/convex-setup.mjs', import.meta.url), 'utf8'));
@@ -12,6 +13,8 @@ export async function generateRoot(ctx) {
12
13
  build: 'turbo run build',
13
14
  typecheck: 'turbo run typecheck',
14
15
  lint: 'turbo run lint',
16
+ format: 'prettier --write .',
17
+ 'format:check': 'prettier --check .',
15
18
  };
16
19
  for (const app of options.apps)
17
20
  scripts[`dev:${app.name}`] = `pnpm --filter @${scope}/${app.name} dev`;
@@ -23,8 +26,10 @@ export async function generateRoot(ctx) {
23
26
  packageManager: `pnpm@${v.pnpm}`,
24
27
  engines: { node: '>=22.12.0' },
25
28
  scripts,
26
- devDependencies: { turbo: v.turbo },
29
+ devDependencies: { turbo: v.turbo, prettier: v.prettier },
27
30
  });
31
+ await ctx.json('.prettierrc.json', formattingOptions);
32
+ await ctx.write('.prettierignore', 'node_modules/\n**/_generated/\n**/routeTree.gen.ts\n**/.next/\n**/.expo/\n**/.output/\n**/dist/\n**/.turbo/\npnpm-lock.yaml\n.env*\n**/.env*\n');
28
33
  await ctx.write('pnpm-workspace.yaml', "packages:\n - 'apps/*'\n - 'packages/*'\n\nonlyBuiltDependencies:\n - esbuild\n - sharp\n - unrs-resolver\n");
29
34
  await ctx.json('turbo.json', {
30
35
  $schema: 'https://turborepo.com/schema.json',
@@ -152,6 +157,7 @@ ${options.apps.map((a) => `pnpm dev:${a.name}`).join('\n')}
152
157
  pnpm convex:dev
153
158
  pnpm typecheck
154
159
  pnpm lint
160
+ pnpm format:check
155
161
  pnpm build
156
162
  \`\`\`
157
163
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/root/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAqB;IACtD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,CAAC,KAAK,CACb,0BAA0B,EAC1B,MAAM,QAAQ,CACZ,IAAI,GAAG,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAClE,MAAM,CACP,CACF,CAAC;IACF,MAAM,OAAO,GAA2B;QACtC,GAAG,EAAE,2CAA2C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACzE,YAAY,EAAE,kBAAkB,KAAK,cAAc;QACnD,cAAc,EAAE,+BAA+B;QAC/C,aAAa,EAAE,2CAA2C;QAC1D,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,gBAAgB;KACvB,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;QAC5B,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,kBAAkB,KAAK,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;IACzE,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;QAChC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC9B,OAAO;QACP,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;KACpC,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,EACrB,kHAAkH,CACnH,CAAC;IACF,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;QAC3B,OAAO,EAAE,mCAAmC;QAC5C,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE;oBACd,UAAU;oBACV,SAAS;oBACT,eAAe;oBACf,QAAQ;oBACR,eAAe;iBAChB;aACF;YACD,KAAK,EAAE;gBACL,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,MAAM,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBACpC,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC;gBACjE,GAAG,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,eAAe,CAAC;gBACjD,cAAc,EAAE,CAAC,kBAAkB,CAAC;aACrC;YACD,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC5C,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACrD,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C;KACF,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CACb,YAAY,EACZ,0IAA0I,CAC3I,CAAC;IACF,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACrC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,iBAAiB,EAAE;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE;QACxD,IAAI,EAAE,IAAI,KAAK,oBAAoB;QACnC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE;KAC1C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE;QACrD,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC;YACtC,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI;YAClB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,IAAI;YACb,gCAAgC,EAAE,IAAI;SACvC;KACF,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE;QACpD,IAAI,EAAE,IAAI,KAAK,gBAAgB;QAC/B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;QAC9B,YAAY,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC,gBAAgB,EAAE;QACzD,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;KAC7C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CACb,iCAAiC,EACjC;;;;;;;CAOH,CACE,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;SAC1B,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,eAAe,CACjI;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,GAAG,CAAC,KAAK,CACb,WAAW,EACX,KAAK,OAAO,CAAC,IAAI;;EAEnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;2BAItB,CAAC,CAAC,IAAI;;;;;;;;;;;EAW/B,QAAQ;;EAGR,OAAO,CAAC,IAAI,KAAK,OAAO;QACtB,CAAC,CAAC;;;;;iBAKW,KAAK;;;;;;;EAOpB,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,qKAAqK,CAAC,CAAC,CAAC,6JAA6J;CACvW;QACG,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM;YAC1B,CAAC,CAAC,wLAAwL;YAC1L,CAAC,CAAC;CAER;;;;;EAKE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;wBAYlC,KAAK;iCACI,KAAK;;;qNAG+K,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,+FAA+F,CAAC,CAAC,CAAC,wGAAwG;;;;;;oDAM5Y,KAAK;;6XAEoU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI;CACpd,CACE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/root/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAqB;IACtD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,CAAC,KAAK,CACb,0BAA0B,EAC1B,MAAM,QAAQ,CACZ,IAAI,GAAG,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAClE,MAAM,CACP,CACF,CAAC;IACF,MAAM,OAAO,GAA2B;QACtC,GAAG,EAAE,2CAA2C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACzE,YAAY,EAAE,kBAAkB,KAAK,cAAc;QACnD,cAAc,EAAE,+BAA+B;QAC/C,aAAa,EAAE,2CAA2C;QAC1D,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,oBAAoB;QAC5B,cAAc,EAAE,oBAAoB;KACrC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;QAC5B,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,kBAAkB,KAAK,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;IACzE,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;QAChC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC9B,OAAO;QACP,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1D,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IACtD,MAAM,GAAG,CAAC,KAAK,CACb,iBAAiB,EACjB,gJAAgJ,CACjJ,CAAC;IACF,MAAM,GAAG,CAAC,KAAK,CACb,qBAAqB,EACrB,kHAAkH,CACnH,CAAC;IACF,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;QAC3B,OAAO,EAAE,mCAAmC;QAC5C,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE;oBACd,UAAU;oBACV,SAAS;oBACT,eAAe;oBACf,QAAQ;oBACR,eAAe;iBAChB;aACF;YACD,KAAK,EAAE;gBACL,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,MAAM,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBACpC,OAAO,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,CAAC;gBACjE,GAAG,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,eAAe,CAAC;gBACjD,cAAc,EAAE,CAAC,kBAAkB,CAAC;aACrC;YACD,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC5C,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACrD,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C;KACF,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CACb,YAAY,EACZ,0IAA0I,CAC3I,CAAC;IACF,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACrC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,iBAAiB,EAAE;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE;QACxD,IAAI,EAAE,IAAI,KAAK,oBAAoB;QACnC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE;KAC1C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE;QACrD,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC;YACtC,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI;YAClB,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,IAAI;YACb,gCAAgC,EAAE,IAAI;SACvC;KACF,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE;QACpD,IAAI,EAAE,IAAI,KAAK,gBAAgB;QAC/B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;QAC9B,YAAY,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC,gBAAgB,EAAE;QACzD,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;KAC7C,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,KAAK,CACb,iCAAiC,EACjC;;;;;;;CAOH,CACE,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;SAC1B,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,eAAe,CACjI;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,GAAG,CAAC,KAAK,CACb,WAAW,EACX,KAAK,OAAO,CAAC,IAAI;;EAEnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;2BAItB,CAAC,CAAC,IAAI;;;;;;;;;;;EAW/B,QAAQ;;EAGR,OAAO,CAAC,IAAI,KAAK,OAAO;QACtB,CAAC,CAAC;;;;;iBAKW,KAAK;;;;;;;EAOpB,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,qKAAqK,CAAC,CAAC,CAAC,6JAA6J;CACvW;QACG,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM;YAC1B,CAAC,CAAC,wLAAwL;YAC1L,CAAC,CAAC;CAER;;;;;EAKE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;wBAalC,KAAK;iCACI,KAAK;;;qNAG+K,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,+FAA+F,CAAC,CAAC,CAAC,wGAAwG;;;;;;oDAM5Y,KAAK;;6XAEoU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI;CACpd,CACE,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export declare const versions: {
2
+ readonly prettier: "3.8.3";
2
3
  readonly convex: "1.45.0";
3
4
  readonly react: "19.2.3";
4
5
  readonly typescript: "6.0.3";
@@ -1,4 +1,5 @@
1
1
  export const versions = {
2
+ prettier: '3.8.3',
2
3
  convex: '1.45.0',
3
4
  react: '19.2.3',
4
5
  typescript: '6.0.3',
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/templates/versions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;IAClB,aAAa,EAAE,UAAU;IACzB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,QAAQ;CAClB,CAAC"}
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/templates/versions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;IAClB,aAAa,EAAE,UAAU;IACzB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,QAAQ;CAClB,CAAC"}
@@ -3,11 +3,10 @@ import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { generateProject, normalizeOptions } from '../generator/index.js';
5
5
  import { readText } from './project.js';
6
+ import { equivalentGeneratedFile } from '../generator/format.js';
6
7
  import { readBackendEnvironment } from './env.js';
7
8
  import { deploymentUrl, linkEnvironment, publicVariable, } from '../../assets/setup/convex-setup.mjs';
8
9
  const json = (value) => `${JSON.stringify(value, null, 2)}\n`;
9
- const normalizeNewlines = (text) => text?.replace(/\r\n/g, '\n');
10
- const equivalent = (left, right) => normalizeNewlines(left) === normalizeNewlines(right);
11
10
  const retainNewlines = (text, original) => original?.includes('\r\n') ? text.replace(/\r?\n/g, '\r\n') : text;
12
11
  async function render(workspace, apps, example, auth) {
13
12
  const temporary = await mkdtemp(join(tmpdir(), 'ccm-add-'));
@@ -97,7 +96,8 @@ async function verifyMessages(workspace, plan, baseline) {
97
96
  for (const name of ['schema.ts', 'messages.ts', 'access.ts']) {
98
97
  const path = `packages/backend/convex/${name}`;
99
98
  const contents = await guardedRead(workspace, plan, path);
100
- if (contents === null || !equivalent(contents, baseline.get(path)))
99
+ if (contents === null ||
100
+ !(await equivalentGeneratedFile(path, contents, baseline.get(path))))
101
101
  throw new Error(`Incompatible messages backend: ${path} is missing or customized. Restore the generated messages contract, or add an app with --example none.`);
102
102
  }
103
103
  }
@@ -210,7 +210,7 @@ export async function planAddApp(workspace, options) {
210
210
  await verifyMessages(workspace, plan, generated);
211
211
  if (workspace.config.auth === 'clerk') {
212
212
  const path = 'packages/backend/convex/auth.config.ts';
213
- if (!equivalent(await guardedRead(workspace, plan, path), generated.get(path)))
213
+ if (!(await equivalentGeneratedFile(path, await guardedRead(workspace, plan, path), generated.get(path))))
214
214
  throw new Error(`Incompatible Clerk configuration in ${path}.`);
215
215
  }
216
216
  for (const [path, after] of generated) {
@@ -281,7 +281,7 @@ export async function planAddAuth(workspace, provider) {
281
281
  continue;
282
282
  const baseline = before.get(path) ?? null;
283
283
  const current = await readText(workspace.root, path);
284
- if (equivalent(current, target)) {
284
+ if (await equivalentGeneratedFile(path, current, target)) {
285
285
  plan.guards.push({ path, contents: current });
286
286
  continue;
287
287
  }
@@ -290,7 +290,7 @@ export async function planAddAuth(workspace, provider) {
290
290
  current !== null &&
291
291
  baseline !== null)
292
292
  next = mergePackage(current, baseline, target, path);
293
- else if (!equivalent(current, baseline))
293
+ else if (!(await equivalentGeneratedFile(path, current, baseline)))
294
294
  throw new Error(`Conflict in ${path}: file is customized or already exists. No files were changed.`);
295
295
  plan.changes.push({
296
296
  path,
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/workspace/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/workspace/add.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ An auth adapter implements `apply(context)`. It owns backend `access.ts`, option
20
20
 
21
21
  `context.write` and `context.json` create files once and reject unsafe paths and collisions. `context.mergePackage` can update only manifests created by that context. Dependency maps merge by key and reject conflicting versions; script patches replace matching script keys. Other top-level manifest fields replace their previous values. This is intentionally not a generic deep-merge engine.
22
22
 
23
+ `src/generator/format.ts` uses the pinned Prettier runtime API with explicit options before authored files are written. It never resolves user configuration or loads user plugins. Convex `_generated` assets, route-tree output, and unsupported extensions such as dotenv pass through unchanged. Generated workspaces receive matching format scripts, configuration, and ignore patterns. Formatting failure is a generation failure and uses the same staging cleanup.
24
+
23
25
  The package-manager contract lives in `src/package-manager/index.ts`. pnpm owns installation; subprocesses receive argument arrays and inherited terminal output. The root template owns Turborepo and workspace configuration. There is no Nx adapter or speculative migration engine.
24
26
 
25
27
  ## Shared Convex API
@@ -50,9 +52,9 @@ Blank apps do not include tests that assume an empty API forever. The generated-
50
52
 
51
53
  ## Workspace commands
52
54
 
53
- Both binaries ship in `create-convex-monorepo`: `create-convex-monorepo` creates a project, and `convex-monorepo` manages it afterward. `src/commands/workspace.ts` parses command-specific options and prompts. Application logic lives in `src/workspace` and is exported for programmatic use.
55
+ Both binaries ship in `create-convex-monorepo`. `src/commands/entry.ts` routes the create binary to creation or workspace commands, so the same npm package works through npx without a local or global installation. With no arguments, existing workspace metadata selects an interactive management menu or noninteractive help. Explicit `create <name>` resolves reserved-name ambiguity. The separate `convex-monorepo` binary remains a management-only entry point. `src/commands/workspace.ts` parses command-specific options and prompts. Application logic lives in `src/workspace` and is exported for programmatic use.
54
56
 
55
- `project.ts` walks upward to metadata, validates version 1, retains extension fields, and rejects unsafe file paths. `add.ts` renders temporary scaffolds with the existing app/auth adapters, then selects only the new app or authentication changes. Auth package updates merge only the fields changed by the adapter; source files must match the expected baseline before replacement. Per-app example overrides survive later auth additions.
57
+ `project.ts` walks upward to metadata, validates version 1, retains extension fields, and rejects unsafe file paths. `add.ts` renders temporary scaffolds with the existing app/auth adapters, then selects only the new app or authentication changes. Auth package updates merge only the fields changed by the adapter; source files must match the expected baseline before replacement. Comparison normalizes formatting with the same formatter to support older unformatted templates, preserving meaningful code and comment differences as conflicts. Apply-time snapshots still compare exact contents. Per-app example overrides survive later auth additions.
56
58
 
57
59
  `env.ts` shares the standalone setup script's URL validation and dotenv linking helpers. A declaration file types that plain JavaScript module for the compiled CLI; the JavaScript implementation is separately checked by TypeScript. Generated projects still receive the standalone script and need no CLI dependency for initial Convex setup.
58
60
 
@@ -104,3 +104,11 @@ The workspace-command implementation passed frozen installation, formatting, lin
104
104
  The packed package exposes both binaries. Its smoke test exercises `convex-monorepo` through the installed executable and pnpm dlx, adds an app and Clerk, and syncs one frontend URL. The live npm upgrade check returned the current stable release from the official registry. Doctor also passed from a nested application directory in an installed four-app workspace. A PTY run exercised interactive app, framework, and starter selection with `--dry-run`; the proposed directory was not created.
105
105
 
106
106
  Independent technical review covered mutation plans and CLI integration. Follow-up checks confirmed fixes for workspace-membership diagnostics and semantic-version build metadata. Integration checks also caught development-port collisions, which now have regression tests. Filesystem conflict detection remains optimistic for unrelated external writers; the lock coordinates CLI invocations. No real Clerk login, stored-data migration, or native Xcode/Gradle build was performed. Hosted CI includes the two command-based build scenarios and Windows unit/package checks.
107
+
108
+ ## Generated formatting and npx management
109
+
110
+ On 2026-09-11, the formatting and launcher follow-up passed lint, typecheck, formatting, all 282 tests, build, pack, and installed-tarball checks. The formatter matrix covers every framework with both auth and content choices, verifies unchanged official Convex generated assets, and rejects project-config execution. A captured v0.3.0 fixture verifies that unformatted apps still accept app additions and Clerk migration without rewriting existing schema or message functions.
111
+
112
+ Both command-driven all-four-framework scenarios passed generated formatting checks, doctor with no issues, typecheck, lint, web builds, and Expo iOS/Android Metro exports. One adds Clerk after creating the messages apps; the other adds blank apps after Clerk setup. These checks now exercise the create binary for workspace commands. The packed CLI also runs management through npx from a nested app directory without installing dependencies in the generated workspace.
113
+
114
+ A manual PTY check displayed all five management actions from an app's src directory and cancelled without applying changes. A fresh read-only review found no material issues and independently passed 101 focused tests. Native device execution and real Clerk login were not repeated for this change.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-convex-monorepo",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Generate typed Convex monorepos with composable frontend and authentication adapters.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -30,7 +30,8 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@clack/prompts": "1.8.0",
33
- "cross-spawn": "7.0.6"
33
+ "cross-spawn": "7.0.6",
34
+ "prettier": "3.8.3"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/cross-spawn": "6.0.6",
@@ -38,7 +39,6 @@
38
39
  "convex": "1.45.0",
39
40
  "convex-test": "0.0.54",
40
41
  "eslint": "10.10.0",
41
- "prettier": "3.8.3",
42
42
  "tsx": "4.21.0",
43
43
  "typescript": "6.0.3",
44
44
  "typescript-eslint": "8.70.0",