@fougere/cli 0.13.1-alpha.0 → 0.14.1-alpha.0

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 (38) hide show
  1. package/dist/.fougere/scan.generated.js +1 -1
  2. package/dist/.fougere/scan.generated.js.map +1 -1
  3. package/dist/app/commands/MigrateCommand.d.ts +2 -2
  4. package/dist/app/commands/MigrateCommand.d.ts.map +1 -1
  5. package/dist/app/commands/MigrateCommand.js +15 -13
  6. package/dist/app/commands/MigrateCommand.js.map +1 -1
  7. package/dist/app/commands/NewCommand.d.ts +4 -12
  8. package/dist/app/commands/NewCommand.d.ts.map +1 -1
  9. package/dist/app/commands/NewCommand.js +51 -85
  10. package/dist/app/commands/NewCommand.js.map +1 -1
  11. package/dist/fronds/analysis/entities/Migrate.d.ts +1 -1
  12. package/dist/fronds/analysis/entities/Migrate.d.ts.map +1 -1
  13. package/dist/fronds/analysis/entities/Migrate.js +1 -1
  14. package/dist/fronds/analysis/entities/Migrate.js.map +1 -1
  15. package/dist/fronds/analysis/handlers/MigrateHandler.d.ts +14 -9
  16. package/dist/fronds/analysis/handlers/MigrateHandler.d.ts.map +1 -1
  17. package/dist/fronds/analysis/handlers/MigrateHandler.js +83 -39
  18. package/dist/fronds/analysis/handlers/MigrateHandler.js.map +1 -1
  19. package/dist/fronds/analysis/services/ProjectScan.d.ts +2 -2
  20. package/dist/fronds/analysis/services/ProjectScan.js +2 -2
  21. package/dist/fronds/scaffold/entities/New.d.ts +2 -5
  22. package/dist/fronds/scaffold/entities/New.d.ts.map +1 -1
  23. package/dist/fronds/scaffold/entities/New.js +5 -8
  24. package/dist/fronds/scaffold/entities/New.js.map +1 -1
  25. package/dist/fronds/scaffold/services/ProjectWriter.d.ts +16 -0
  26. package/dist/fronds/scaffold/services/ProjectWriter.d.ts.map +1 -1
  27. package/dist/fronds/scaffold/services/ProjectWriter.js +84 -12
  28. package/dist/fronds/scaffold/services/ProjectWriter.js.map +1 -1
  29. package/dist/src/composer/Composer.d.ts +61 -0
  30. package/dist/src/composer/Composer.d.ts.map +1 -0
  31. package/dist/src/composer/Composer.js +246 -0
  32. package/dist/src/composer/Composer.js.map +1 -0
  33. package/dist/src/composer/Plan.d.ts +36 -0
  34. package/dist/src/composer/Plan.d.ts.map +1 -0
  35. package/dist/src/composer/Plan.js +70 -0
  36. package/dist/src/composer/Plan.js.map +1 -0
  37. package/package.json +16 -15
  38. package/templates/workspace/package.json +5 -3
@@ -79,7 +79,7 @@ export const scan = {
79
79
  ["execute", { description: "Generate a k6 scenario covering every operation the default facade answers.", cardinality: "one", signature: { "name": "execute", "params": [{ "name": "input", "type": { "raw": "{ root?: string; facade?: string; out?: string }", "name": "{ root?: string | undefined; facade?: string | undefined; out?: string | undefined; }" }, "optional": false }], "returnType": { "raw": "Promise<LoadScenario>", "name": "LoadScenario", "promise": true }, "description": "Generate a k6 scenario covering every operation the default facade answers." } }]
80
80
  ]) },
