@appixar/xpg 1.0.7 → 1.0.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAeD;;GAEG;AACH,wBAAsB,EAAE,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiQ/E"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,EAAE,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwQ/E"}
package/dist/builder.js CHANGED
@@ -6,25 +6,13 @@
6
6
  import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
7
7
  import { resolve, join } from 'node:path';
8
8
  import YAML from 'yaml';
9
- import * as readline from 'node:readline';
9
+ import { confirm } from '@inquirer/prompts';
10
10
  import { loadConfig, resolveSchemaPath } from './configLoader.js';
11
11
  import { parseSchema } from './schemaParser.js';
12
12
  import { generateCreateTable, generateDropTable, generateCreateDatabase } from './sqlGenerator.js';
13
13
  import { generateUpdateTable } from './diffEngine.js';
14
14
  import { PgService } from './pgService.js';
15
15
  import * as log from './logger.js';
16
- /**
17
- * Prompt the user for yes/no confirmation.
18
- */
19
- async function promptConfirm(message) {
20
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
21
- return new Promise(resolve => {
22
- rl.question(message, answer => {
23
- rl.close();
24
- resolve(answer.trim() === '1' || answer.trim().toLowerCase() === 'y');
25
- });
26
- });
27
- }
28
16
  /**
29
17
  * Run the full database migration flow.
30
18
  */
@@ -34,10 +22,16 @@ export async function up(options = {}) {
34
22
  const result = { executed: 0, failed: [], total: 0 };
35
23
  // Load config
36
24
  let cfg;
25
+ if (!mute)
26
+ log.spin('Loading configuration...');
37
27
  try {
38
28
  cfg = loadConfig(options.config);
29
+ if (!mute)
30
+ log.stopSpinner();
39
31
  }
40
32
  catch (err) {
33
+ if (!mute)
34
+ log.fail('Failed to load config');
41
35
  const msg = err.message;
42
36
  throw new Error(`Config error: ${msg}. Please verify your xpg.config.yml or config/postgres.yml`);
43
37
  }
@@ -56,7 +50,7 @@ export async function up(options = {}) {
56
50
  continue;
57
51
  }
58
52
  if (!mute)
59
- log.say(`\n► PostgreSQL '${dbId}' ...`, 'cyan');
53
+ log.header(`${dbId}`, 'cyan');
60
54
  // Resolve schema paths
61
55
  let databasePaths = [];
62
56
  if (writeNode.PATH) {
@@ -70,6 +64,8 @@ export async function up(options = {}) {
70
64
  databasePaths = [defaultPath];
71
65
  }
72
66
  // Connect
67
+ if (!mute)
68
+ log.spin('Connecting to database...');
73
69
  const pg = new PgService(dbConf, dbId);
74
70
  const allQueries = [];
75
71
  let createDbCount = 0;
@@ -82,36 +78,41 @@ export async function up(options = {}) {
82
78
  const q = generateCreateDatabase(writeNode.NAME);
83
79
  allQueries.push(q);
84
80
  if (!mute)
85
- log.say(`→ ${q.sql}`, 'green');
81
+ log.step(`Database '${writeNode.NAME}' will be created`);
86
82
  createDbCount++;
87
83
  }
88
84
  }
89
85
  catch (err) {
90
- log.error(`Failed to check database existence: ${err.message}`);
86
+ log.warn(`Failed to check database existence: ${err.message}`);
91
87
  }
92
88
  }
89
+ if (!mute)
90
+ log.stopSpinner();
93
91
  // Skip schema processing if we're only creating the database
94
92
  if (createDbCount > 0 && allQueries.length > 0) {
95
93
  // Execute create database first, then re-run
96
94
  if (!dryRun) {
97
95
  if (!mute) {
98
- console.log('');
99
- const ok = await promptConfirm('Create database first? (1: Yes, 0: No): ');
96
+ const ok = await confirm({ message: 'Create database first?', default: true });
100
97
  if (!ok) {
101
98
  log.warn('Aborting!');
102
99
  continue;
103
100
  }
104
101
  }
105
102
  const adminPool = pg.getAdminPool();
103
+ if (!mute)
104
+ log.spin('Creating database...');
106
105
  for (const q of allQueries) {
107
106
  await adminPool.query(q.sql);
108
107
  }
109
108
  if (!mute)
110
- log.success(`Database created. Re-running schema migration...`);
109
+ log.succeed(`Database created. Re-running schema migration...`);
111
110
  allQueries.length = 0;
112
111
  }
113
112
  }
