@prisma-psm/core 1.0.12 → 1.0.14

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/bin/publish.sh CHANGED
@@ -44,7 +44,7 @@ update_version() {
44
44
  build_pkg() {
45
45
  local dir="$1"
46
46
  echo "🔨 Compilando TypeScript em $dir"
47
- (cd "$dir" && tsc --build)
47
+ (cd "$dir" && tsc)
48
48
  }
49
49
 
50
50
  publish_pkg() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma-psm/core",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "PSM - Prisma SAFE MIGRATE: ferramenta CLI para migração segura de bancos Prisma com suporte avançado.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -45,6 +45,7 @@
45
45
  ],
46
46
  "devDependencies": {
47
47
  "@types/yaml": "^1.9.6",
48
- "@types/yargs": "^17.0.33"
48
+ "@types/yargs": "^17.0.33",
49
+ "tar": "^7.4.3"
49
50
  }
50
51
  }
package/src/driver.d.ts CHANGED
@@ -127,10 +127,15 @@ export interface PSMMigrated {
127
127
  success?: boolean;
128
128
  migrated?: Migrated[];
129
129
  }
130
+ export interface PSMDumpResponse {
131
+ error?: Error;
132
+ output?: string;
133
+ }
130
134
  export interface PSMMigrator {
131
135
  core(): Promise<PSMMigrationResult>;
132
136
  test(): Promise<PSMMigrationResult>;
133
137
  migrate(): Promise<PSMMigrationResult>;
138
+ dump(): Promise<PSMDumpResponse>;
134
139
  }