81
81
  { name: "migrateHandler", address: "migrate", ctor: _16, deps: ["ProjectScan"], filePath: "/Volumes/Personnel/fougere-public/packages/cli/fronds/analysis/handlers/MigrateHandler.ts", exposed: true, operations: new Map([
82
- ["execute", { input: _7, description: "Realise the frozen steps this database has not caught up with.", cardinality: "one", signature: { "name": "execute", "params": [{ "name": "input", "type": { "raw": "Omit<Migrate, 'json'>", "name": "Omit", "generics": [{ "raw": "Migrate", "name": "Migrate" }, { "raw": "\"json\"", "name": "string" }] }, "optional": false }], "returnType": { "raw": "Promise<MigrationPlan>", "name": "MigrationPlan", "promise": true }, "description": "Realise the frozen steps this database has not caught up with." } }]
82
+ ["execute", { input: _7, description: "Plan the migration, and run it when `apply` says so.", cardinality: "one", signature: { "name": "execute", "params": [{ "name": "input", "type": { "raw": "Omit<Migrate, 'json'>", "name": "Omit", "generics": [{ "raw": "Migrate", "name": "Migrate" }, { "raw": "\"json\"", "name": "string" }] }, "optional": false }], "returnType": { "raw": "Promise<MigrationPlan>", "name": "MigrationPlan", "promise": true }, "description": "Plan the migration, and run it when `apply` says so." } }]
83
83
  ]) },
84
84
  ],
85
85
  presenters: [],