114
113
  // Get existing tables
114
+ if (!mute)
115
+ log.spin('Analyzing database structure...');
115
116
  let tablesReal = [];
116
117
  try {
117
118
  const t = await pg.query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'");
@@ -127,22 +128,23 @@ export async function up(options = {}) {
127
128
  if (!existsSync(schemaDir) || !statSync(schemaDir).isDirectory())
128
129
  continue;
129
130
  const files = readdirSync(schemaDir).filter(f => f.endsWith('.yml') || f.endsWith('.yaml'));
131
+ if (!mute)
132
+ log.spin(`Reading ${files.length} schema files in ${schemaDir}...`);
130
133
  for (const fn of files) {
131
134
  const fp = join(schemaDir, fn);
132
- if (!mute)
133
- log.say(`❍ Processing: ${fp}`, 'magenta');
135
+ // if (!mute) log.say(`❍ Processing: ${fp}`, 'magenta');
134
136
  let data;
135
137
  try {
136
138
  data = YAML.parse(readFileSync(fp, 'utf-8'));
137
139
  if (!data || typeof data !== 'object') {
138
140
  if (!mute)
139
- log.warn('⚠ Invalid file format. Ignored.');
141
+ log.warn(`⚠ Invalid file format: ${fn}. Ignored.`);
140
142
  continue;
141
143
  }
142
144
  }
143
145
  catch {
144
146
  if (!mute)
145
- log.warn('⚠ Failed to parse YAML. Ignored.');
147
+ log.warn(`⚠ Failed to parse YAML: ${fn}. Ignored.`);
146
148
  continue;
147
149
  }
148
150
  for (let [tableName, tableCols] of Object.entries(data)) {
@@ -181,10 +183,7 @@ export async function up(options = {}) {
181
183
  allQueries.push(...generateUpdateTable(diffCtx));
182
184
  }
183
185
  else {
184
- if (!mute) {
185
- log.header(`∴ ${tableName}`, 'blue');
186
- log.say('✓ Table is up to date');
187
- }
186
+ // Table exists but no columns found? Rare.
188
187
  }
189
188
  }
190
189
  catch (err) {
@@ -198,6 +197,8 @@ export async function up(options = {}) {
198
197
  }
199
198
  }
200
199
  }
200
+ if (!mute)
201
+ log.stopSpinner();
201
202
  // ─── DROP tables not in YAML (opt-in via --drop-orphans) ───
202
203
  if (options.dropOrphans) {
203
204
  for (const existingTable of tablesReal) {
@@ -210,21 +211,21 @@ export async function up(options = {}) {
210
211
  const orphans = tablesReal.filter(t => !tablesNew.includes(t));
211
212
  if (orphans.length > 0) {
212
213
  log.warn(`⚠ ${orphans.length} table(s) in DB but not in YAML: ${orphans.join(', ')}`);
213
- log.warn(' Use --drop-orphans to drop them.');
214
+ log.say(' Use --drop-orphans to drop them.', 'gray');
214
215
  }
215
216
  }
216
217
  // ─── Execute or show ───
217
218
  if (allQueries.length > 0) {
218
219
  if (!mute) {
219
- log.say(`\n→ ${allQueries.length} requested actions for: ${dbId}`);
220
- log.say('→ Please verify:');
220
+ log.say(`\n→ ${allQueries.length} changes identified.`, 'cyan');
221
+ // log.say('→ Please verify:');
221
222
  for (const q of allQueries) {
222
- log.say(` ${q.mini}`, q.color);
223
+ log.say(` ${q.mini}`, q.color);
223
224
  }
224
225
  }
225
226
  if (dryRun) {
226
227
  if (!mute) {
227
- log.header('🔍 Dry run — no changes applied', 'yellow');
228
+ log.header('Dry run — no changes applied', 'yellow');
228
229
  for (const q of allQueries) {
229
230
  log.say(q.sql, 'gray');
230
231
  }
@@ -245,14 +246,13 @@ export async function up(options = {}) {
245
246
  }
246
247
  else {
247
248
  console.log('');
248
- console.log('Are you sure you want to do this? ☝');
249
- console.log('0: No');
250
- console.log('1: Yes');
251
- const ok = await promptConfirm('Choose an option: ');
249
+ const ok = await confirm({ message: 'Apply these changes?', default: true });
252
250
  if (!ok) {
253
251
  log.warn('Aborting!');
254
252
  continue;
255
253
  }
254
+ if (!mute)
255
+ log.spin('Applying changes...');
256
256
  for (const q of allQueries) {
257
257
  try {
258
258
  await pg.query(q.sql);
@@ -261,13 +261,19 @@ export async function up(options = {}) {
261
261
  catch (err) {
262
262
  const errMsg = err.message;
263
263
  result.failed.push({ sql: q.sql, error: errMsg });
264
- log.error(`Failed: ${q.mini} — ${errMsg}`);
264
+ log.fail(`Failed: ${q.mini} — ${errMsg}`);
265
265
  }
266
266
  }
267
+ if (!mute)
268
+ log.succeed('Changes applied successfully');
267
269
  }
268
270
  }
271
+ else {
272
+ if (!mute)
273
+ log.succeed('Database is up to date.');
274
+ }
269
275
  result.total += allQueries.length;
270
- log.header(`❤ Finished ${dbId}. Changes: ${allQueries.length}`);
276
+ // log.header(`❤ Finished ${dbId}. Changes: ${allQueries.length}`);
271
277
  }
272
278
  await PgService.closeAll();
273
279
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -12,7 +12,10 @@ program
12
12
  .name('xpg')
13
13
  .description('YAML-driven PostgreSQL schema management & migrations')
14
14
  .version('1.0.0')
15
- .option('--no-color', 'Disable colored output');
15
+ .option('--no-color', 'Disable colored output')
16
+ .hook('preAction', () => {
17
+ log.welcome();
18
+ });
16
19
  // ─── up command ───
17
20
  program
18
21
  .command('up')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,gDAAgD;AAChD,+BAA+B;AAC/B,gDAAgD;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;AAElD,qBAAqB;AACrB,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,uEAAuE,CAAC;KACpF,MAAM,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC1D,MAAM,CAAC,aAAa,EAAE,0CAA0C,CAAC;KACjE,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;KACtD,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC;KACvC,MAAM,CAAC,OAAO,EAAE,0CAA0C,CAAC;KAC3D,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,+CAA+C,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,2BAA2B;AAE3B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCrB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,4 +1,24 @@
1
1
  import type { LogColor } from './types.js';
2
+ /**
3
+ * Stop the active spinner if it exists.
4
+ */
5
+ export declare function stopSpinner(): void;
6
+ /**
7
+ * Start a spinner with a message.
8
+ */
9
+ export declare function spin(text: string): void;
10
+ /**
11
+ * Succeed the current spinner or print a success message.
12
+ */
13
+ export declare function succeed(text: string): void;
14
+ /**
15
+ * Fail the current spinner or print an error message.
16
+ */
17
+ export declare function fail(text: string): void;
18
+ /**
19
+ * Print a nice welcome banner.
20
+ */
21
+ export declare function welcome(): void;
2
22
  /**
3
23
  * Print a section header with a separator line.
4
24
  */
@@ -19,4 +39,8 @@ export declare function warn(text: string): void;
19
39
  * Print an error message (red).
20
40
  */
21
41
  export declare function error(text: string): void;
42
+ /**
43
+ * Print a step message (blue arrow).
44
+ */
45
+ export declare function step(text: string): void;
22
46
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAqB3C;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,QAAkB,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAMxD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuB3C;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAWvC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvC;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAU9B;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,QAAkB,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAiBxD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGvC"}
package/dist/logger.js CHANGED
@@ -4,6 +4,9 @@
4
4
  // Terminal output utilities with color support.
5
5
  // Respects NO_COLOR env and --no-color flag.
6
6
  import chalk from 'chalk';
7
+ import boxen from 'boxen';
8
+ import ora from 'ora';
9
+ let activeSpinner = null;
7
10
  /**
8
11
  * Check if color output is disabled.
9
12
  * Respects NO_COLOR standard (https://no-color.org/) and --no-color CLI flag.
@@ -21,20 +24,93 @@ const colorFns = {
21
24
  blue: (s) => isColorDisabled() ? s : chalk.blue(s),
22
25
  white: (s) => isColorDisabled() ? s : chalk.white(s),
23
26
  };
27
+ /**
28
+ * Stop the active spinner if it exists.
29
+ */
30
+ export function stopSpinner() {
31
+ if (activeSpinner) {
32
+ activeSpinner.stop();
33
+ activeSpinner = null;
34
+ }
35
+ }
36
+ /**
37
+ * Start a spinner with a message.
38
+ */
39
+ export function spin(text) {
40
+ stopSpinner();
41
+ if (!isColorDisabled()) {
42
+ activeSpinner = ora({
43
+ text,
44
+ color: 'cyan',
45
+ spinner: 'dots' // Elegant dots
46
+ }).start();
47
+ }
48
+ else {
49
+ console.log(`[wait] ${text}`);
50
+ }
51
+ }
52
+ /**
53
+ * Succeed the current spinner or print a success message.
54
+ */
55
+ export function succeed(text) {
56
+ if (activeSpinner) {
57
+ activeSpinner.succeed(chalk.green(text));
58
+ activeSpinner = null;
59
+ }
60
+ else {
61
+ console.log(chalk.green(`✔ ${text}`));
62
+ }
63
+ }
64
+ /**
65
+ * Fail the current spinner or print an error message.
66
+ */
67
+ export function fail(text) {
68
+ if (activeSpinner) {
69
+ activeSpinner.fail(chalk.red(text));
70
+ activeSpinner = null;
71
+ }
72
+ else {
73
+ console.log(chalk.red(`✖ ${text}`));
74
+ }
75
+ }
76
+ /**
77
+ * Print a nice welcome banner.
78
+ */
79
+ export function welcome() {
80
+ if (isColorDisabled())
81
+ return;
82
+ console.log(boxen(chalk.bold.cyan('x-postgres') + '\n' + chalk.dim('Schema Management & Migrations'), {
83
+ padding: 1,
84
+ margin: 1,
85
+ borderStyle: 'round',
86
+ borderColor: 'cyan',
87
+ float: 'center'
88
+ }));
89
+ }
24
90
  /**
25
91
  * Print a section header with a separator line.
26
92
  */
27
93
  export function header(text, color = 'green') {
28
- const line = '━'.repeat(50);
94
+ stopSpinner(); // Stop any overlapping spinner
29
95
  const colorize = colorFns[color] ?? colorFns.green;
30
- console.log(colorize(line));
31
- console.log(colorize(text));
32
- console.log(colorize(line));
96
+ console.log('');
97
+ console.log(colorize('● ' + text));
98
+ console.log('');
33
99
  }
34
100
  /**
35
101
  * Print a message, optionally colored.
36
102
  */
37
103
  export function say(text, color) {
104
+ if (activeSpinner) {
105
+ // If spinner is active, stop it, print, and restart?
106
+ // Or just stop it for a moment.
107
+ // Better: stop, print info, leave stopped?
108
+ // Actually ora handles console.log but it's cleaner to stop.
109
+ activeSpinner.stop();
110
+ // We won't restart it here automatically as 'say' is usually a discrete event.
111
+ // If the caller wants the spinner back, they should call spin() again.
112
+ activeSpinner = null;
113
+ }
38
114
  if (color && colorFns[color]) {
39
115
  console.log(colorFns[color](text));
40
116
  }
@@ -46,18 +122,31 @@ export function say(text, color) {
46
122
  * Print a success message (green).
47
123
  */
48
124
  export function success(text) {
49
- say(text, 'green');
125
+ succeed(text);
50
126
  }
51
127
  /**
52
128
  * Print a warning message (yellow).
53
129
  */
54
130
  export function warn(text) {
55
- say(text, 'yellow');
131
+ if (activeSpinner) {
132
+ activeSpinner.warn(chalk.yellow(text));
133
+ activeSpinner = null;
134
+ }
135
+ else {
136
+ console.log(chalk.yellow(`⚠ ${text}`));
137
+ }
56
138
  }
57
139
  /**
58
140
  * Print an error message (red).
59
141
  */
60
142
  export function error(text) {
61
- say(text, 'red');
143
+ fail(text);
144
+ }
145
+ /**
146
+ * Print a step message (blue arrow).
147
+ */
148
+ export function step(text) {
149
+ stopSpinner();
150
+ console.log(chalk.blue(`➜ ${text}`));
62
151
  }
63
152
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appixar/xpg",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "YAML-driven PostgreSQL schema management, diff-based migrations, and query service",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,8 +24,11 @@
24
24
  "node": ">=18.0.0"
25
25
  },
26
26
  "dependencies": {
27
+ "@inquirer/prompts": "^8.2.1",
28
+ "boxen": "^8.0.1",
27
29
  "chalk": "^5.3.0",
28
30
  "commander": "^12.1.0",
31
+ "ora": "^9.3.0",
29
32
  "pg": "^8.13.1",
30
33
  "yaml": "^2.6.1"
31
34
  },