135
140
  export interface QueryBuilderResult {
136
141
  sql: string;
@@ -168,10 +173,6 @@ export type PatchOptions<Props> = RegistryOptions<Props> & {
168
173
  export type RevisionListener = {
169
174
  onRegister?(error: Error, onRelease: () => void): void;
170
175
  };
171
- type SQLTemplate = (sqlTemplate: TemplateStringsArray, ...values: any[]) => QueryBuilderResult & {
172
- sql: SQLTemplate;
173
- joins(...builders: QueryBuilderResult[]): void;
174
- };
175
176
  export interface SqlPatch<Props> {
176
177
  opts: RegistryOptions<Props> & PatchOptions<Props>;
177
178
  str: string | QueryBuilderResult;
@@ -184,15 +185,10 @@ export interface PSMDriver {
184
185
  generator: (opts: PSMParserOptions) => PSMGenerator;
185
186
  migrator: (opts: PSMMigrationOptions) => PSMMigrator;
186
187
  prepare: (model: ModelOptions) => Promise<any> | void;
187
- sql: SQLTemplate;
188
- joins(...builders: QueryBuilderResult[]): void;
189
- patch<Props>(opts: PatchOptions<Props>, sql: QueryBuilderResult, listener?: RevisionListener): SqlPatch<Props>;
190
- patchSQL<Props>(opts?: PatchOptions<Props>, listener?: RevisionListener): SQLTemplate;
191
188
  }
192
189
  export interface DriverConfigs {
193
190
  driver: string;
194
191
  url: string;
195
192
  sys: string;
196
193
  }
197
- export {};
198
194
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["driver.ts"],"names":[],"mappings":"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"}
package/src/driver.ts CHANGED
@@ -140,10 +140,16 @@ export interface PSMMigrated {
140
140
  migrated?:Migrated[]
141
141
  }
142
142
 
143
+ export interface PSMDumpResponse {
144
+ error?:Error,
145
+ output?:string
146
+ }
147
+
143
148
  export interface PSMMigrator {
144
149
  core():Promise<PSMMigrationResult>,
145
150
  test():Promise<PSMMigrationResult>,
146
151
  migrate():Promise<PSMMigrationResult>,
152
+ dump():Promise<PSMDumpResponse>,
147
153
  }
148
154
 
149
155
  export interface QueryBuilderResult {
@@ -206,10 +212,10 @@ export interface PSMDriver {
206
212
  generator:( opts:PSMParserOptions )=>PSMGenerator,
207
213
  migrator:( opts:PSMMigrationOptions ) =>PSMMigrator,
208
214
  prepare: ( model:ModelOptions )=>Promise<any>|void,
209
- sql:SQLTemplate,
210
- joins( ...builders:QueryBuilderResult[] ):void
211
- patch <Props>(opts:PatchOptions<Props>, sql:QueryBuilderResult, listener?: RevisionListener):SqlPatch<Props>
212
- patchSQL <Props>(opts?:PatchOptions<Props>, listener?: RevisionListener):SQLTemplate
215
+ // sql:SQLTemplate,
216
+ // joins( ...builders:QueryBuilderResult[] ):void
217
+ // patch <Props>(opts:PatchOptions<Props>, sql:QueryBuilderResult, listener?: RevisionListener):SqlPatch<Props>
218
+ // patchSQL <Props>(opts?:PatchOptions<Props>, listener?: RevisionListener):SQLTemplate
213
219
  }
214
220
 
215
221
  export interface DriverConfigs {
@@ -0,0 +1,5 @@
1
+ import { CommandModule } from "yargs";
2
+ import { BackupOptions } from "../../tools/backup";
3
+ declare const command: CommandModule<BackupOptions, BackupOptions>;
4
+ export = command;
5
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAS,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGzD,QAAA,MAAM,OAAO,EAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAqBvD,CAAA;AAED,SAAS,OAAO,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ const backup_1 = require("../../tools/backup");
3
+ const command = {
4
+ command: "backup",
5
+ describe: "Backup current database",
6
+ builder: args => {
7
+ args.options("schema", {
8
+ type: "string",
9
+ alias: "s"
10
+ }).options("label", {
11
+ type: "string",
12
+ alias: "l",
13
+ });
14
+ return args;
15
+ },
16
+ handler: (argv) => {
17
+ (0, backup_1.backup)(argv).then(value => {
18
+ console.log("Commited!");
19
+ }).catch(reason => {
20
+ console.error(reason);
21
+ });
22
+ }
23
+ };
24
+ module.exports = command;
25
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["backup.ts"],"names":[],"mappings":";AAEA,+CAAyD;AAGzD,MAAM,OAAO,GAA+C;IACxD,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,OAAO,CAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAC,OAAO,CAAE,OAAO,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAC,CAAE,IAAI,EAAE,EAAE;QACd,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,CAAC,GAAG,CAAE,WAAW,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAC,KAAK,CAAE,MAAM,CAAC,EAAE;YACf,OAAO,CAAC,KAAK,CAAE,MAAM,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AAED,iBAAS,OAAO,CAAC"}
@@ -0,0 +1,30 @@
1
+ import {CommandModule} from "yargs";
2
+ import {commit, MigrateOptions} from "../../tools/commit";
3
+ import {backup, BackupOptions} from "../../tools/backup";
4
+
5
+
6
+ const command:CommandModule<BackupOptions, BackupOptions> = {
7
+ command: "backup",
8
+ describe: "Backup current database",
9
+ builder: args => {
10
+ args.options( "schema", {
11
+ type: "string",
12
+ alias: "s"
13
+ }).options( "label", {
14
+ type: "string",
15
+ alias: "l",
16
+ })
17
+
18
+ return args;
19
+ },
20
+ handler:( argv) =>{
21
+ backup(argv).then(value => {
22
+ console.log( "Commited!")
23
+ }).catch( reason => {
24
+ console.error( reason)
25
+ })
26
+ }
27
+ }
28
+
29
+ export = command;
30
+
@@ -0,0 +1,7 @@
1
+ export interface BackupOptions {
2
+ schema?: string;
3
+ label?: string;
4
+ level?: number;
5
+ }
6
+ export declare function backup(opts: BackupOptions): Promise<void>;
7
+ //# sourceMappingURL=backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["backup.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,iBAgD/C"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // filename: src/tools/backup.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
33
+ });
34
+ };
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.backup = backup;
40
+ const fs = __importStar(require("node:fs"));
41
+ const Path = __importStar(require("node:path"));
42
+ const tar = __importStar(require("tar"));
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ const common_1 = require("./common");
45
+ const fs_1 = require("../utils/fs");
46
+ function backup(opts) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ var _a;
49
+ require('dotenv').config();
50
+ const { psm, psm_sql, driver, home } = yield (0, common_1.psmLockup)({ schema: opts.schema });
51
+ const migrator = driver.migrator({
52
+ url: process.env[psm.psm.url],
53
+ migrate: '', // Não necessário para backup
54
+ check: '',
55
+ core: fs.readFileSync(psm_sql).toString(),
56
+ });
57
+ // Executa dump
58
+ const dump = yield migrator.dump();
59
+ if (dump.error)
60
+ throw dump.error;
61
+ const moment = require('moment');
62
+ const instant = moment().format('YYYYMMDDHHmmss');
63
+ const label = opts.label ? ` - ${(0, fs_1.sanitizeLabel)(opts.label)}` : '';
64
+ const compressionLevel = (_a = opts.level) !== null && _a !== void 0 ? _a : 9; // nível de compressão padrão 9
65
+ // Caminho temporário do arquivo
66
+ const tmpDir = Path.join(home, `psm/backup/tmp-${instant}`);
67
+ fs.mkdirSync(tmpDir, { recursive: true });
68
+ const backupFile = Path.join(tmpDir, 'backup.sql');
69
+ fs.writeFileSync(backupFile, dump.output);
70
+ // Arquivo final .tar.gz
71
+ const archiveName = Path.join(home, `psm/backup/${instant}${label}.tar.gz`);
72
+ // Compacta **somente o arquivo backup.sql** (sem nível extra)
73
+ yield tar.c({
74
+ gzip: { level: compressionLevel },
75
+ file: archiveName,
76
+ cwd: tmpDir
77
+ }, ['backup.sql']);
78
+ console.log(chalk_1.default.green(`✔ Backup gerado: ${archiveName}`));
79
+ // Remove pasta temporária
80
+ fs.rmSync(tmpDir, { recursive: true, force: true });
81
+ // Adiciona o .tar.gz ao git
82
+ (0, fs_1.gitAddPath)(home || process.cwd(), archiveName);
83
+ });
84
+ }
85
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["backup.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBhC,wBAgDC;AA/DD,4CAA8B;AAC9B,gDAAkC;AAClC,yCAA2B;AAE3B,kDAA0B;AAE1B,qCAAmC;AACnC,oCAAsD;AAQtD,SAAsB,MAAM,CAAC,IAAmB;;;QAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAE3B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,kBAAS,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAG,6BAA6B;YAC3C,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;SAC5C,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC;QAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAA,kBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC,CAAC,CAAC,+BAA+B;QAEzE,gCAAgC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC5D,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACnD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,wBAAwB;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC;QAE5E,8DAA8D;QAC9D,MAAM,GAAG,CAAC,CAAC,CACP;YACI,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjC,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,MAAM;SACd,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC,CAAC;QAE5D,0BAA0B;QAC1B,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,4BAA4B;QAC5B,IAAA,eAAU,EAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;CAAA"}
@@ -0,0 +1,67 @@
1
+ // filename: src/tools/backup.ts
2
+
3
+ import * as fs from "node:fs";
4
+ import * as Path from "node:path";
5
+ import * as tar from "tar";
6
+ import * as cp from "node:child_process";
7
+ import chalk from "chalk";
8
+
9
+ import {psmLockup} from "./common";
10
+ import {gitAddPath, sanitizeLabel} from "../utils/fs";
11
+
12
+ export interface BackupOptions {
13
+ schema?: string;
14
+ label?: string;
15
+ level?: number; // novo parâmetro de compressão
16
+ }
17
+
18
+ export async function backup(opts: BackupOptions) {
19
+ require('dotenv').config();
20
+
21
+ const { psm, psm_sql, driver, home } = await psmLockup({ schema: opts.schema });
22
+
23
+ const migrator = driver.migrator({
24
+ url: process.env[psm.psm.url],
25
+ migrate: '', // Não necessário para backup
26
+ check: '',
27
+ core: fs.readFileSync(psm_sql).toString(),
28
+ });
29
+
30
+ // Executa dump
31
+ const dump = await migrator.dump();
32
+ if (dump.error) throw dump.error;
33
+
34
+ const moment = require('moment');
35
+ const instant = moment().format('YYYYMMDDHHmmss');
36
+ const label = opts.label ? ` - ${sanitizeLabel(opts.label)}` : '';
37
+
38
+ const compressionLevel = opts.level ?? 9; // nível de compressão padrão 9
39
+
40
+ // Caminho temporário do arquivo
41
+ const tmpDir = Path.join(home, `psm/backup/tmp-${instant}`);
42
+ fs.mkdirSync(tmpDir, { recursive: true });
43
+ const backupFile = Path.join(tmpDir, 'backup.sql');
44
+ fs.writeFileSync(backupFile, dump.output);
45
+
46
+ // Arquivo final .tar.gz
47
+ const archiveName = Path.join(home, `psm/backup/${instant}${label}.tar.gz`);
48
+
49
+ // Compacta **somente o arquivo backup.sql** (sem nível extra)
50
+ await tar.c(
51
+ {
52
+ gzip: { level: compressionLevel },
53
+ file: archiveName,
54
+ cwd: tmpDir
55
+ },
56
+ ['backup.sql']
57
+ );
58
+
59
+ console.log(chalk.green(`✔ Backup gerado: ${archiveName}`));
60
+
61
+ // Remove pasta temporária
62
+ fs.rmSync(tmpDir, { recursive: true, force: true });
63
+
64
+ // Adiciona o .tar.gz ao git
65
+ gitAddPath(home || process.cwd(), archiveName);
66
+ }
67
+
@@ -1 +1 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAC,MAAM,CAAA;IACd,QAAQ,CAAC,EAAC,MAAM,CAAA;IAChB,KAAK,CAAC,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,MAAM,CAAA;CAC5B;AACD,wBAAsB,MAAM,CAAC,IAAI,EAAC,cAAc,iBA+F/C"}
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAC,MAAM,CAAA;IACd,QAAQ,CAAC,EAAC,MAAM,CAAA;IAChB,KAAK,CAAC,EAAC,MAAM,CAAA;IACb,kBAAkB,EAAC,MAAM,CAAA;CAC5B;AACD,wBAAsB,MAAM,CAAC,IAAI,EAAC,cAAc,iBAuH/C"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // filename: src/tools/commit.ts
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -39,41 +40,12 @@ exports.commit = commit;
39
40
  const fs = __importStar(require("node:fs"));
