bkper 4.10.2 → 4.10.3

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,6 +1,17 @@
1
+ import { runStartupMaintenance } from './startup-maintenance.js';
1
2
  type ReloadableResourceLoader = {
2
3
  reload(): Promise<void>;
3
4
  };
5
+ type NotificationType = 'info' | 'warning' | 'error';
6
+ type SessionStartContext = {
7
+ ui: {
8
+ notify: (message: string, type?: NotificationType) => void;
9
+ };
10
+ };
11
+ type SessionStartHandler = (event: unknown, context: SessionStartContext) => Promise<void>;
12
+ type StartupExtensionAPI = {
13
+ on: (event: 'session_start', handler: SessionStartHandler) => void;
14
+ };
4
15
  export interface AgentModeDependencies {
5
16
  createResourceLoader: () => ReloadableResourceLoader;
6
17
  createSession: (options: {
@@ -13,6 +24,7 @@ export interface AgentModeDependencies {
13
24
  run(): Promise<void>;
14
25
  };
15
26
  }
27
+ export declare function registerBkperAgentStartupExtension(pi: StartupExtensionAPI, startupMaintenance?: typeof runStartupMaintenance): void;
16
28
  export declare function runAgentMode(dependencies?: AgentModeDependencies): Promise<void>;
17
29
  export {};
18
30
  //# sourceMappingURL=run-agent-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../src/agent/run-agent-mode.ts"],"names":[],"mappings":"AASA,KAAK,wBAAwB,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;IACrD,aAAa,EAAE,CAAC,OAAO,EAAE;QACrB,cAAc,EAAE,wBAAwB,CAAC;KAC5C,KAAK,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC,CAAC;IACH,qBAAqB,EAAE,CACnB,OAAO,EAAE,OAAO,EAChB,oBAAoB,CAAC,EAAE,MAAM,KAC5B;QACD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;CACL;AA4BD,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAmD,GAClE,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"run-agent-mode.d.ts","sourceRoot":"","sources":["../../src/agent/run-agent-mode.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,KAAK,wBAAwB,GAAG;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,KAAK,mBAAmB,GAAG;IACvB,EAAE,EAAE;QACA,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;KAC9D,CAAC;CACL,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3F,KAAK,mBAAmB,GAAG;IACvB,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtE,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;IACrD,aAAa,EAAE,CAAC,OAAO,EAAE;QACrB,cAAc,EAAE,wBAAwB,CAAC;KAC5C,KAAK,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC,CAAC;IACH,qBAAqB,EAAE,CACnB,OAAO,EAAE,OAAO,EAChB,oBAAoB,CAAC,EAAE,MAAM,KAC5B;QACD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;CACL;AAED,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,mBAAmB,EACvB,kBAAkB,GAAE,OAAO,qBAA6C,GACzE,IAAI,CAeN;AA0BD,wBAAsB,YAAY,CAC9B,YAAY,GAAE,qBAAmD,GAClE,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -8,7 +8,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { createAgentSession, DefaultResourceLoader, InteractiveMode, } from '@mariozechner/pi-coding-agent';
11
+ import { runStartupMaintenance } from './startup-maintenance.js';
11
12
  import { getBkperAgentSystemPrompt } from './system-prompt.js';
13
+ export function registerBkperAgentStartupExtension(pi, startupMaintenance = runStartupMaintenance) {
14
+ let startupMaintenanceTriggered = false;
15
+ pi.on('session_start', (_event, ctx) => __awaiter(this, void 0, void 0, function* () {
16
+ ctx.ui.notify('Bkper Agent ready.', 'info');
17
+ if (startupMaintenanceTriggered) {
18
+ return;
19
+ }
20
+ startupMaintenanceTriggered = true;
21
+ void startupMaintenance({
22
+ notify: (message, type) => ctx.ui.notify(message, type),
23
+ });
24
+ }));
25
+ }
12
26
  function createDefaultDependencies() {
13
27
  return {
14
28
  createResourceLoader: () => new DefaultResourceLoader({
@@ -16,9 +30,7 @@ function createDefaultDependencies() {
16
30
  appendSystemPromptOverride: () => [],
17
31
  extensionFactories: [
18
32
  (pi) => {
19
- pi.on('session_start', (_event, ctx) => __awaiter(this, void 0, void 0, function* () {
20
- ctx.ui.notify('Bkper Agent ready.', 'info');
21
- }));
33
+ registerBkperAgentStartupExtension(pi);
22
34
  },
23
35
  ],
24
36
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../src/agent/run-agent-mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAGlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAsB/D,SAAS,yBAAyB;IAC9B,OAAO;QACH,oBAAoB,EAAE,GAAG,EAAE,CACvB,IAAI,qBAAqB,CAAC;YACtB,oBAAoB,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;YACvD,0BAA0B,EAAE,GAAG,EAAE,CAAC,EAAE;YACpC,kBAAkB,EAAE;gBAChB,CAAC,EAAgB,EAAE,EAAE;oBACjB,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAO,MAAM,EAAE,GAAG,EAAE,EAAE;wBACzC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;oBAChD,CAAC,CAAA,CAAC,CAAC;gBACP,CAAC;aACJ;SACJ,CAAC;QACN,aAAa,EAAE,KAA2B,EAAE,0CAAtB,EAAE,cAAc,EAAE;YACpC,OAAA,kBAAkB,CAAC;gBACf,cAAc,EACV,cAA0E;aACjF,CAAC,CAAA;UAAA;QACN,qBAAqB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CACrD,IAAI,eAAe,CAAC,OAA2D,EAAE;YAC7E,oBAAoB;SACvB,CAAC;KACT,CAAC;AACN,CAAC;AAED,MAAM,UAAgB,YAAY;yDAC9B,eAAsC,yBAAyB,EAAE;;;QAEjE,YAAA,OAAO,CAAC,GAAG,EAAC,qBAAqB,uCAArB,qBAAqB,GAAK,GAAG,EAAC;QAE1C,MAAM,cAAc,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;QAC3D,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;QAE9B,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,YAAY,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE/E,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;CAAA"}
1
+ {"version":3,"file":"run-agent-mode.js","sourceRoot":"","sources":["../../src/agent/run-agent-mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAGlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAoC/D,MAAM,UAAU,kCAAkC,CAC9C,EAAuB,EACvB,qBAAmD,qBAAqB;IAExE,IAAI,2BAA2B,GAAG,KAAK,CAAC;IAExC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAO,MAAM,EAAE,GAAG,EAAE,EAAE;QACzC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAE5C,IAAI,2BAA2B,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,2BAA2B,GAAG,IAAI,CAAC;QAEnC,KAAK,kBAAkB,CAAC;YACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;AACP,CAAC;AAED,SAAS,yBAAyB;IAC9B,OAAO;QACH,oBAAoB,EAAE,GAAG,EAAE,CACvB,IAAI,qBAAqB,CAAC;YACtB,oBAAoB,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;YACvD,0BAA0B,EAAE,GAAG,EAAE,CAAC,EAAE;YACpC,kBAAkB,EAAE;gBAChB,CAAC,EAAgB,EAAE,EAAE;oBACjB,kCAAkC,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC;QACN,aAAa,EAAE,KAA2B,EAAE,0CAAtB,EAAE,cAAc,EAAE;YACpC,OAAA,kBAAkB,CAAC;gBACf,cAAc,EACV,cAA0E;aACjF,CAAC,CAAA;UAAA;QACN,qBAAqB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,EAAE,CACrD,IAAI,eAAe,CAAC,OAA2D,EAAE;YAC7E,oBAAoB;SACvB,CAAC;KACT,CAAC;AACN,CAAC;AAED,MAAM,UAAgB,YAAY;yDAC9B,eAAsC,yBAAyB,EAAE;;;QAEjE,YAAA,OAAO,CAAC,GAAG,EAAC,qBAAqB,uCAArB,qBAAqB,GAAK,GAAG,EAAC;QAE1C,MAAM,cAAc,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC;QAC3D,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;QAE9B,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,YAAY,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE/E,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;CAAA"}
@@ -1,5 +1,12 @@
1
+ import { type AvailableUpgrade, type InstallMethod } from '../upgrade/index.js';
2
+ type NotificationType = 'info' | 'warning' | 'error';
3
+ export interface StartupMaintenanceCallbacks {
4
+ notify: (message: string, type?: NotificationType) => void;
5
+ }
1
6
  export interface StartupMaintenanceDependencies {
2
- autoUpgrade: () => Promise<void>;
7
+ getAvailableUpgrade: () => Promise<AvailableUpgrade | null>;
8
+ startDetachedUpgrade: (method: InstallMethod, version: string) => void;
3
9
  }
4
- export declare function runStartupMaintenance(dependencies?: StartupMaintenanceDependencies): void;
10
+ export declare function runStartupMaintenance(callbacks: StartupMaintenanceCallbacks, dependencies?: StartupMaintenanceDependencies): Promise<void>;
11
+ export {};
5
12
  //# sourceMappingURL=startup-maintenance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,8BAA8B;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAQD,wBAAgB,qBAAqB,CACjC,YAAY,GAAE,8BAA4D,GAC3E,IAAI,CAIN"}
1
+ {"version":3,"file":"startup-maintenance.d.ts","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACrB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,8BAA8B;IAC3C,mBAAmB,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC5D,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1E;AAaD,wBAAsB,qBAAqB,CACvC,SAAS,EAAE,2BAA2B,EACtC,YAAY,GAAE,8BAA4D,GAC3E,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -1,12 +1,48 @@
1
- import { autoUpgrade } from '../upgrade/index.js';
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { getAvailableUpgrade, startDetachedUpgrade, } from '../upgrade/index.js';
2
11
  function createDefaultDependencies() {
3
12
  return {
4
- autoUpgrade,
13
+ getAvailableUpgrade,
14
+ startDetachedUpgrade,
5
15
  };
6
16
  }
7
- export function runStartupMaintenance(dependencies = createDefaultDependencies()) {
8
- if (!process.env.BKPER_DISABLE_AUTOUPDATE) {
9
- dependencies.autoUpgrade().catch(() => { });
10
- }
17
+ function getManualUpgradeMessage(latest) {
18
+ return `bkper ${latest} available. Run bkper upgrade after exit.`;
19
+ }
20
+ export function runStartupMaintenance(callbacks_1) {
21
+ return __awaiter(this, arguments, void 0, function* (callbacks, dependencies = createDefaultDependencies()) {
22
+ if (process.env.BKPER_DISABLE_AUTOUPDATE) {
23
+ return;
24
+ }
25
+ try {
26
+ const availableUpgrade = yield dependencies.getAvailableUpgrade();
27
+ if (!availableUpgrade) {
28
+ return;
29
+ }
30
+ if (availableUpgrade.method === 'unknown') {
31
+ callbacks.notify(getManualUpgradeMessage(availableUpgrade.latest), 'warning');
32
+ return;
33
+ }
34
+ try {
35
+ dependencies.startDetachedUpgrade(availableUpgrade.method, availableUpgrade.latest);
36
+ callbacks.notify(`Updating bkper to ${availableUpgrade.latest} in background. ` +
37
+ `Restart later to use it.`, 'info');
38
+ }
39
+ catch (_a) {
40
+ callbacks.notify(getManualUpgradeMessage(availableUpgrade.latest), 'warning');
41
+ }
42
+ }
43
+ catch (_b) {
44
+ // Silent failure — never break the TUI
45
+ }
46
+ });
11
47
  }
12
48
  //# sourceMappingURL=startup-maintenance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMlD,SAAS,yBAAyB;IAC9B,OAAO;QACH,WAAW;KACd,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,eAA+C,yBAAyB,EAAE;IAE1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QACxC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"startup-maintenance.js","sourceRoot":"","sources":["../../src/agent/startup-maintenance.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,mBAAmB,EACnB,oBAAoB,GAGvB,MAAM,qBAAqB,CAAC;AAa7B,SAAS,yBAAyB;IAC9B,OAAO;QACH,mBAAmB;QACnB,oBAAoB;KACvB,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC3C,OAAO,SAAS,MAAM,2CAA2C,CAAC;AACtE,CAAC;AAED,MAAM,UAAgB,qBAAqB;yDACvC,SAAsC,EACtC,eAA+C,yBAAyB,EAAE;QAE1E,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACvC,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,mBAAmB,EAAE,CAAC;YAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,OAAO;YACX,CAAC;YAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC9E,OAAO;YACX,CAAC;YAED,IAAI,CAAC;gBACD,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpF,SAAS,CAAC,MAAM,CACZ,qBAAqB,gBAAgB,CAAC,MAAM,kBAAkB;oBAC1D,0BAA0B,EAC9B,MAAM,CACT,CAAC;YACN,CAAC;YAAC,WAAM,CAAC;gBACL,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QAAC,WAAM,CAAC;YACL,uCAAuC;QAC3C,CAAC;IACL,CAAC;CAAA"}
package/lib/cli.js CHANGED
@@ -23,11 +23,9 @@ import { registerAgentCommands } from './commands/agent-command.js';
23
23
  import { VERSION, autoUpgrade } from './upgrade/index.js';
24
24
  import { shouldStartAgentMode } from './agent/cli-dispatch.js';
25
25
  import { runAgentMode } from './agent/run-agent-mode.js';
26
- import { runStartupMaintenance } from './agent/startup-maintenance.js';
27
26
  function main() {
28
27
  return __awaiter(this, void 0, void 0, function* () {
29
28
  if (shouldStartAgentMode(process.argv)) {
30
- runStartupMaintenance();
31
29
  yield runAgentMode();
32
30
  return;
33
31
  }
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,SAAe,IAAI;;QACf,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,qBAAqB,EAAE,CAAC;YACxB,MAAM,YAAY,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,UAAU;QACV,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAErE,gBAAgB;QAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9B,oBAAoB;QACpB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEpC,uBAAuB;QACvB,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/B,kBAAkB;QAClB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACxC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,SAAe,IAAI;;QACf,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,UAAU;QACV,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;QAErE,gBAAgB;QAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9B,oBAAoB;QACpB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACrC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEpC,uBAAuB;QACvB,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/B,kBAAkB;QAClB,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,4EAA4E;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACxC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- export { VERSION } from './installation.js';
2
- export { autoUpgrade, foregroundUpgrade, isNewerVersion } from './upgrade.js';
3
- export { detectMethod, fetchLatestVersion, getUpgradeCommand } from './installation.js';
1
+ export { VERSION, detectMethod, detectMethodAsync, fetchLatestVersion, getUpgradeCommand, startDetachedUpgrade, } from './installation.js';
2
+ export { autoUpgrade, foregroundUpgrade, getAvailableUpgrade, isNewerVersion, } from './upgrade.js';
4
3
  export type { InstallMethod } from './installation.js';
4
+ export type { AvailableUpgrade } from './upgrade.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upgrade/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upgrade/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,4 +1,3 @@
1
- export { VERSION } from './installation.js';
2
- export { autoUpgrade, foregroundUpgrade, isNewerVersion } from './upgrade.js';
3
- export { detectMethod, fetchLatestVersion, getUpgradeCommand } from './installation.js';
1
+ export { VERSION, detectMethod, detectMethodAsync, fetchLatestVersion, getUpgradeCommand, startDetachedUpgrade, } from './installation.js';
2
+ export { autoUpgrade, foregroundUpgrade, getAvailableUpgrade, isNewerVersion, } from './upgrade.js';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/upgrade/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/upgrade/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACjB,MAAM,cAAc,CAAC"}
@@ -2,11 +2,17 @@
2
2
  export declare const VERSION: string;
3
3
  /** Supported installation methods. */
4
4
  export type InstallMethod = 'npm' | 'bun' | 'yarn' | 'unknown';
5
+ export type CommandRunner = (command: string, timeoutMs: number) => Promise<string>;
6
+ export type DetachedCommandStarter = (command: string) => void;
5
7
  /**
6
8
  * Detects how the CLI was installed by checking global package lists
7
9
  * for each supported package manager.
8
10
  */
9
11
  export declare function detectMethod(): InstallMethod;
12
+ /**
13
+ * Async version of installation method detection to avoid blocking the event loop.
14
+ */
15
+ export declare function detectMethodAsync(commandRunner?: CommandRunner): Promise<InstallMethod>;
10
16
  /**
11
17
  * Fetches the latest published version from the npm registry.
12
18
  * Returns null if the fetch fails.
@@ -21,4 +27,8 @@ export declare function getUpgradeCommand(method: InstallMethod, version: string
21
27
  * Throws if the upgrade command fails.
22
28
  */
23
29
  export declare function executeUpgrade(method: InstallMethod, version: string): void;
30
+ /**
31
+ * Starts the upgrade in a detached background process.
32
+ */
33
+ export declare function startDetachedUpgrade(method: InstallMethod, version: string, commandStarter?: DetachedCommandStarter): void;
24
34
  //# sourceMappingURL=installation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/upgrade/installation.ts"],"names":[],"mappings":"AAMA,4CAA4C;AAC5C,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC;AAK3C,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAmB5C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWvF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAS3E"}
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/upgrade/installation.ts"],"names":[],"mappings":"AAMA,4CAA4C;AAC5C,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC;AAK3C,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAwC/D;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAkB5C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,aAAa,GAAE,aAAoC,GACpD,OAAO,CAAC,aAAa,CAAC,CAaxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWvF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAS3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,sBAAsD,GACvE,IAAI,CAUN"}
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { execSync } from 'child_process';
10
+ import { exec, execSync, spawn } from 'child_process';
11
11
  import { createRequire } from 'module';
12
12
  const require = createRequire(import.meta.url);
13
13
  const pkg = require('../../package.json');
@@ -15,19 +15,52 @@ const pkg = require('../../package.json');
15
15
  export const VERSION = pkg.version;
16
16
  /** Package name on npm. */
17
17
  const PACKAGE_NAME = 'bkper';
18
+ const defaultCommandRunner = (command, timeoutMs) => {
19
+ return new Promise((resolve, reject) => {
20
+ exec(command, { timeout: timeoutMs, windowsHide: true }, (error, stdout) => {
21
+ if (error) {
22
+ reject(error);
23
+ return;
24
+ }
25
+ resolve(stdout);
26
+ });
27
+ });
28
+ };
29
+ const defaultDetachedCommandStarter = command => {
30
+ const child = spawn(command, [], {
31
+ shell: true,
32
+ detached: true,
33
+ stdio: 'ignore',
34
+ windowsHide: true,
35
+ });
36
+ child.unref();
37
+ };
38
+ function getLatestVersionOverride() {
39
+ return process.env.BKPER_AUTOUPDATE_LATEST_VERSION || undefined;
40
+ }
41
+ function getUpgradeCommandOverride() {
42
+ return process.env.BKPER_AUTOUPDATE_COMMAND || undefined;
43
+ }
44
+ function getDetectionChecks() {
45
+ return [
46
+ { method: 'bun', command: 'bun pm ls -g' },
47
+ { method: 'npm', command: `npm list -g ${PACKAGE_NAME} --depth=0` },
48
+ { method: 'yarn', command: 'yarn global list --depth=0' },
49
+ ];
50
+ }
18
51
  /**
19
52
  * Detects how the CLI was installed by checking global package lists
20
53
  * for each supported package manager.
21
54
  */
22
55
  export function detectMethod() {
23
- const checks = [
24
- { method: 'bun', command: `bun pm ls -g 2>/dev/null` },
25
- { method: 'npm', command: `npm list -g ${PACKAGE_NAME} --depth=0 2>/dev/null` },
26
- { method: 'yarn', command: `yarn global list --depth=0 2>/dev/null` },
27
- ];
28
- for (const { method, command } of checks) {
56
+ for (const { method, command } of getDetectionChecks()) {
29
57
  try {
30
- const output = execSync(command, { encoding: 'utf-8', timeout: 10000 });
58
+ const output = execSync(command, {
59
+ encoding: 'utf-8',
60
+ timeout: 10000,
61
+ stdio: ['ignore', 'pipe', 'ignore'],
62
+ windowsHide: true,
63
+ });
31
64
  if (output.includes(PACKAGE_NAME)) {
32
65
  return method;
33
66
  }
@@ -38,6 +71,25 @@ export function detectMethod() {
38
71
  }
39
72
  return 'unknown';
40
73
  }
74
+ /**
75
+ * Async version of installation method detection to avoid blocking the event loop.
76
+ */
77
+ export function detectMethodAsync() {
78
+ return __awaiter(this, arguments, void 0, function* (commandRunner = defaultCommandRunner) {
79
+ for (const { method, command } of getDetectionChecks()) {
80
+ try {
81
+ const output = yield commandRunner(command, 10000);
82
+ if (output.includes(PACKAGE_NAME)) {
83
+ return method;
84
+ }
85
+ }
86
+ catch (_a) {
87
+ // Package manager not available or command failed — try next
88
+ }
89
+ }
90
+ return 'unknown';
91
+ });
92
+ }
41
93
  /**
42
94
  * Fetches the latest published version from the npm registry.
43
95
  * Returns null if the fetch fails.
@@ -45,6 +97,10 @@ export function detectMethod() {
45
97
  export function fetchLatestVersion() {
46
98
  return __awaiter(this, void 0, void 0, function* () {
47
99
  var _a;
100
+ const latestVersionOverride = getLatestVersionOverride();
101
+ if (latestVersionOverride) {
102
+ return latestVersionOverride;
103
+ }
48
104
  try {
49
105
  const response = yield fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
50
106
  headers: { Accept: 'application/json' },
@@ -85,6 +141,18 @@ export function executeUpgrade(method, version) {
85
141
  throw new Error(`Unable to auto-upgrade: unknown installation method. ` +
86
142
  `Please upgrade manually: npm install -g ${PACKAGE_NAME}@${version}`);
87
143
  }
88
- execSync(command, { stdio: 'pipe', timeout: 60000 });
144
+ execSync(command, { stdio: 'pipe', timeout: 60000, windowsHide: true });
145
+ }
146
+ /**
147
+ * Starts the upgrade in a detached background process.
148
+ */
149
+ export function startDetachedUpgrade(method, version, commandStarter = defaultDetachedCommandStarter) {
150
+ var _a;
151
+ const command = (_a = getUpgradeCommandOverride()) !== null && _a !== void 0 ? _a : getUpgradeCommand(method, version);
152
+ if (!command) {
153
+ throw new Error(`Unable to auto-upgrade: unknown installation method. ` +
154
+ `Please upgrade manually: npm install -g ${PACKAGE_NAME}@${version}`);
155
+ }
156
+ commandStarter(command);
89
157
  }
90
158
  //# sourceMappingURL=installation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/upgrade/installation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC;AAE3C,2BAA2B;AAC3B,MAAM,YAAY,GAAG,OAAO,CAAC;AAK7B;;;GAGG;AACH,MAAM,UAAU,YAAY;IACxB,MAAM,MAAM,GAAsD;QAC9D,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE;QACtD,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,YAAY,wBAAwB,EAAE;QAC/E,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC,EAAE;KACxE,CAAC;IAEF,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAAC,WAAM,CAAC;YACL,6DAA6D;QACjE,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAgB,kBAAkB;;;QACpC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,8BAA8B,YAAY,SAAS,EAAE;gBAC9E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aACpC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;YAC7D,OAAO,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QAChC,CAAC;QAAC,WAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,OAAe;IACpE,QAAQ,MAAM,EAAE,CAAC;QACb,KAAK,KAAK;YACN,OAAO,kBAAkB,YAAY,IAAI,OAAO,EAAE,CAAC;QACvD,KAAK,KAAK;YACN,OAAO,cAAc,YAAY,IAAI,OAAO,EAAE,CAAC;QACnD,KAAK,MAAM;YACP,OAAO,mBAAmB,YAAY,IAAI,OAAO,EAAE,CAAC;QACxD;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,OAAe;IACjE,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACX,uDAAuD;YACnD,2CAA2C,YAAY,IAAI,OAAO,EAAE,CAC3E,CAAC;IACN,CAAC;IACD,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/upgrade/installation.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,40 @@
1
+ import type { InstallMethod } from './installation.js';
1
2
  /**
2
3
  * Compares two semver version strings.
3
4
  * Returns true if `latest` is newer than `current`.
4
5
  */
5
6
  export declare function isNewerVersion(current: string, latest: string): boolean;
7
+ export interface AvailableUpgrade {
8
+ current: string;
9
+ latest: string;
10
+ method: InstallMethod;
11
+ }
12
+ export interface AvailableUpgradeDependencies {
13
+ version: string;
14
+ fetchLatestVersion: () => Promise<string | null>;
15
+ detectMethod: () => Promise<InstallMethod>;
16
+ }
17
+ export interface AutoUpgradeDependencies extends AvailableUpgradeDependencies {
18
+ startUpgrade: (method: InstallMethod, version: string) => void;
19
+ writeStderr: (message: string) => void;
20
+ }
21
+ /**
22
+ * Checks whether a newer version is available and returns the target version
23
+ * plus the detected install method.
24
+ */
25
+ export declare function getAvailableUpgrade(dependencies?: AvailableUpgradeDependencies): Promise<AvailableUpgrade | null>;
6
26
  /**
7
27
  * Runs the silent auto-upgrade check in the background.
8
28
  *
9
29
  * Called on every CLI invocation. This function:
10
30
  * 1. Fetches the latest version from npm
11
31
  * 2. Compares with the current installed version
12
- * 3. If newer, silently upgrades using the detected install method
13
- * 4. Prints a brief message to stderr on success
32
+ * 3. If newer, starts a detached background upgrade using the detected install method
33
+ * 4. Prints a brief message to stderr on fallback or when running non-interactively
14
34
  *
15
35
  * All errors are swallowed silently to never disrupt the user's command.
16
36
  */
17
- export declare function autoUpgrade(): Promise<void>;
37
+ export declare function autoUpgrade(dependencies?: AutoUpgradeDependencies): Promise<void>;
18
38
  /**
19
39
  * Runs an explicit foreground upgrade with user-facing output.
20
40
  * Used by the `bkper upgrade` command.
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/upgrade/upgrade.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQvE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBjD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/upgrade/upgrade.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQvE;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IACzE,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAgCD;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,YAAY,GAAE,4BAA0E,GACzF,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAWlC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC7B,YAAY,GAAE,uBAAgE,GAC/E,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { VERSION, fetchLatestVersion, detectMethod, executeUpgrade, getUpgradeCommand, } from './installation.js';
10
+ import { VERSION, fetchLatestVersion, detectMethod, detectMethodAsync, executeUpgrade, getUpgradeCommand, startDetachedUpgrade, } from './installation.js';
11
11
  /**
12
12
  * Compares two semver version strings.
13
13
  * Returns true if `latest` is newer than `current`.
@@ -22,37 +22,77 @@ export function isNewerVersion(current, latest) {
22
22
  return lMinor > cMinor;
23
23
  return lPatch > cPatch;
24
24
  }
25
+ function writeAutoUpgradeMessage(message) {
26
+ if (process.stdout.isTTY === true && process.stderr.isTTY === true) {
27
+ return;
28
+ }
29
+ process.stderr.write(message);
30
+ }
31
+ function createDefaultAvailableUpgradeDependencies() {
32
+ return {
33
+ version: VERSION,
34
+ fetchLatestVersion,
35
+ detectMethod: detectMethodAsync,
36
+ };
37
+ }
38
+ function createDefaultAutoUpgradeDependencies() {
39
+ return Object.assign(Object.assign({}, createDefaultAvailableUpgradeDependencies()), { startUpgrade: startDetachedUpgrade, writeStderr: writeAutoUpgradeMessage });
40
+ }
41
+ function getManualUpgradeMessage(current, latest) {
42
+ return (`\nbkper ${latest} available (current: ${current}). ` +
43
+ `Upgrade manually: npm install -g bkper@${latest}\n`);
44
+ }
45
+ /**
46
+ * Checks whether a newer version is available and returns the target version
47
+ * plus the detected install method.
48
+ */
49
+ export function getAvailableUpgrade() {
50
+ return __awaiter(this, arguments, void 0, function* (dependencies = createDefaultAvailableUpgradeDependencies()) {
51
+ const latest = yield dependencies.fetchLatestVersion();
52
+ if (!latest)
53
+ return null;
54
+ if (!isNewerVersion(dependencies.version, latest))
55
+ return null;
56
+ const method = yield dependencies.detectMethod();
57
+ return {
58
+ current: dependencies.version,
59
+ latest,
60
+ method,
61
+ };
62
+ });
63
+ }
25
64
  /**
26
65
  * Runs the silent auto-upgrade check in the background.
27
66
  *
28
67
  * Called on every CLI invocation. This function:
29
68
  * 1. Fetches the latest version from npm
30
69
  * 2. Compares with the current installed version
31
- * 3. If newer, silently upgrades using the detected install method
32
- * 4. Prints a brief message to stderr on success
70
+ * 3. If newer, starts a detached background upgrade using the detected install method
71
+ * 4. Prints a brief message to stderr on fallback or when running non-interactively
33
72
  *
34
73
  * All errors are swallowed silently to never disrupt the user's command.
35
74
  */
36
75
  export function autoUpgrade() {
37
- return __awaiter(this, void 0, void 0, function* () {
76
+ return __awaiter(this, arguments, void 0, function* (dependencies = createDefaultAutoUpgradeDependencies()) {
38
77
  try {
39
- const latest = yield fetchLatestVersion();
40
- if (!latest)
41
- return;
42
- if (!isNewerVersion(VERSION, latest))
78
+ const availableUpgrade = yield getAvailableUpgrade(dependencies);
79
+ if (!availableUpgrade)
43
80
  return;
44
- const method = detectMethod();
45
- if (method === 'unknown') {
46
- // Can't auto-upgrade if we don't know how it was installed.
47
- // Print a hint to stderr so it doesn't pollute stdout.
48
- process.stderr.write(`\nbkper ${latest} available (current: ${VERSION}). ` +
49
- `Upgrade manually: npm install -g bkper@${latest}\n`);
81
+ if (availableUpgrade.method === 'unknown') {
82
+ dependencies.writeStderr(getManualUpgradeMessage(availableUpgrade.current, availableUpgrade.latest));
50
83
  return;
51
84
  }
52
- executeUpgrade(method, latest);
53
- process.stderr.write(`\nbkper upgraded: ${VERSION} \u2192 ${latest} (restart to use)\n`);
85
+ try {
86
+ dependencies.startUpgrade(availableUpgrade.method, availableUpgrade.latest);
87
+ dependencies.writeStderr(`\nbkper update started in background: ` +
88
+ `${availableUpgrade.current} \u2192 ${availableUpgrade.latest} ` +
89
+ `(restart later to use)\n`);
90
+ }
91
+ catch (_a) {
92
+ dependencies.writeStderr(getManualUpgradeMessage(availableUpgrade.current, availableUpgrade.latest));
93
+ }
54
94
  }
55
- catch (_a) {
95
+ catch (_b) {
56
96
  // Silent failure — never break the user's command
57
97
  }
58
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/upgrade/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/upgrade/upgrade.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkper",
3
- "version": "4.10.2",
3
+ "version": "4.10.3",
4
4
  "description": "Command line client for Bkper",
5
5
  "bin": {
6
6
  "bkper": "./lib/cli.js"