@@ -1 +1 @@
1
- {"version":3,"file":"scan.generated.js","sourceRoot":"","sources":["../../.fougere/scan.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.generated.js","sourceRoot":"","sources":["../../.fougere/scan.generated.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import type { App } from '@fougere/core';
2
2
  import type { ui as createUi } from '../../src/ui.js';
3
3
  type Ui = ReturnType<typeof createUi>;
4
4
  /**
5
- * Catching a database up with the frozen chain.
5
+ * Bringing a database up to what the entities declare.
6
6
  *
7
- * Prints by default and moves nothing: what this runs drops and renames columns, so the
7
+ * Prints by default and moves nothing: what this runs renames and drops columns, so the
8
8
  * plan is read before it is agreed to. `--apply` is that agreement.
9
9
  */
10
10
  export default class MigrateCommand {
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../../app/commands/MigrateCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKtD,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,EAAE;IAAxC,YAAoB,GAAG,EAAE,GAAG,EAAU,EAAE,EAAE,EAAE,EAAI;IAE1C,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAyCrC;CACF"}
1
+ {"version":3,"file":"MigrateCommand.d.ts","sourceRoot":"","sources":["../../../app/commands/MigrateCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKtD,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,EAAE;IAAxC,YAAoB,GAAG,EAAE,GAAG,EAAU,EAAE,EAAE,EAAE,EAAI;IAE1C,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAsCrC;CACF"}
@@ -2,9 +2,9 @@ import { createAppRunner } from '@fougere/core';
2
2
  import pc from 'picocolors';
3
3
  import { machineWanted, printMachine } from '../../src/machine.js';
4
4
  /**
5
- * Catching a database up with the frozen chain.
5
+ * Bringing a database up to what the entities declare.
6
6
  *
7
- * Prints by default and moves nothing: what this runs drops and renames columns, so the
7
+ * Prints by default and moves nothing: what this runs renames and drops columns, so the
8
8
  * plan is read before it is agreed to. `--apply` is that agreement.
9
9
  */
10
10
  export default class MigrateCommand {
@@ -18,30 +18,32 @@ export default class MigrateCommand {
18
18
  const result = (await createAppRunner(this.app)({ entity: 'migrate', op: 'execute' }, { params: {}, query: {}, input: raw, state: {} }));
19
19
  if (machineWanted(raw))
20
20
  return printMachine(result);
21
- if (result.chain.length === 0) {
22
- this.ui.warn('No frozen step to apply. `fougere freeze <version>` records one.');
23
- return;
24
- }
25
21
  if (result.refusals.length > 0) {
26
- this.ui.error(`This chain cannot be realised as it stands (${result.chain.join(' → ')}):`);
22
+ const chain = result.chain.length > 0 ? ` (${result.chain.join(' → ')})` : '';
23
+ this.ui.error(`This migration cannot be realised as it stands${chain}:`);
27
24
  for (const one of result.refusals)
28
25
  this.ui.step(`${pc.bold(`${one.entity}.${one.field}`)} — ${one.reason}`);
29
26
  return;
30
27
  }
31
- if (result.changes.length === 0) {
32
- this.ui.success(`Up to date — ${result.chain.join(' → ')} already realised.`);
33
- return;
34
- }
35
28
  for (const change of result.changes) {
36
29
  this.ui.step(change.kind === 'renameColumn'
37
30
  ? `${change.table}: ${pc.bold(change.from)} → ${pc.bold(change.to)}`
38
31
  : `${change.table}: drop ${pc.bold(change.column)}`);
39
32
  }
33
+ for (const line of result.added)
34
+ this.ui.step(`create ${line.replace(/ — no (table|column)$/, '')}`);
35
+ for (const warning of result.warnings)
36
+ this.ui.warn(warning);
37
+ const planned = result.changes.length + result.added.length;
38
+ if (planned === 0) {
39
+ this.ui.success('Up to date — the database holds what the entities declare.');
40
+ return;
41
+ }
40
42
  if (result.ran.length === 0) {
41
- this.ui.info(`${result.changes.length} statement(s) — run again with ${pc.bold('--apply')} to make it so.`);
43
+ this.ui.info(`${planned} change(s) — run again with ${pc.bold('--apply')} to make it so.`);
42
44
  return;
43
45
  }
44
- this.ui.success(`${result.ran.length} statement(s) run.`);
46
+ this.ui.success(`${planned} change(s) applied.`);
45
47
  }
46
48
  }
47
49
  //# sourceMappingURL=MigrateCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../../app/commands/MigrateCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAInE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACb,GAAG;IAAe,EAAE;IAAxC,YAAoB,GAAQ,EAAU,EAAM;mBAAxB,GAAG;kBAAe,EAAE;IAAO,CAAC;IAEhD,KAAK,CAAC,GAAG,CAAC,GAA4B;QACpC,MAAM,MAAM,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7C,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EACpC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CACjD,CAAkB,CAAC;QAEpB,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAEjF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,+CAA+C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAE5G,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAE9E,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,IAAI,CACV,MAAM,CAAC,IAAI,KAAK,cAAc;gBAC5B,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBACpE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,kCAAkC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAE5G,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"MigrateCommand.js","sourceRoot":"","sources":["../../../app/commands/MigrateCommand.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,15 @@ import type { ui as createUi } from '../../src/ui.js';
2
2
  import type { App } from '@fougere/core';
3
3
  type Ui = ReturnType<typeof createUi>;
4
4
  /**
5
- * The guided composer: a workspace, then its fronds (domains), then the apps
6
- * that consume them — in that dependency order. ProjectWriter is a plain,
7
- * dependency-free service, so the presentation command drives it directly.
5
+ * A plan, then one write. The flags state it — the only form a script, a CI job or an agent can
6
+ * drive — and the composer builds it when they state nothing; either way nothing touches the disk
7
+ * before the plan holds.
8
8
  */
9
9
  export default class NewCommand {
10
10
  private app;
11
11
  private ui;
12
12
  constructor(app: App, ui: Ui);
13
- run(raw: Record<string, unknown>): Promise<void>;
14
- /**
15
- * One phase, stated rather than prompted — `blog,api:catalog` is two pieces, the
16
- * second renamed. The template name is the default name: a piece you don't rename
17
- * is called what it is.
18
- */
19
- private state;
20
- /** One phase — loop "template → name" until the user is done. Returns the count added. */
21
- private compose;
13
+ run(raw: Record<string, unknown>): Promise<undefined>;
22
14
  }
23
15
  export {};
24
16
  //# sourceMappingURL=NewCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../app/commands/NewCommand.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAStC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACjB,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,EAAE;IAAxC,YAAoB,GAAG,EAAE,GAAG,EAAU,EAAE,EAAE,EAAE,EAAI;IAE1C,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAyCrC;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAiBb,0FAA0F;YAC5E,OAAO;CA0BtB"}
1
+ {"version":3,"file":"NewCommand.d.ts","sourceRoot":"","sources":["../../../app/commands/NewCommand.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAQtC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACjB,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,EAAE;IAAxC,YAAoB,GAAG,EAAE,GAAG,EAAU,EAAE,EAAE,EAAE,EAAI;IAE1C,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAgDrC;CACF"}
@@ -1,16 +1,18 @@
1
+ import { spawnSync } from 'node:child_process';
1
2
  import { existsSync } from 'node:fs';
2
3
  import { join } from 'node:path';
3
4
  import ProjectWriter from '../../fronds/scaffold/services/ProjectWriter.js';
5
+ import { Composer } from '../../src/composer/Composer.js';
6
+ import { commandOf, planOf, refusalsOf } from '../../src/composer/Plan.js';
4
7
  /**
5
- * The same line either way, which is the point: `--local` links this checkout, the
6
- * default resolves `@fougere/*` from npm, and neither needs a caveat since the alpha
7
- * is published. It used to carry one, and a stale caveat is worse than none.
8
+ * The hosts the composer offers: the ones run end to end from a fresh workspace. Every other host
9
+ * the CLI knows stays reachable by `--app`.
8
10
  */
9
- const INSTALL = 'pnpm install';
11
+ const OFFERED = ['nuxt'];
10
12
  /**
11
- * The guided composer: a workspace, then its fronds (domains), then the apps
12
- * that consume them — in that dependency order. ProjectWriter is a plain,
13
- * dependency-free service, so the presentation command drives it directly.
13
+ * A plan, then one write. The flags state it — the only form a script, a CI job or an agent can
14
+ * drive — and the composer builds it when they state nothing; either way nothing touches the disk
15
+ * before the plan holds.
14
16
  */
15
17
  export default class NewCommand {
16
18
  app;
@@ -20,89 +22,53 @@ export default class NewCommand {
20
22
  this.ui = ui;
21
23
  }
22
24
  async run(raw) {
23
- const pw = new ProjectWriter();
24
- let name = raw.name;
25
- if (!name)
26
- name = (await this.ui.text({ message: 'Workspace', placeholder: 'shop' }));
27
- const dir = join(process.cwd(), name);
28
- if (existsSync(dir) && !raw.force) {
29
- const ok = await this.ui.confirm({ message: `${name}/ existe déjà. Écraser ?` });
30
- if (!ok) {
31
- this.ui.cancel();
32
- return;
25
+ const writer = new ProjectWriter();
26
+ const cwd = process.cwd();
27
+ const catalog = { fronds: writer.listTemplates('fronds'), apps: writer.listTemplates('apps') };
28
+ const refusals = (plan, replace) => refusalsOf(plan, catalog, { cwd, replace });
29
+ const exists = (name) => existsSync(join(cwd, name));
30
+ const terminal = Boolean(process.stdin.isTTY);
31
+ const stated = planOf({ name: raw.name, frond: raw.frond, app: raw.app, bare: Boolean(raw.bare) });
32
+ let plan = stated;
33
+ let replace = Boolean(raw.force);
34
+ if (!plan) {
35
+ if (!terminal) {
36
+ throw new Error('No terminal to ask in. State the project: fougere new shop --frond blog --app nuxt, or --bare for the empty shell.');
33
37
  }
38
+ const offered = { ...catalog, apps: catalog.apps.filter((app) => OFFERED.includes(app)) };
39
+ const composed = await new Composer({ name: raw.name ?? '', catalog: offered, exists, refusals }).ask();
40
+ if (!composed)
41
+ return;
42
+ plan = composed.plan;
43
+ replace ||= composed.overwrite;
34
44
  }
35
- pw.createWorkspace(dir, name);
36
- if (raw.bare) {
37
- if (raw.local)
38
- pw.linkLocal(dir);
39
- else
40
- pw.pinVersions(dir);
41
- this.ui.note([`cd ${name}`, `fougere new # compose it (guided)`].join('\n'), `${name} — empty workspace`);
42
- this.ui.outro('Ready.');
43
- return;
45
+ else if (plan.name && exists(plan.name) && !replace && terminal) {
46
+ replace = await this.ui.confirm({ message: `${plan.name}/ already exists. Replace it?`, initialValue: false });
47
+ if (!replace)
48
+ return this.ui.cancel('Nothing was written.');
44
49
  }
45
- // Stated composition wins over the prompts: it is the only form a script, a CI
46
- // job or an agent can drive — the guided flow needs a TTY and hangs without one.
47
- const stated = raw.frond || raw.app;
48
- const fronds = stated
49
- ? this.state(dir, pw, 'fronds', raw.frond)
50
- : await this.compose(dir, pw, 'fronds', 'Fronds — your domains', pw.listTemplates('fronds'));
51
- const apps = stated
52
- ? this.state(dir, pw, 'apps', raw.app)
53
- : await this.compose(dir, pw, 'apps', 'Apps — what consumes them', pw.listTemplates('apps'));
54
- // Every app depends on every frond — stated here, where both names are known.
55
- pw.linkFronds(dir);
56
- if (raw.local)
57
- pw.linkLocal(dir);
58
- else
59
- pw.pinVersions(dir);
60
- this.ui.note([`cd ${name}`, INSTALL, `pnpm dev`].join('\n'), `${name} — ${fronds} frond(s), ${apps} app(s)`);
61
- this.ui.outro('Ready.');
62
- }
63
- /**
64
- * One phase, stated rather than prompted — `blog,api:catalog` is two pieces, the
65
- * second renamed. The template name is the default name: a piece you don't rename
66
- * is called what it is.
67
- */
68
- state(dir, pw, kind, spec) {
69
- const available = pw.listTemplates(kind);
70
- let count = 0;
71
- for (const piece of spec.split(',').map((s) => s.trim()).filter(Boolean)) {
72
- const [template, itemName = template] = piece.split(':');
73
- if (!available.includes(template)) {
74
- throw new Error(`Unknown ${kind} template '${template}' — available: ${available.join(', ') || '(none)'}`);
75
- }
76
- if (kind === 'fronds')
77
- pw.addFrond(dir, template, itemName);
78
- else
79
- pw.addApp(dir, template, itemName);
80
- this.ui.info(`${kind}/${itemName}`);
81
- count++;
50
+ const refused = refusals(plan, replace);
51
+ if (refused.length)
52
+ throw new Error(refused.join('\n'));
53
+ const dir = join(cwd, plan.name);
54
+ const spinner = this.ui.spinner(`Writing ${plan.name}/`);
55
+ try {
56
+ writer.write(plan, dir, { local: Boolean(raw.local), replace });
82
57
  }
83
- return count;
84
- }
85
- /** One phase — loop "template → name" until the user is done. Returns the count added. */
86
- async compose(dir, pw, kind, header, templates) {
87
- this.ui.step(header);
88
- let count = 0;
89
- for (;;) {
90
- const doneLabel = count === 0 ? (kind === 'fronds' ? 'passer' : 'aucune') : 'terminé';
91
- const template = (await this.ui.select({
92
- message: count === 0 ? 'Template' : 'Encore un ?',
93
- options: [...templates.map((v) => ({ value: v, label: v })), { value: '__done__', label: doneLabel }],
94
- }));
95
- if (template === '__done__')
96
- break;
97
- const itemName = (await this.ui.text({ message: 'Nom' }));
98
- if (kind === 'fronds')
99
- pw.addFrond(dir, template, itemName);
100
- else
101
- pw.addApp(dir, template, itemName);
102
- this.ui.info(`${kind}/${itemName}`);
103
- count++;
58
+ catch (error) {
59
+ spinner.stop('Nothing was written.');
60
+ throw error;
104
61
  }
105
- return count;
62
+ spinner.stop(`${plan.name}/ written`);
63
+ const guided = !stated;
64
+ const installed = guided && await this.ui.confirm({ message: 'Install the dependencies now? (pnpm install)', initialValue: true })
65
+ && spawnSync('pnpm', ['install'], { cwd: dir, stdio: 'inherit' }).status === 0;
66
+ const started = plan.apps.length > 1 ? plan.apps.map(({ name }) => `pnpm dev:${name}`) : plan.apps.map(() => 'pnpm dev');
67
+ const next = [`cd ${plan.name}`, ...(installed ? [] : ['pnpm install']), 'pnpm migrate', ...started];
68
+ this.ui.note(next.join('\n'), 'Next');
69
+ if (guided)
70
+ this.ui.info(`The same project, with no prompt:\n${commandOf(plan)}`);
71
+ this.ui.outro('Ready.');
106
72
  }
107
73
  }
108
74
  //# sourceMappingURL=NewCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewCommand.js","sourceRoot":"","sources":["../../../app/commands/NewCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NewCommand.js","sourceRoot":"","sources":["../../../app/commands/NewCommand.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ declare const Migrate_base: import("@fougere/schema").SchemaConstructor<{
3
3
  root: import("@fougere/schema").Field<string | null>;
4
4
  json: import("@fougere/schema").Field<boolean>;
5
5
  }>;
6
- /** `fougere migrate` — realise the frozen steps the database has not caught up with. */
6
+ /** `fougere migrate` — bring the database up to what the entities declare. */
7
7
  export default class Migrate extends Migrate_base {
8
8
  }
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Migrate.d.ts","sourceRoot":"","sources":["../../../../fronds/analysis/entities/Migrate.ts"],"names":[],"mappings":";;;;;AAEA,wFAAwF;AACxF,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAInC;CAAG"}
1
+ {"version":3,"file":"Migrate.d.ts","sourceRoot":"","sources":["../../../../fronds/analysis/entities/Migrate.ts"],"names":[],"mappings":";;;;;AAEA,8EAA8E;AAC9E,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAInC;CAAG"}
@@ -1,5 +1,5 @@
1
1
  import { entity, bool, optional, text } from "@fougere/schema";
2
- /** `fougere migrate` — realise the frozen steps the database has not caught up with. */
2
+ /** `fougere migrate` — bring the database up to what the entities declare. */
3
3
  export default class Migrate extends entity({
4
4
  apply: bool({ default: false, description: "Run it. Without this the plan is printed and nothing moves" }),
5
5
  root: optional(text({ description: "Project to read. Default: the current directory" })),
@@ -1 +1 @@
1
- {"version":3,"file":"Migrate.js","sourceRoot":"","sources":["../../../../fronds/analysis/entities/Migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE/D,wFAAwF;AACxF,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM,CAAC;IAC1C,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC;IAC1G,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAAC;IACxF,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;CACrG,CAAC;CAAG"}
1
+ {"version":3,"file":"Migrate.js","sourceRoot":"","sources":["../../../../fronds/analysis/entities/Migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE/D,8EAA8E;AAC9E,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM,CAAC;IAC1C,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAAC;IAC1G,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAAC;IACxF,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;CACrG,CAAC;CAAG"}
@@ -4,28 +4,33 @@ import type Migrate from '../entities/Migrate.js';
4
4
  export interface MigrationPlan {
5
5
  /** Versions whose step was read, oldest first. */
6
6
  chain: string[];
7
+ /** What touches live data — renames and drops, from the frozen chain and from `previous:`. */
7
8
  changes: StepChange[];
9
+ /** What the additive pass creates — a table, a column. */
10
+ added: string[];
8
11
  refusals: Plan['refusals'];
12
+ /** What the plan cannot decide and a reader should — an undeclared rename, a drift. */
13
+ warnings: string[];
9
14
  /** The statements actually run — empty unless `apply` was asked for. */
10
15
  ran: string[];
11
16
  }
12
17
  /**
13
- * Catching the database up with the frozen chain.
18
+ * Bringing the database up to what the entities declare — the one place a schema is written.
14
19
  *
15
- * Every step is replayed in order and what has already happened is SKIPPED, read off the
16
- * columns themselves rather than a ledger of applied migrations. That is what makes the
17
- * chain safe to replay whole: nothing here has to know which version the database sits
18
- * at, and a column renamed by hand is seen rather than contradicted.
20
+ * The app is booted as its host would boot it, with the schema check and the seeds left out:
21
+ * the check would refuse the very database this is here to bring up, and a migration plants no
22
+ * rows. Booted rather than scanned, because a frond an extension brings — auth's sessions, a
23
+ * workflow's journal — has tables too, and the scan alone never sees it.
19
24
  *
20
- * The additive pass is not repeated here — a boot already creates missing tables and
21
- * columns. What this adds is the half that touches live data, and only what a human
22
- * declared at `fougere freeze`.
25
+ * What touches live data runs FIRST: a rename moves a column before the additive pass would
26
+ * otherwise add its new name empty beside it. Every change is skipped when the columns already
27
+ * say it happened, so the whole thing replays safely.
23
28
  */
24
29
  export default class MigrateHandler {
25
30
  private projectScan;
26
31
  constructor(projectScan: ProjectScan);
27
32
  /**
28
- * Realise the frozen steps this database has not caught up with.
33
+ * Plan the migration, and run it when `apply` says so.
29
34
  *
30
35
  * `json` is the presentation's, so it is not part of what this operation receives.
31
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateHandler.d.ts","sourceRoot":"","sources":["../../../../fronds/analysis/handlers/MigrateHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,wEAAwE;IACxE,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,OAAO,CAAC,WAAW;IAA/B,YAAoB,WAAW,EAAE,WAAW,EAAI;IAEhD;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAmDlE;CACF"}
1
+ {"version":3,"file":"MigrateHandler.d.ts","sourceRoot":"","sources":["../../../../fronds/analysis/handlers/MigrateHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8FAA8F;IAC9F,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,OAAO,CAAC,WAAW;IAA/B,YAAoB,WAAW,EAAE,WAAW,EAAI;IAEhD;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CA0ElE;CACF"}