supabee 0.2.0 → 0.2.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.
@@ -192,7 +192,7 @@ async function writeStatements(config, statements) {
192
192
  return { path: item.path, startLine, endLine };
193
193
  });
194
194
  await fs.promises.writeFile(config.indexPath, JSON.stringify(indexData, null, 2), 'utf8');
195
- console.log(ok(`Wrote ${indexData.length} index entries: ${config.indexPath}`));
195
+ console.log(info(`Index entries: ${indexData.length} (${config.indexPath})`));
196
196
  }
197
197
  async function reconstructSql(config) {
198
198
  let reconstructed = '';
@@ -233,15 +233,33 @@ async function reconstructSql(config) {
233
233
  async function validateReconstruction(config) {
234
234
  const originalContent = await fs.promises.readFile(config.inputFile, 'utf8');
235
235
  const reconstructedContent = await fs.promises.readFile(config.reconstructedFile, 'utf8');
236
- const originalMd5 = crypto.createHash('md5').update(originalContent).digest('hex');
237
- const reconstructedMd5 = crypto.createHash('md5').update(reconstructedContent).digest('hex');
236
+ const normalizeSql = (content) => `${content.replace(/\r\n/g, '\n').trimEnd()}\n`;
237
+ const originalNormalized = normalizeSql(originalContent);
238
+ const reconstructedNormalized = normalizeSql(reconstructedContent);
239
+ const originalMd5 = crypto.createHash('md5').update(originalNormalized).digest('hex');
240
+ const reconstructedMd5 = crypto.createHash('md5').update(reconstructedNormalized).digest('hex');
238
241
  if (originalMd5 === reconstructedMd5) {
239
- console.log(ok('Validation successful: files match exactly.'));
242
+ console.log(ok('Validation successful: schema matches after normalizing EOF whitespace.'));
240
243
  return true;
241
244
  }
245
+ const originalLines = originalNormalized.split('\n');
246
+ const reconstructedLines = reconstructedNormalized.split('\n');
247
+ const maxLineCount = Math.max(originalLines.length, reconstructedLines.length);
248
+ let firstDiffLine = -1;
249
+ for (let i = 0; i < maxLineCount; i += 1) {
250
+ if ((originalLines[i] ?? '') !== (reconstructedLines[i] ?? '')) {
251
+ firstDiffLine = i + 1;
252
+ break;
253
+ }
254
+ }
242
255
  console.log(errText('Validation failed: files do not match.'));
243
- console.log(info(`Original MD5: ${originalMd5}`));
244
- console.log(info(`Reconstructed MD5: ${reconstructedMd5}`));
256
+ if (firstDiffLine !== -1) {
257
+ console.log(info(`First difference at line ${firstDiffLine}.`));
258
+ console.log(info(`Original: ${originalLines[firstDiffLine - 1] ?? '(EOF)'}`));
259
+ console.log(info(`Reconstructed: ${reconstructedLines[firstDiffLine - 1] ?? '(EOF)'}`));
260
+ }
261
+ console.log(info(`Original lines: ${originalLines.length}`));
262
+ console.log(info(`Reconstructed lines: ${reconstructedLines.length}`));
245
263
  return false;
246
264
  }
247
265
  export async function runSchemaCommand(args) {
@@ -249,7 +267,7 @@ export async function runSchemaCommand(args) {
249
267
  commandName: 'schema',
250
268
  commandDisplayName: 'Schema',
251
269
  detailNote: (step) => ({
252
- split: ' Splitting schemas into files...',
270
+ split: ' Splitting schema into files...',
253
271
  reconstruct: ' Reconstructing schema SQL from split files...',
254
272
  validate: ' Validating reconstructed schema against original...',
255
273
  })[step],
@@ -283,9 +301,14 @@ export async function runSchemaCommand(args) {
283
301
  },
284
302
  actions: {
285
303
  split: async ({ config, options }) => {
286
- await prepareSplitOutputDir(config.outputDir, options.backup, 'Schema', { keepFiles: config.keepFiles });
304
+ const shouldBackup = options.backup ?? config.backupByDefault;
305
+ await prepareSplitOutputDir(config.outputDir, shouldBackup, 'Schema', { keepFiles: config.keepFiles });
306
+ console.log(info(`Reading schema file: ${config.inputFile}`));
287
307
  const sqlContent = await fs.promises.readFile(config.inputFile, 'utf8');
308
+ console.log(ok(`Loaded schema file: ${(sqlContent.length / 1024 / 1024).toFixed(2)}MB`));
288
309
  const statements = extractStatements(sqlContent);
310
+ const statementCount = Object.values(statements).reduce((count, items) => count + items.length, 0);
311
+ console.log(info(`Processing ${statementCount} statements...`));
289
312
  await writeStatements(config, statements);
290
313
  console.log(ok(`Schema split completed. Output: ${config.outputDir}`));
291
314
  },
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type SyncTarget = 'schema' | 'data';
2
+ export type SyncCommandOptions = {
3
+ input?: string;
4
+ output?: string;
5
+ backup?: boolean;
6
+ };
7
+ export declare function runSyncCommand(target: SyncTarget, options?: SyncCommandOptions): Promise<void>;
@@ -0,0 +1,39 @@
1
+ import { resolveCommandConfig } from '../lib/config.js';
2
+ import { info, ok, sectionWithNote, title } from '../lib/ui.js';
3
+ import { runSchemaCommand } from './schema.js';
4
+ import { runDataCommand } from './data.js';
5
+ import { runCommandToFile } from '../lib/subprocess.js';
6
+ function buildWorkflowArgs(inputFile, options) {
7
+ const args = ['--input', inputFile];
8
+ if (options.output)
9
+ args.push('--output', options.output);
10
+ if (options.backup === false) {
11
+ args.push('--no-backup');
12
+ }
13
+ else if (options.backup) {
14
+ args.push('--backup');
15
+ }
16
+ return args;
17
+ }
18
+ export async function runSyncCommand(target, options = {}) {
19
+ const resolved = target === 'schema'
20
+ ? resolveCommandConfig('schema', { input: options.input, output: options.output })
21
+ : resolveCommandConfig('data', { input: options.input, output: options.output });
22
+ const dumpArgs = target === 'schema' ? ['db', 'dump'] : ['db', 'dump', '--data-only'];
23
+ const workflowLabel = target === 'schema' ? 'Sync schema' : 'Sync data';
24
+ console.log(sectionWithNote(title(workflowLabel), target === 'schema'
25
+ ? 'Dumping from linked Supabase project, then running split -> reconstruct -> validate.'
26
+ : 'Dumping from linked Supabase project, then running split -> reconstruct -> validate.'));
27
+ console.log(info(`Dump destination: ${resolved.inputFile}`));
28
+ console.log(info(`Processing output: ${resolved.outputDir}`));
29
+ console.log('');
30
+ await runCommandToFile('supabase', dumpArgs, resolved.inputFile);
31
+ console.log(ok(`Dump written to: ${resolved.inputFile}`));
32
+ const workflowArgs = buildWorkflowArgs(resolved.inputFile, options);
33
+ if (target === 'schema') {
34
+ await runSchemaCommand(workflowArgs);
35
+ return;
36
+ }
37
+ await runDataCommand(workflowArgs);
38
+ }
39
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUxD,SAAS,iBAAiB,CAAC,SAAiB,EAAE,OAA2B;IACvE,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB,EAAE,UAA8B,EAAE;IACvF,MAAM,QAAQ,GACZ,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAClF,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAExE,OAAO,CAAC,GAAG,CACT,eAAe,CACb,KAAK,CAAC,aAAa,CAAC,EACpB,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,sFAAsF;QACxF,CAAC,CAAC,sFAAsF,CAC3F,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,8 @@ import { Command } from 'commander';
3
3
  import { runSchemaCommand } from './commands/schema.js';
4
4
  import { runDataCommand } from './commands/data.js';
5
5
  import { runInitCommand } from './commands/init.js';
6
+ import { runSyncCommand } from './commands/sync.js';
7
+ import { runDbResetCommand, runStartCommand } from './commands/db-reset.js';
6
8
  import { error as errText } from './lib/ui.js';
7
9
  function buildStepArgs(step, reconstructed, options = {}) {
8
10
  const args = [];
@@ -12,8 +14,12 @@ function buildStepArgs(step, reconstructed, options = {}) {
12
14
  args.push('--input', options.input);
13
15
  if (options.output)
14
16
  args.push('--output', options.output);
15
- if (options.backup)
17
+ if (options.backup === false) {
18
+ args.push('--no-backup');
19
+ }
20
+ else if (options.backup) {
16
21
  args.push('--backup');
22
+ }
17
23
  if (reconstructed)
18
24
  args.push(reconstructed);
19
25
  return args;
@@ -21,36 +27,43 @@ function buildStepArgs(step, reconstructed, options = {}) {
21
27
  const program = new Command();
22
28
  program
23
29
  .name('supabee')
24
- .description('Split large Supabase schema/data dumps into organized, version-control-friendly SQL files.')
30
+ .description('Supabase sync and migration orchestration CLI.')
25
31
  .showHelpAfterError('(run with --help for usage)')
26
32
  .addHelpText('after', `
27
- Getting started:
28
- 1. supabee init # generate config, update config.toml
29
- 2. supabase link # link to your Supabase project (if not already linked)
30
- 3. supabase db dump > supabase/schemas/prod-schemas.sql
31
- 4. supabase db dump --data-only > supabase/seeds/prod-data.sql
32
- 5. supabee schema # split → reconstruct → validate
33
- 6. supabee data # split → reconstruct → validate
33
+ Main Workflows
34
+ supabee sync schema
35
+ supabee sync data
36
+ supabee db reset [cutoff_timestamp]
37
+ supabee start [cutoff_timestamp]
34
38
 
35
- Examples:
39
+ Setup (once per project)
36
40
  supabee init
41
+ supabase link
42
+
43
+ Examples
44
+ supabee sync schema
45
+ supabee sync data
46
+ supabee db reset 20260309180959
47
+ supabee start 20260309180959
48
+
49
+ Manual Processing (existing dump files)
37
50
  supabee schema
38
51
  supabee data
39
- supabee data split --input supabase/seeds/prod-data.sql --output supabase/seeds/split --backup
40
52
  `);
41
53
  program
42
54
  .command('init')
43
- .description('Generate config file (if missing) and update supabase/config.toml seed paths')
55
+ .description('Create config (if missing) and update supabase/config.toml seed paths')
44
56
  .action(async () => {
45
57
  await runInitCommand([]);
46
58
  });
47
59
  for (const commandName of ['schema', 'data']) {
48
60
  program
49
61
  .command(`${commandName} [step] [reconstructed]`)
50
- .description(`${commandName} split/reconstruct/validate, or run full chain when step is omitted`)
62
+ .description(`${commandName} split/reconstruct/validate (full chain when step is omitted)`)
51
63
  .option('--input <path>', 'Input SQL file or split folder (reconstruct)')
52
64
  .option('--output <path>', 'Split output folder (split) or reconstructed file')
53
- .option('--backup', 'Backup dirty split output folder before split')
65
+ .option('--backup', 'Backup existing split output before replacing')
66
+ .option('--no-backup', 'Do not backup dirty split output folder before split')
54
67
  .action(async (step, reconstructed, options = {}) => {
55
68
  const forwarded = buildStepArgs(step, reconstructed, options);
56
69
  if (commandName === 'schema') {
@@ -60,6 +73,85 @@ for (const commandName of ['schema', 'data']) {
60
73
  await runDataCommand(forwarded);
61
74
  });
62
75
  }
76
+ const syncCommand = program
77
+ .command('sync')
78
+ .description('Dump from linked project, then split/reconstruct/validate')
79
+ .addHelpText('after', `
80
+ Main Usage
81
+ supabee sync schema
82
+ supabee sync data
83
+
84
+ Examples
85
+ supabee sync schema
86
+ supabee sync data --input supabase/seeds/prod-data.sql
87
+ supabee sync data --no-backup
88
+
89
+ Note
90
+ Requires \`supabase link\` to be configured for this project.
91
+ `);
92
+ syncCommand
93
+ .command('schema')
94
+ .description('Run `supabase db dump`, then process schema files')
95
+ .option('--input <path>', 'Dump output path (defaults to schema.input from config)')
96
+ .option('--output <path>', 'Split output path override for schema processing')
97
+ .option('--backup', 'Backup existing split output before replacing')
98
+ .option('--no-backup', 'Do not backup dirty split output folder before split')
99
+ .action(async (options = {}) => {
100
+ await runSyncCommand('schema', options);
101
+ });
102
+ syncCommand
103
+ .command('data')
104
+ .description('Run `supabase db dump --data-only`, then process data files')
105
+ .option('--input <path>', 'Dump output path (defaults to data.input from config)')
106
+ .option('--output <path>', 'Split output path override for data processing')
107
+ .option('--backup', 'Backup existing split output before replacing')
108
+ .option('--no-backup', 'Do not backup dirty split output folder before split')
109
+ .action(async (options = {}) => {
110
+ await runSyncCommand('data', options);
111
+ });
112
+ const dbCommand = program.command('db').description('Database orchestration commands');
113
+ dbCommand
114
+ .command('reset [cutoffTimestamp]')
115
+ .description('Reset DB, then apply deferred post-seed migrations (auto cutoff if omitted)')
116
+ .option('--psql', 'Apply deferred migrations via raw psql instead of supabase migration up')
117
+ .option('--migrations-dir <path>', 'Migrations directory', 'supabase/migrations')
118
+ .option('--temp-dir <path>', 'Temporary directory for deferred migrations', 'supabase/.tmp-migrations')
119
+ .addHelpText('after', `
120
+ What This Command Does
121
+ 1) Defers migrations with timestamps greater than <cutoffTimestamp>
122
+ 2) Runs \`supabase db reset\`
123
+ 3) Restores deferred migration files
124
+ 4) Reapplies deferred migrations
125
+
126
+ Examples
127
+ supabee db reset 20260309180959
128
+ supabee db reset
129
+ supabee db reset 20260309180959 --psql
130
+ `)
131
+ .action(async (cutoffTimestamp, options = {}) => {
132
+ await runDbResetCommand(cutoffTimestamp, options);
133
+ });
134
+ program
135
+ .command('start [cutoffTimestamp]')
136
+ .description('Start Supabase with deferred post-seed migrations applied after startup')
137
+ .option('--psql', 'Apply deferred migrations via raw psql instead of supabase migration up')
138
+ .option('--migrations-dir <path>', 'Migrations directory', 'supabase/migrations')
139
+ .option('--temp-dir <path>', 'Temporary directory for deferred migrations', 'supabase/.tmp-migrations')
140
+ .addHelpText('after', `
141
+ What This Command Does
142
+ 1) Defers migrations with timestamps greater than [cutoffTimestamp]
143
+ 2) Runs \`supabase start\`
144
+ 3) Restores deferred migration files
145
+ 4) Reapplies deferred migrations
146
+
147
+ Examples
148
+ supabee start 20260309180959
149
+ supabee start
150
+ supabee start --psql
151
+ `)
152
+ .action(async (cutoffTimestamp, options = {}) => {
153
+ await runStartCommand(cutoffTimestamp, options);
154
+ });
63
155
  program.parseAsync(process.argv).catch((error) => {
64
156
  const message = error instanceof Error ? error.message : String(error);
65
157
  console.error(errText(message));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ/C,SAAS,aAAa,CAAC,IAAa,EAAE,aAAsB,EAAE,UAA0B,EAAE;IACxF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,aAAa;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CACV,4FAA4F,CAC7F;KACA,kBAAkB,CAAC,6BAA6B,CAAC;KACjD,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;CAcH,CACE,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8EAA8E,CAAC;KAC3F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,KAAK,MAAM,WAAW,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7C,OAAO;SACJ,OAAO,CAAC,GAAG,WAAW,yBAAyB,CAAC;SAChD,WAAW,CACV,GAAG,WAAW,qEAAqE,CACpF;SACA,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;SACxE,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,UAAU,EAAE,+CAA+C,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,aAAsB,EAAE,UAA0B,EAAE,EAAE,EAAE;QACpF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export type StepName = 'split' | 'reconstruct' | 'validate';
2
2
  export type StepCommandOptions = {
3
3
  input: string | null;
4
4
  output: string | null;
5
- backup: boolean;
5
+ backup: boolean | null;
6
6
  help: boolean;
7
7
  positional: string[];
8
8
  };
@@ -9,7 +9,7 @@ export function parseStepCommandArgs(args) {
9
9
  const options = {
10
10
  input: null,
11
11
  output: null,
12
- backup: false,
12
+ backup: null,
13
13
  help: false,
14
14
  positional: [],
15
15
  };
@@ -26,6 +26,9 @@ export function parseStepCommandArgs(args) {
26
26
  else if (arg === '--backup') {
27
27
  options.backup = true;
28
28
  }
29
+ else if (arg === '--no-backup') {
30
+ options.backup = false;
31
+ }
29
32
  else if (arg === '--help' || arg === '-h') {
30
33
  options.help = true;
31
34
  }
@@ -43,11 +46,12 @@ export function printStepCommandHelp(commandName) {
43
46
  supabee ${commandName}
44
47
 
45
48
  Advanced:
46
- supabee ${commandName} [split|reconstruct|validate] [--input <path>] [--output <dir>] [--backup]
49
+ supabee ${commandName} [split|reconstruct|validate] [--input <path>] [--output <dir>] [--backup] [--no-backup]
47
50
 
48
51
  Notes:
49
52
  - No subcommand runs: split -> reconstruct -> validate
50
53
  - split: --input=source.sql, --output=split-dir
54
+ - split backup behavior defaults from config (backup=false by default)
51
55
  - reconstruct: --input=split-dir, --output=reconstructed.sql
52
56
  - validate: --input=source.sql, --output=reconstructed.sql (or positional reconstructed path)
53
57
  `);
@@ -1 +1 @@
1
- {"version":3,"file":"command-contract.js","sourceRoot":"","sources":["../../src/lib/command-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-contract.js","sourceRoot":"","sources":["../../src/lib/command-contract.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export type SchemaConfig = {
3
3
  inputFile: string;
4
4
  outputDir: string;
5
5
  reconstructedFile: string;
6
+ backupByDefault: boolean;
6
7
  keepFiles: string[];
7
8
  };
8
9
  export type DataLimits = {
@@ -14,6 +15,7 @@ export type DataConfig = {
14
15
  inputFile: string;
15
16
  outputDir: string;
16
17
  reconstructedFile: string;
18
+ backupByDefault: boolean;
17
19
  limits: DataLimits;
18
20
  tableRules: Record<string, DataTableRule>;
19
21
  keepFiles: string[];
@@ -8,6 +8,9 @@ function asObject(value) {
8
8
  function asNumber(value, fallback) {
9
9
  return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : fallback;
10
10
  }
11
+ function asBoolean(value, fallback) {
12
+ return typeof value === 'boolean' ? value : fallback;
13
+ }
11
14
  function asStringArray(value, fallback = []) {
12
15
  if (!Array.isArray(value))
13
16
  return fallback;
@@ -50,6 +53,7 @@ function resolveSchemaConfig(toolConfig, cliOptions) {
50
53
  inputFile: path.resolve(process.cwd(), inputValue),
51
54
  outputDir: path.resolve(process.cwd(), outputValue),
52
55
  reconstructedFile: path.resolve(process.cwd(), reconstructedValue),
56
+ backupByDefault: asBoolean(merged.backup, DEFAULTS.schema.backup),
53
57
  keepFiles: asStringArray(merged.keepFiles),
54
58
  };
55
59
  }
@@ -63,6 +67,7 @@ function resolveDataConfig(toolConfig, cliOptions) {
63
67
  inputFile: path.resolve(process.cwd(), inputValue),
64
68
  outputDir: path.resolve(process.cwd(), outputValue),
65
69
  reconstructedFile: path.resolve(process.cwd(), reconstructedValue),
70
+ backupByDefault: asBoolean(merged.backup, DEFAULTS.data.backup),
66
71
  limits: {
67
72
  maxLinesPerFile: asNumber(merged.maxLinesPerFile, DEFAULTS.data.maxLinesPerFile),
68
73
  maxStatementsPerFile: asNumber(merged.maxStatementsPerFile, DEFAULTS.data.maxStatementsPerFile),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,14 @@ export type ToolConfig = {
11
11
  input?: string;
12
12
  output?: string;
13
13
  reconstructed?: string;
14
+ backup?: boolean;
14
15
  keepFiles?: string[];
15
16
  };
16
17
  data?: {
17
18
  input?: string;
18
19
  output?: string;
19
20
  reconstructed?: string;
21
+ backup?: boolean;
20
22
  maxLinesPerFile?: number;
21
23
  maxStatementsPerFile?: number;
22
24
  maxRowsPerInsert?: number;
@@ -33,12 +35,14 @@ export declare const DEFAULTS: {
33
35
  input: string;
34
36
  output: string;
35
37
  reconstructed: string;
38
+ backup: boolean;
36
39
  keepFiles: never[];
37
40
  };
38
41
  data: {
39
42
  input: string;
40
43
  output: string;
41
44
  reconstructed: string;
45
+ backup: boolean;
42
46
  maxLinesPerFile: number;
43
47
  maxStatementsPerFile: number;
44
48
  maxRowsPerInsert: number;
@@ -5,12 +5,14 @@ export const DEFAULTS = {
5
5
  input: 'supabase/schemas/prod-schemas.sql',
6
6
  output: 'supabase/schemas/split',
7
7
  reconstructed: 'supabase/schemas/reconstructed-schemas.sql',
8
+ backup: false,
8
9
  keepFiles: [],
9
10
  },
10
11
  data: {
11
12
  input: 'supabase/seeds/prod-data.sql',
12
13
  output: 'supabase/seeds/split',
13
14
  reconstructed: 'supabase/seeds/reconstructed-data.sql',
15
+ backup: false,
14
16
  maxLinesPerFile: 2000,
15
17
  maxStatementsPerFile: 20,
16
18
  maxRowsPerInsert: 200,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAgCvE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE;QACN,KAAK,EAAE,mCAAmC;QAC1C,MAAM,EAAE,wBAAwB;QAChC,aAAa,EAAE,4CAA4C;QAC3D,SAAS,EAAE,EAAE;KACd;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,sBAAsB;QAC9B,aAAa,EAAE,uCAAuC;QACtD,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,EAAE;QACxB,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,mBAAmB,EAAE,EAAE;KACxB;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAkCvE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE;QACN,KAAK,EAAE,mCAAmC;QAC1C,MAAM,EAAE,wBAAwB;QAChC,aAAa,EAAE,4CAA4C;QAC3D,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,EAAE;KACd;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,sBAAsB;QAC9B,aAAa,EAAE,uCAAuC;QACtD,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,EAAE;QACxB,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,mBAAmB,EAAE,EAAE;KACxB;CACF,CAAC"}
@@ -46,22 +46,50 @@ async function collectFiles(rootDir, currentDir = rootDir) {
46
46
  }
47
47
  return files;
48
48
  }
49
- async function restoreKeepFiles({ outputDir, backupPath, keepFiles, label, }) {
50
- if (!backupPath || !Array.isArray(keepFiles) || keepFiles.length === 0)
49
+ async function restoreKeepFiles({ outputDir, sourceDir, keepFiles, label, silent = false, }) {
50
+ if (!sourceDir || !Array.isArray(keepFiles) || keepFiles.length === 0)
51
51
  return 0;
52
- const existingFiles = await collectFiles(backupPath);
52
+ const existingFiles = await collectFiles(sourceDir);
53
53
  const restoreTargets = existingFiles.filter((relativePath) => keepFiles.some((pattern) => matchesKeepPattern(relativePath, pattern)));
54
54
  for (const relativePath of restoreTargets) {
55
- const from = path.join(backupPath, relativePath);
55
+ const from = path.join(sourceDir, relativePath);
56
56
  const to = path.join(outputDir, relativePath);
57
57
  await fs.promises.mkdir(path.dirname(to), { recursive: true });
58
58
  await fs.promises.copyFile(from, to);
59
59
  }
60
- if (restoreTargets.length > 0) {
60
+ if (!silent && restoreTargets.length > 0) {
61
61
  console.log(info(`Restored ${restoreTargets.length} kept file(s) for ${label.toLowerCase()} output.`));
62
62
  }
63
63
  return restoreTargets.length;
64
64
  }
65
+ async function clearOutputDirWithoutBackup({ outputDir, keepFiles, label, }) {
66
+ if (!Array.isArray(keepFiles) || keepFiles.length === 0) {
67
+ await fs.promises.rm(outputDir, { recursive: true, force: true });
68
+ await fs.promises.mkdir(outputDir, { recursive: true });
69
+ console.log(info(`Cleared existing ${label.toLowerCase()} output without backup.`));
70
+ return { restoredCount: 0 };
71
+ }
72
+ const preserveDir = path.join(path.dirname(outputDir), `.preserve_${path.basename(outputDir)}_${timestampForPath()}`);
73
+ await fs.promises.mkdir(preserveDir, { recursive: true });
74
+ await restoreKeepFiles({
75
+ outputDir: preserveDir,
76
+ sourceDir: outputDir,
77
+ keepFiles,
78
+ label,
79
+ silent: true,
80
+ });
81
+ await fs.promises.rm(outputDir, { recursive: true, force: true });
82
+ await fs.promises.mkdir(outputDir, { recursive: true });
83
+ const restoredCount = await restoreKeepFiles({
84
+ outputDir,
85
+ sourceDir: preserveDir,
86
+ keepFiles,
87
+ label,
88
+ });
89
+ await fs.promises.rm(preserveDir, { recursive: true, force: true });
90
+ console.log(info(`Cleared existing ${label.toLowerCase()} output without backup.`));
91
+ return { restoredCount };
92
+ }
65
93
  export async function prepareSplitOutputDir(outputDir, backup, label, options = {}) {
66
94
  const { keepFiles = [] } = options;
67
95
  const isDirty = await hasAnyFiles(outputDir);
@@ -70,7 +98,8 @@ export async function prepareSplitOutputDir(outputDir, backup, label, options =
70
98
  return { backupPath: null, restoredCount: 0 };
71
99
  }
72
100
  if (!backup) {
73
- throw new Error(`${label} output directory is not empty: ${outputDir}.\nRe-run with --backup to preserve existing files.`);
101
+ const { restoredCount } = await clearOutputDirWithoutBackup({ outputDir, keepFiles, label });
102
+ return { backupPath: null, restoredCount };
74
103
  }
75
104
  const backupRoot = path.join(path.dirname(outputDir), 'backup');
76
105
  const backupPath = path.join(backupRoot, `${path.basename(outputDir)}_${timestampForPath()}`);
@@ -78,7 +107,7 @@ export async function prepareSplitOutputDir(outputDir, backup, label, options =
78
107
  await fs.promises.rename(outputDir, backupPath);
79
108
  await fs.promises.mkdir(outputDir, { recursive: true });
80
109
  console.log(info(`Backed up existing ${label.toLowerCase()} output to: ${backupPath}`));
81
- const restoredCount = await restoreKeepFiles({ outputDir, backupPath, keepFiles, label });
110
+ const restoredCount = await restoreKeepFiles({ outputDir, sourceDir: backupPath, keepFiles, label });
82
111
  return { backupPath, restoredCount };
83
112
  }
84
113
  //# sourceMappingURL=output.js.map