@trendify/cli 0.1.14 → 0.1.16

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/dist/cli.entry.js CHANGED
@@ -77,12 +77,6 @@ function mountApp(feedback = null) {
77
77
  ].join('\n'));
78
78
  const result = await runCliSelfUpdate(update.packageName, update.latestVersion);
79
79
  if (result.ok) {
80
- process.stdout.write([
81
- '',
82
- `CLI atualizada com sucesso para v${update.latestVersion}.`,
83
- 'Feche esta execucao e rode o comando novamente para iniciar a nova versao com o terminal limpo.',
84
- '',
85
- ].join('\n'));
86
80
  process.exit(0);
87
81
  }
88
82
  process.stdout.write(`\nFalha ao atualizar automaticamente: ${result.error}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-update.service.d.ts","sourceRoot":"","sources":["../../../src/shared/services/cli-update.service.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AA4CF,wBAAgB,uBAAuB,IAAI,wBAAwB,CAElE;AA2ID,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6BvE;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAsB/G"}
1
+ {"version":3,"file":"cli-update.service.d.ts","sourceRoot":"","sources":["../../../src/shared/services/cli-update.service.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACnB,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AA4CF,wBAAgB,uBAAuB,IAAI,wBAAwB,CAElE;AAgOD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6BvE;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwB/G"}
@@ -142,6 +142,84 @@ async function runCommandWithInheritedStdio(command, args) {
142
142
  });
143
143
  });
144
144
  }
145
+ async function restartCli() {
146
+ const entrypoint = process.argv[1];
147
+ if (!entrypoint) {
148
+ throw new Error('Nao foi possivel identificar o entrypoint atual da CLI para reiniciar o processo.');
149
+ }
150
+ const helperScript = `
151
+ const { spawn } = require('node:child_process');
152
+
153
+ const parentPid = Number(process.argv[1]);
154
+ const nodePath = process.argv[2];
155
+ const execArgv = JSON.parse(process.argv[3]);
156
+ const cliArgv = JSON.parse(process.argv[4]);
157
+
158
+ const canSignalParent = Number.isInteger(parentPid) && parentPid > 0;
159
+
160
+ const isParentAlive = () => {
161
+ if (!canSignalParent) {
162
+ return false;
163
+ }
164
+
165
+ try {
166
+ process.kill(parentPid, 0);
167
+ return true;
168
+ } catch (error) {
169
+ return false;
170
+ }
171
+ };
172
+
173
+ const launchCli = () => {
174
+ const child = spawn(nodePath, [...execArgv, ...cliArgv], {
175
+ env: process.env,
176
+ stdio: 'inherit',
177
+ });
178
+
179
+ child.on('error', (error) => {
180
+ process.stderr.write(\`Falha ao reiniciar a CLI atualizada: \${error.message}\\n\`);
181
+ process.exit(1);
182
+ });
183
+
184
+ child.on('spawn', () => {
185
+ process.exit(0);
186
+ });
187
+ };
188
+
189
+ const waitForParentToExit = () => {
190
+ if (!isParentAlive()) {
191
+ setTimeout(launchCli, 150);
192
+ return;
193
+ }
194
+
195
+ setTimeout(waitForParentToExit, 100);
196
+ };
197
+
198
+ waitForParentToExit();
199
+ `.trim();
200
+ const helperArgs = [
201
+ '-e',
202
+ helperScript,
203
+ String(process.pid),
204
+ process.execPath,
205
+ JSON.stringify(process.execArgv),
206
+ JSON.stringify([entrypoint, ...process.argv.slice(2)]),
207
+ ];
208
+ await new Promise((resolve, reject) => {
209
+ const child = spawn(process.execPath, helperArgs, {
210
+ detached: true,
211
+ env: process.env,
212
+ stdio: 'inherit',
213
+ });
214
+ child.on('error', (error) => {
215
+ reject(error);
216
+ });
217
+ child.on('spawn', () => {
218
+ child.unref();
219
+ resolve();
220
+ });
221
+ });
222
+ }
145
223
  export async function checkForCliUpdate() {
146
224
  const { packageName, packageVersion } = readInstalledPackageMetadata();
147
225
  try {
@@ -183,6 +261,7 @@ export async function runCliSelfUpdate(packageName, latestVersion) {
183
261
  ok: false,
184
262
  };
185
263
  }
264
+ await restartCli();
186
265
  return { ok: true };
187
266
  }
188
267
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trendify/cli",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "CLI do Trendify para descoberta de temas e fluxos de conta.",
5
5
  "type": "module",
6
6
  "main": "dist/cli.entry.js",