pgpm 5.7.0 → 5.8.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.
@@ -0,0 +1,3 @@
1
+ import { CLIOptions, Inquirerer } from 'inquirerer';
2
+ declare const _default: (argv: Partial<Record<string, any>>, _prompter: Inquirerer, _options: CLIOptions) => Promise<Partial<Record<string, any>>>;
3
+ export default _default;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@pgpmjs/core");
4
+ const syncVersionsUsageText = `
5
+ Sync Versions Command:
6
+
7
+ pgpm sync-versions [OPTIONS]
8
+
9
+ Sync extension metadata (.control default_version, Makefile sql filename,
10
+ and the sql/<name>--<version>.sql bundle) to each module's package.json
11
+ version. Inside a module, syncs just that module; at a workspace root,
12
+ syncs every workspace module.
13
+
14
+ Options:
15
+ --help, -h Show this help message
16
+ --check Report version skew without writing; exits non-zero if skewed
17
+ --cwd <directory> Working directory (default: current directory)
18
+
19
+ Examples:
20
+ pgpm sync-versions Sync all out-of-sync modules
21
+ pgpm sync-versions --check Fail if any module's metadata is out of sync (for CI)
22
+ `;
23
+ exports.default = async (argv, _prompter, _options) => {
24
+ // Show usage if explicitly requested
25
+ if (argv.help || argv.h) {
26
+ console.log(syncVersionsUsageText);
27
+ process.exit(0);
28
+ }
29
+ const cwd = argv.cwd ?? process.cwd();
30
+ const check = Boolean(argv.check);
31
+ const project = new core_1.PgpmPackage(cwd);
32
+ const result = await project.syncVersions({ check });
33
+ if (check) {
34
+ if (result.skewed.length > 0) {
35
+ console.log(`${result.skewed.length} module(s) out of sync:`);
36
+ for (const status of result.skewed) {
37
+ console.log(` ${status.name}: package.json ${status.packageVersion} != control ${status.controlVersion}` +
38
+ (status.sqlFileExists ? '' : ` (missing sql/${status.name}--${status.packageVersion}.sql)`));
39
+ }
40
+ process.exit(1);
41
+ }
42
+ console.log(`All ${result.ok.length} module(s) in sync.`);
43
+ return argv;
44
+ }
45
+ if (result.synced.length === 0) {
46
+ console.log(`All ${result.ok.length} module(s) already in sync.`);
47
+ }
48
+ else {
49
+ console.log(`Synced ${result.synced.length} module(s); ${result.ok.length} already in sync.`);
50
+ }
51
+ return argv;
52
+ };
package/commands.js CHANGED
@@ -29,6 +29,7 @@ const remove_1 = __importDefault(require("./commands/remove"));
29
29
  const rename_1 = __importDefault(require("./commands/rename"));
30
30
  const revert_1 = __importDefault(require("./commands/revert"));
31
31
  const slice_1 = __importDefault(require("./commands/slice"));
32
+ const sync_versions_1 = __importDefault(require("./commands/sync-versions"));
32
33
  const tag_1 = __importDefault(require("./commands/tag"));
33
34
  const test_packages_1 = __importDefault(require("./commands/test-packages"));
34
35
  const tune_1 = __importDefault(require("./commands/tune"));