40
41
  const Path = __importStar(require("node:path"));
41
42
  const yaml = __importStar(require("yaml"));
42
- const node_child_process_1 = require("node:child_process");
43
- const deploy_1 = require("./deploy");
43
+ const tar = __importStar(require("tar"));
44
44
  const chalk_1 = __importDefault(require("chalk"));
45
+ const cp = __importStar(require("node:child_process"));
46
+ const deploy_1 = require("./deploy");
45
47
  const common_1 = require("./common");
46
- function isGitRepo(cwd) {
47
- const res = (0, node_child_process_1.spawnSync)("git", ["rev-parse", "--is-inside-work-tree"], {
48
- cwd,
49
- encoding: "utf-8",
50
- });
51
- return res.status === 0 && res.stdout.trim() === "true";
52
- }
53
- function gitAddPath(cwd, targetPath) {
54
- var _a;
55
- try {
56
- if (!isGitRepo(cwd)) {
57
- console.log(chalk_1.default.gray("Repositório git não detectado; ignorando 'git add'."));
58
- return;
59
- }
60
- const relPath = Path.relative(cwd, targetPath);
61
- const addTarget = relPath.startsWith("..") ? targetPath : relPath;
62
- const addRes = (0, node_child_process_1.spawnSync)("git", ["add", addTarget], {
63
- cwd,
64
- stdio: "inherit",
65
- });
66
- if (addRes.status !== 0) {
67
- console.warn(chalk_1.default.yellow(`Aviso: 'git add' falhou para ${addTarget}.`));
68
- }
69
- else {
70
- console.log(chalk_1.default.green(`✔ Adicionado ao git: ${addTarget}`));
71
- }
72
- }
73
- catch (err) {
74
- console.warn(chalk_1.default.yellow("Aviso: não foi possível adicionar ao git."), (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : err);
75
- }
76
- }
48
+ const fs_1 = require("../utils/fs");
77
49
  function commit(opts) {
78
50
  return __awaiter(this, void 0, void 0, function* () {
79
51
  require('dotenv').config();
@@ -81,7 +53,7 @@ function commit(opts) {
81
53
  let command = opts["generate-command"];
82
54
  if (!command)
83
55
  command = "prisma generate";
84
- (0, node_child_process_1.spawnSync)("npx", [...command.split(" ")], {
56
+ cp.spawnSync("npx", [...command.split(" ")], {
85
57
  cwd: process.cwd()
86
58
  });
87
59
  }
@@ -128,6 +100,10 @@ function commit(opts) {
128
100
  });
129
101
  throw new Error("Migrate error: Check shadow failed!");
130
102
  }
103
+ const dump = yield migrator.dump();
104
+ if (dump.error) {
105
+ throw dump.error;
106
+ }
131
107
  result = yield migrator.migrate();
132
108
  if (!result.success) {
133
109
  console.error(result.error);
@@ -139,9 +115,9 @@ function commit(opts) {
139
115
  const moment = require('moment');
140
116
  let label = "";
141
117
  if (!!opts.label)
142
- label = ` - ${sanitizeLabel(opts.label)}`;
118
+ label = ` - ${(0, fs_1.sanitizeLabel)(opts.label)}`;
143
119
  let preview;
144
- const last = getLatestFolder(Path.join(home, `psm/revisions/schema`));
120
+ const last = (0, fs_1.getLatestFolder)(Path.join(home, `psm/revisions/schema`));
145
121
  if (!!last) {
146
122
  preview = yaml.parse(fs.readFileSync(Path.join(home, "psm/revisions/schema", last, "psm.yml")).toString());
147
123
  }
@@ -155,26 +131,19 @@ function commit(opts) {
155
131
  fs.mkdirSync(nextRev, { recursive: true });
156
132
  fs.renameSync(next, Path.join(nextRev, "migration.sql"));
157
133
  fs.writeFileSync(Path.join(nextRev, "psm.yml"), yaml.stringify(psm));
134
+ fs.writeFileSync(Path.join(nextRev, "backup.sql"), dump.output);
158
135
  fs.unlinkSync(check);
159
- gitAddPath(home || process.cwd(), nextRev);
136
+ const archiveName = Path.join(home || process.cwd(), `psm/revisions/schema/${psm.migration.instate}${label}.tar.gz`);
137
+ yield tar.c({
138
+ gzip: {
139
+ level: 9
140
+ },
141
+ file: archiveName,
142
+ cwd: Path.dirname(nextRev)
143
+ }, [Path.basename(nextRev)]);
144
+ console.log(chalk_1.default.green(`✔ Migration compactada: ${archiveName}`));
145
+ fs.rmSync(nextRev, { recursive: true, force: true });
146
+ (0, fs_1.gitAddPath)(home || process.cwd(), archiveName);
160
147
  });
161
148
  }
162
- // Função para obter a pasta com maior instante
163
- function getLatestFolder(basePath) {
164
- if (!fs.existsSync(basePath))
165
- return null;
166
- const dirs = fs.readdirSync(basePath, { withFileTypes: true })
167
- .filter(d => d.isDirectory())
168
- .map(d => d.name)
169
- .filter(name => /^\d{14}( - .+)?$/.test(name))
170
- .sort((a, b) => b.localeCompare(a));
171
- return dirs[0] || null;
172
- }
173
- function sanitizeLabel(label) {
174
- return label
175
- .replace(/[<>:"/\\|?*\x00-\x1F]/g, '') // remove caracteres inválidos no Windows
176
- .replace(/[\u{0080}-\u{FFFF}]/gu, '') // remove caracteres não ASCII (opcional)
177
- .trim()
178
- .replace(/\s+/g, ' '); // normaliza espaços
179
- }
180
149
  //# sourceMappingURL=commit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,19 @@
1
+ // filename: src/tools/commit.ts
2
+
1
3
  import * as fs from "node:fs";
2
4
  import * as Path from "node:path";
3
5
  import * as yaml from "yaml";
6
+ import * as tar from "tar";
7
+ import chalk from "chalk";
4
8
  import {PSMConfigFile} from "../configs";
5
- import { spawnSync } from "node:child_process";
9
+ import * as cp from "node:child_process";
6
10
  import {fetch} from "./deploy";
7
- import chalk from "chalk";
8
11
  import {psmLockup} from "./common";
12
+ import {getLatestFolder, gitAddPath, sanitizeLabel} from "../utils/fs";
9
13
 
10
- function isGitRepo(cwd: string) {
11
- const res = spawnSync("git", ["rev-parse", "--is-inside-work-tree"], {
12
- cwd,
13
- encoding: "utf-8",
14
- });
15
- return res.status === 0 && res.stdout.trim() === "true";
16
- }
17
14
 
18
- function gitAddPath(cwd: string, targetPath: string) {
19
- try {
20
- if (!isGitRepo(cwd)) {
21
- console.log(chalk.gray("Repositório git não detectado; ignorando 'git add'."));
22
- return;
23
- }
24
15
 
25
- const relPath = Path.relative(cwd, targetPath);
26
- const addTarget = relPath.startsWith("..") ? targetPath : relPath;
27
16
 
28
- const addRes = spawnSync("git", ["add", addTarget], {
29
- cwd,
30
- stdio: "inherit",
31
- });
32
-
33
- if (addRes.status !== 0) {
34
- console.warn(chalk.yellow(`Aviso: 'git add' falhou para ${addTarget}.`));
35
- } else {
36
- console.log(chalk.green(`✔ Adicionado ao git: ${addTarget}`));
37
- }
38
- } catch (err: any) {
39
- console.warn(
40
- chalk.yellow("Aviso: não foi possível adicionar ao git."),
41
- err?.message ?? err,
42
- );
43
- }
44
- }
45
17
 
46
18
 
47
19
 
@@ -56,7 +28,7 @@ export async function commit(opts:MigrateOptions ) {
56
28
  if( opts.generate ) {
57
29
  let command = opts["generate-command"];
58
30
  if( !command) command = "prisma generate"
59
- spawnSync( "npx", [ ...command.split(" ") ], {
31
+ cp.spawnSync( "npx", [ ...command.split(" ") ], {
60
32
  cwd: process.cwd()
61
33
  });
62
34
  }
@@ -115,6 +87,10 @@ export async function commit(opts:MigrateOptions ) {
115
87
  throw new Error( "Migrate error: Check shadow failed!" );
116
88
  }
117
89
 
90
+ const dump = await migrator.dump();
91
+ if( dump.error ){
92
+ throw dump.error;
93
+ }
118
94
 
119
95
  result = await migrator.migrate();
120
96
  if( !result.success ) {
@@ -143,27 +119,27 @@ export async function commit(opts:MigrateOptions ) {
143
119
 
144
120
  fs.mkdirSync( nextRev, { recursive: true });
145
121
  fs.renameSync( next, Path.join( nextRev, "migration.sql" ) );
146
- fs.writeFileSync( Path.join( nextRev, "psm.yml" ), yaml.stringify( psm ) );
122
+ fs.writeFileSync( Path.join( nextRev, "psm.yml" ), yaml.stringify( psm ) );
123
+ fs.writeFileSync( Path.join(nextRev, "backup.sql"), dump.output );
124
+
147
125
  fs.unlinkSync( check );
148
- gitAddPath(home || process.cwd(), nextRev);
149
- }
150
126
 
127
+ const archiveName = Path.join(home || process.cwd(), `psm/revisions/schema/${psm.migration.instate}${label}.tar.gz`);
151
128
 
152
- // Função para obter a pasta com maior instante
153
- function getLatestFolder(basePath:string) {
154
- if (!fs.existsSync(basePath)) return null;
155
- const dirs = fs.readdirSync(basePath, { withFileTypes: true })
156
- .filter(d => d.isDirectory())
157
- .map(d => d.name)
158
- .filter(name => /^\d{14}( - .+)?$/.test(name))
159
- .sort((a, b) => b.localeCompare(a));
160
- return dirs[0] || null;
161
- }
129
+ await tar.c(
130
+ {
131
+ gzip: {
132
+ level: 9
133
+ },
134
+ file: archiveName,
135
+ cwd: Path.dirname(nextRev)
136
+ },
137
+ [Path.basename(nextRev)]
138
+ );
139
+
140
+ console.log(chalk.green(`✔ Migration compactada: ${archiveName}`));
141
+
142
+ fs.rmSync(nextRev, { recursive: true, force: true });
162
143
 
163
- function sanitizeLabel( label:string ) {
164
- return label
165
- .replace(/[<>:"/\\|?*\x00-\x1F]/g, '') // remove caracteres inválidos no Windows
166
- .replace(/[\u{0080}-\u{FFFF}]/gu, '') // remove caracteres não ASCII (opcional)
167
- .trim()
168
- .replace(/\s+/g, ' '); // normaliza espaços
144
+ gitAddPath(home || process.cwd(), archiveName );
169
145
  }
@@ -0,0 +1,5 @@
1
+ export declare function sanitizeLabel(label: string): string;
2
+ export declare function getLatestFolder(basePath: string): string;
3
+ export declare function isGitRepo(cwd: string): boolean;
4
+ export declare function gitAddPath(cwd: string, targetPath: string): void;
5
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["fs.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAE,KAAK,EAAC,MAAM,UAM1C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAC,MAAM,UAQ9C;AAGD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,WAMpC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QA0BzD"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.sanitizeLabel = sanitizeLabel;
30
+ exports.getLatestFolder = getLatestFolder;
31
+ exports.isGitRepo = isGitRepo;
32
+ exports.gitAddPath = gitAddPath;
33
+ const fs = __importStar(require("node:fs"));
34
+ const chalk_1 = __importDefault(require("chalk"));
35
+ const cp = __importStar(require("node:child_process"));
36
+ const Path = __importStar(require("node:path"));
37
+ function sanitizeLabel(label) {
38
+ return label
39
+ .replace(/[<>:"/\\|?*\x00-\x1F]/g, '') // remove caracteres inválidos no Windows
40
+ .replace(/[\u{0080}-\u{FFFF}]/gu, '') // remove caracteres não ASCII (opcional)
41
+ .trim()
42
+ .replace(/\s+/g, ' '); // normaliza espaços
43
+ }
44
+ function getLatestFolder(basePath) {
45
+ if (!fs.existsSync(basePath))
46
+ return null;
47
+ const dirs = fs.readdirSync(basePath, { withFileTypes: true })
48
+ .filter(d => d.isDirectory())
49
+ .map(d => d.name)
50
+ .filter(name => /^\d{14}( - .+)?$/.test(name))
51
+ .sort((a, b) => b.localeCompare(a));
52
+ return dirs[0] || null;
53
+ }
54
+ function isGitRepo(cwd) {
55
+ const res = cp.spawnSync("git", ["rev-parse", "--is-inside-work-tree"], {
56
+ cwd,
57
+ encoding: "utf-8",
58
+ });
59
+ return res.status === 0 && res.stdout.trim() === "true";
60
+ }
61
+ function gitAddPath(cwd, targetPath) {
62
+ var _a;
63
+ try {
64
+ if (!isGitRepo(cwd)) {
65
+ console.log(chalk_1.default.gray("Repositório git não detectado; ignorando 'git add'."));
66
+ return;
67
+ }
68
+ const relPath = Path.relative(cwd, targetPath);
69
+ const addTarget = relPath.startsWith("..") ? targetPath : relPath;
70
+ const addRes = cp.spawnSync("git", ["add", addTarget], {
71
+ cwd,
72
+ stdio: "inherit",
73
+ });
74
+ if (addRes.status !== 0) {
75
+ console.warn(chalk_1.default.yellow(`Aviso: 'git add' falhou para ${addTarget}.`));
76
+ }
77
+ else {
78
+ console.log(chalk_1.default.green(`✔ Adicionado ao git: ${addTarget}`));
79
+ }
80
+ }
81
+ catch (err) {
82
+ console.warn(chalk_1.default.yellow("Aviso: não foi possível adicionar ao git."), (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : err);
83
+ }
84
+ }
85
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import * as fs from "node:fs"
2
+ import chalk from "chalk";
3
+ import * as cp from "node:child_process";
4
+ import * as Path from "node:path";
5
+
6
+ export function sanitizeLabel( label:string ) {
7
+ return label
8
+ .replace(/[<>:"/\\|?*\x00-\x1F]/g, '') // remove caracteres inválidos no Windows
9
+ .replace(/[\u{0080}-\u{FFFF}]/gu, '') // remove caracteres não ASCII (opcional)
10
+ .trim()
11
+ .replace(/\s+/g, ' '); // normaliza espaços
12
+ }
13
+
14
+ export function getLatestFolder(basePath:string) {
15
+ if (!fs.existsSync(basePath)) return null;
16
+ const dirs = fs.readdirSync(basePath, { withFileTypes: true })
17
+ .filter(d => d.isDirectory())
18
+ .map(d => d.name)
19
+ .filter(name => /^\d{14}( - .+)?$/.test(name))
20
+ .sort((a, b) => b.localeCompare(a));
21
+ return dirs[0] || null;
22
+ }
23
+
24
+
25
+ export function isGitRepo(cwd: string) {
26
+ const res = cp.spawnSync("git", ["rev-parse", "--is-inside-work-tree"], {
27
+ cwd,
28
+ encoding: "utf-8",
29
+ });
30
+ return res.status === 0 && res.stdout.trim() === "true";
31
+ }
32
+
33
+ export function gitAddPath(cwd: string, targetPath: string) {
34
+ try {
35
+ if (!isGitRepo(cwd)) {
36
+ console.log(chalk.gray("Repositório git não detectado; ignorando 'git add'."));
37
+ return;
38
+ }
39
+
40
+ const relPath = Path.relative(cwd, targetPath);
41
+ const addTarget = relPath.startsWith("..") ? targetPath : relPath;
42
+
43
+ const addRes = cp.spawnSync("git", ["add", addTarget], {
44
+ cwd,
45
+ stdio: "inherit",
46
+ });
47
+
48
+ if (addRes.status !== 0) {
49
+ console.warn(chalk.yellow(`Aviso: 'git add' falhou para ${addTarget}.`));
50
+ } else {
51
+ console.log(chalk.green(`✔ Adicionado ao git: ${addTarget}`));
52
+ }
53
+ } catch (err: any) {
54
+ console.warn(
55
+ chalk.yellow("Aviso: não foi possível adicionar ao git."),
56
+ err?.message ?? err,
57
+ );
58
+ }
59
+ }