@@ -72,6 +73,7 @@ const createPgpmCommandMap = (skipPgTeardown = false) => {
72
73
  analyze: pgt(analyze_1.default),
73
74
  rename: pgt(rename_1.default),
74
75
  slice: slice_1.default,
76
+ 'sync-versions': sync_versions_1.default,
75
77
  'test-packages': pgt(test_packages_1.default),
76
78
  tune: pgt(tune_1.default),
77
79
  upgrade: pgt(upgrade_1.default),
@@ -0,0 +1,50 @@
1
+ import { PgpmPackage } from '@pgpmjs/core';
2
+ const syncVersionsUsageText = `
3
+ Sync Versions Command:
4
+
5
+ pgpm sync-versions [OPTIONS]
6
+
7
+ Sync extension metadata (.control default_version, Makefile sql filename,
8
+ and the sql/<name>--<version>.sql bundle) to each module's package.json
9
+ version. Inside a module, syncs just that module; at a workspace root,
10
+ syncs every workspace module.
11
+
12
+ Options:
13
+ --help, -h Show this help message
14
+ --check Report version skew without writing; exits non-zero if skewed
15
+ --cwd <directory> Working directory (default: current directory)
16
+
17
+ Examples:
18
+ pgpm sync-versions Sync all out-of-sync modules
19
+ pgpm sync-versions --check Fail if any module's metadata is out of sync (for CI)
20
+ `;
21
+ export default async (argv, _prompter, _options) => {
22
+ // Show usage if explicitly requested
23
+ if (argv.help || argv.h) {
24
+ console.log(syncVersionsUsageText);
25
+ process.exit(0);
26
+ }
27
+ const cwd = argv.cwd ?? process.cwd();
28
+ const check = Boolean(argv.check);
29
+ const project = new PgpmPackage(cwd);
30
+ const result = await project.syncVersions({ check });
31
+ if (check) {
32
+ if (result.skewed.length > 0) {
33
+ console.log(`${result.skewed.length} module(s) out of sync:`);
34
+ for (const status of result.skewed) {
35
+ console.log(` ${status.name}: package.json ${status.packageVersion} != control ${status.controlVersion}` +
36
+ (status.sqlFileExists ? '' : ` (missing sql/${status.name}--${status.packageVersion}.sql)`));
37
+ }
38
+ process.exit(1);
39
+ }
40
+ console.log(`All ${result.ok.length} module(s) in sync.`);
41
+ return argv;
42
+ }
43
+ if (result.synced.length === 0) {
44
+ console.log(`All ${result.ok.length} module(s) already in sync.`);
45
+ }
46
+ else {
47
+ console.log(`Synced ${result.synced.length} module(s); ${result.ok.length} already in sync.`);
48
+ }
49
+ return argv;
50
+ };
package/esm/commands.js CHANGED
@@ -23,6 +23,7 @@ import remove from './commands/remove';
23
23
  import renameCmd from './commands/rename';
24
24
  import revert from './commands/revert';
25
25
  import slice from './commands/slice';
26
+ import syncVersions from './commands/sync-versions';
26
27
  import tag from './commands/tag';
27
28
  import testPackages from './commands/test-packages';
28
29
  import tune from './commands/tune';
@@ -66,6 +67,7 @@ export const createPgpmCommandMap = (skipPgTeardown = false) => {
66
67
  analyze: pgt(analyze),
67
68
  rename: pgt(renameCmd),
68
69
  slice,
70
+ 'sync-versions': syncVersions,
69
71
  'test-packages': pgt(testPackages),
70
72
  tune: pgt(tune),
71
73
  upgrade: pgt(upgrade),
@@ -12,6 +12,7 @@ export const usageText = `
12
12
  extension Manage module dependencies
13
13
  plan Generate module deployment plans
14
14
  package Package module for distribution
15
+ sync-versions Sync .control/Makefile/sql metadata to package.json versions
15
16
  export Export database migrations from existing databases
16
17
  update Update pgpm to the latest version
17
18
  cache Manage cached templates (clean)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pgpm",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "author": "Constructive <developers@constructive.io>",
5
5
  "description": "PostgreSQL Package Manager - Database migration and package management CLI",
6
6
  "main": "index.js",
@@ -46,9 +46,9 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@inquirerer/utils": "^3.3.9",
49
- "@pgpmjs/core": "^7.8.0",
49
+ "@pgpmjs/core": "^7.9.0",
50
50
  "@pgpmjs/env": "^2.33.0",
51
- "@pgpmjs/export": "^1.8.0",
51
+ "@pgpmjs/export": "^1.8.1",
52
52
  "@pgpmjs/logger": "^2.18.0",
53
53
  "@pgpmjs/slice": "^0.5.0",
54
54
  "@pgpmjs/types": "^2.40.0",
@@ -77,5 +77,5 @@
77
77
  "pg",
78
78
  "pgsql"
79
79
  ],
80
- "gitHead": "73f55ad24d9a92e7ef1e268526b31bfb7bb12b28"
80
+ "gitHead": "f36bcdd2b5dada626955e9e05b19c80ca9f92ed5"
81
81
  }
@@ -1 +1 @@
1
- export declare const usageText = "\n Usage: pgpm <command> [options]\n\n Core Database Operations:\n add Add database changes to plans and create SQL files\n deploy Deploy database changes and migrations\n verify Verify database state and migrations\n revert Revert database changes and migrations\n\n Project Management:\n init Initialize workspace or module\n extension Manage module dependencies\n plan Generate module deployment plans\n package Package module for distribution\n export Export database migrations from existing databases\n update Update pgpm to the latest version\n cache Manage cached templates (clean)\n upgrade Upgrade installed pgpm modules to latest versions (alias: up)\n\n Database Administration:\n dump Dump a database to a sql file\n kill Terminate database connections and optionally drop databases\n install Install database modules\n tag Add tags to changes for versioning\n clear Clear database state\n remove Remove database changes\n analyze Analyze database structure\n rename Rename database changes\n admin-users Manage admin users\n tune Tune PostgreSQL for throwaway environments (CI/test)\n\n Testing:\n test-packages Run integration tests on all workspace packages\n\n Migration Tools:\n migrate Migration management subcommands\n init Initialize migration tracking\n status Show migration status\n list List all changes\n deps Show change dependencies\n \n Development Tools:\n docker Manage Docker containers (start/stop/ls, --minio)\n doctor Check local dependencies (node, docker, psql) with install guidance\n env Manage environment variables (--supabase, --minio)\n test-packages Run integration tests on workspace packages\n \n Global Options:\n -h, --help Display this help information\n -v, --version Display version information\n --cwd <directory> Working directory (default: current directory)\n\n Individual Command Help:\n pgpm <command> --help Display detailed help for specific command\n pgpm <command> -h Display detailed help for specific command\n\n Examples:\n pgpm deploy --help Show deploy command options\n pgpm init workspace Initialize new workspace\n pgpm install @pgpm/base32 Install a database module\n ";
1
+ export declare const usageText = "\n Usage: pgpm <command> [options]\n\n Core Database Operations:\n add Add database changes to plans and create SQL files\n deploy Deploy database changes and migrations\n verify Verify database state and migrations\n revert Revert database changes and migrations\n\n Project Management:\n init Initialize workspace or module\n extension Manage module dependencies\n plan Generate module deployment plans\n package Package module for distribution\n sync-versions Sync .control/Makefile/sql metadata to package.json versions\n export Export database migrations from existing databases\n update Update pgpm to the latest version\n cache Manage cached templates (clean)\n upgrade Upgrade installed pgpm modules to latest versions (alias: up)\n\n Database Administration:\n dump Dump a database to a sql file\n kill Terminate database connections and optionally drop databases\n install Install database modules\n tag Add tags to changes for versioning\n clear Clear database state\n remove Remove database changes\n analyze Analyze database structure\n rename Rename database changes\n admin-users Manage admin users\n tune Tune PostgreSQL for throwaway environments (CI/test)\n\n Testing:\n test-packages Run integration tests on all workspace packages\n\n Migration Tools:\n migrate Migration management subcommands\n init Initialize migration tracking\n status Show migration status\n list List all changes\n deps Show change dependencies\n \n Development Tools:\n docker Manage Docker containers (start/stop/ls, --minio)\n doctor Check local dependencies (node, docker, psql) with install guidance\n env Manage environment variables (--supabase, --minio)\n test-packages Run integration tests on workspace packages\n \n Global Options:\n -h, --help Display this help information\n -v, --version Display version information\n --cwd <directory> Working directory (default: current directory)\n\n Individual Command Help:\n pgpm <command> --help Display detailed help for specific command\n pgpm <command> -h Display detailed help for specific command\n\n Examples:\n pgpm deploy --help Show deploy command options\n pgpm init workspace Initialize new workspace\n pgpm install @pgpm/base32 Install a database module\n ";
package/utils/display.js CHANGED
@@ -15,6 +15,7 @@ exports.usageText = `
15
15
  extension Manage module dependencies
16
16
  plan Generate module deployment plans
17
17
  package Package module for distribution
18
+ sync-versions Sync .control/Makefile/sql metadata to package.json versions
18
19
  export Export database migrations from existing databases
19
20
  update Update pgpm to the latest version
20
21
  cache Manage cached templates (clean)