charness 3.3.1 → 3.4.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.
- package/CHANGELOG.md +612 -0
- package/DEVELOPMENT.md +76 -0
- package/README.md +5 -2
- package/SETUP.md +66 -20
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +2 -0
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +15 -2
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +13 -1
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +35 -13
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +1 -0
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/agentLogin/agentLogin.js +5 -0
- package/dist/agentLogin/agentLogin.js.map +1 -1
- package/dist/apiErrorRetry.d.ts +10 -4
- package/dist/apiErrorRetry.d.ts.map +1 -1
- package/dist/apiErrorRetry.js +14 -7
- package/dist/apiErrorRetry.js.map +1 -1
- package/dist/apiRetryKick.d.ts +6 -0
- package/dist/apiRetryKick.d.ts.map +1 -1
- package/dist/apiRetryKick.js +2 -1
- package/dist/apiRetryKick.js.map +1 -1
- package/dist/bot.d.ts +0 -3
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +337 -173
- package/dist/bot.js.map +1 -1
- package/dist/changelogEntries.d.ts +25 -0
- package/dist/changelogEntries.d.ts.map +1 -0
- package/dist/changelogEntries.js +66 -0
- package/dist/changelogEntries.js.map +1 -0
- package/dist/cli/bot.d.ts +6 -2
- package/dist/cli/bot.d.ts.map +1 -1
- package/dist/cli/bot.js +34 -2
- package/dist/cli/bot.js.map +1 -1
- package/dist/cli/hot.d.ts +7 -0
- package/dist/cli/hot.d.ts.map +1 -1
- package/dist/cli/hot.js +53 -3
- package/dist/cli/hot.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/connectors/telegram/bindPicker.d.ts +64 -0
- package/dist/connectors/telegram/bindPicker.d.ts.map +1 -0
- package/dist/connectors/telegram/bindPicker.js +97 -0
- package/dist/connectors/telegram/bindPicker.js.map +1 -0
- package/dist/connectors/telegram/commands/selfUpdate.d.ts +16 -0
- package/dist/connectors/telegram/commands/selfUpdate.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/selfUpdate.js +210 -0
- package/dist/connectors/telegram/commands/selfUpdate.js.map +1 -0
- package/dist/connectors/telegram/commands/stt.d.ts +1 -0
- package/dist/connectors/telegram/commands/stt.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/stt.js +5 -0
- package/dist/connectors/telegram/commands/stt.js.map +1 -1
- package/dist/connectors/telegram/commands/topicCommand.d.ts +75 -0
- package/dist/connectors/telegram/commands/topicCommand.d.ts.map +1 -0
- package/dist/connectors/telegram/commands/topicCommand.js +391 -0
- package/dist/connectors/telegram/commands/topicCommand.js.map +1 -0
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +109 -3
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +109 -3
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +109 -3
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +109 -3
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +109 -3
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +109 -3
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +109 -3
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +109 -3
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +109 -3
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +109 -3
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +109 -3
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +109 -3
- package/dist/i18n/zh.js.map +1 -1
- package/dist/installManager.d.ts +28 -0
- package/dist/installManager.d.ts.map +1 -1
- package/dist/installManager.js +85 -11
- package/dist/installManager.js.map +1 -1
- package/dist/instanceSettings.d.ts +12 -1
- package/dist/instanceSettings.d.ts.map +1 -1
- package/dist/instanceSettings.js +40 -4
- package/dist/instanceSettings.js.map +1 -1
- package/dist/selfUpdate/bootRollback.d.ts +22 -0
- package/dist/selfUpdate/bootRollback.d.ts.map +1 -0
- package/dist/selfUpdate/bootRollback.js +79 -0
- package/dist/selfUpdate/bootRollback.js.map +1 -0
- package/dist/selfUpdate/commandRunner.d.ts +21 -0
- package/dist/selfUpdate/commandRunner.d.ts.map +1 -0
- package/dist/selfUpdate/commandRunner.js +32 -0
- package/dist/selfUpdate/commandRunner.js.map +1 -0
- package/dist/selfUpdate/constants.d.ts +26 -0
- package/dist/selfUpdate/constants.d.ts.map +1 -0
- package/dist/selfUpdate/constants.js +31 -0
- package/dist/selfUpdate/constants.js.map +1 -0
- package/dist/selfUpdate/gitSource.d.ts +58 -0
- package/dist/selfUpdate/gitSource.d.ts.map +1 -0
- package/dist/selfUpdate/gitSource.js +183 -0
- package/dist/selfUpdate/gitSource.js.map +1 -0
- package/dist/selfUpdate/hostLock.d.ts +16 -0
- package/dist/selfUpdate/hostLock.d.ts.map +1 -0
- package/dist/selfUpdate/hostLock.js +101 -0
- package/dist/selfUpdate/hostLock.js.map +1 -0
- package/dist/selfUpdate/hotSupervisor.d.ts +47 -0
- package/dist/selfUpdate/hotSupervisor.d.ts.map +1 -0
- package/dist/selfUpdate/hotSupervisor.js +125 -0
- package/dist/selfUpdate/hotSupervisor.js.map +1 -0
- package/dist/selfUpdate/installKind.d.ts +45 -0
- package/dist/selfUpdate/installKind.d.ts.map +1 -0
- package/dist/selfUpdate/installKind.js +99 -0
- package/dist/selfUpdate/installKind.js.map +1 -0
- package/dist/selfUpdate/launchEnvironment.d.ts +3 -0
- package/dist/selfUpdate/launchEnvironment.d.ts.map +1 -0
- package/dist/selfUpdate/launchEnvironment.js +16 -0
- package/dist/selfUpdate/launchEnvironment.js.map +1 -0
- package/dist/selfUpdate/npmSource.d.ts +34 -0
- package/dist/selfUpdate/npmSource.d.ts.map +1 -0
- package/dist/selfUpdate/npmSource.js +107 -0
- package/dist/selfUpdate/npmSource.js.map +1 -0
- package/dist/selfUpdate/releaseNotes.d.ts +33 -0
- package/dist/selfUpdate/releaseNotes.d.ts.map +1 -0
- package/dist/selfUpdate/releaseNotes.js +115 -0
- package/dist/selfUpdate/releaseNotes.js.map +1 -0
- package/dist/selfUpdate/restart.d.ts +33 -0
- package/dist/selfUpdate/restart.d.ts.map +1 -0
- package/dist/selfUpdate/restart.js +94 -0
- package/dist/selfUpdate/restart.js.map +1 -0
- package/dist/selfUpdate/selfCheck.d.ts +20 -0
- package/dist/selfUpdate/selfCheck.d.ts.map +1 -0
- package/dist/selfUpdate/selfCheck.js +126 -0
- package/dist/selfUpdate/selfCheck.js.map +1 -0
- package/dist/selfUpdate/semver.d.ts +24 -0
- package/dist/selfUpdate/semver.d.ts.map +1 -0
- package/dist/selfUpdate/semver.js +165 -0
- package/dist/selfUpdate/semver.js.map +1 -0
- package/dist/selfUpdate/types.d.ts +51 -0
- package/dist/selfUpdate/types.d.ts.map +1 -0
- package/dist/selfUpdate/types.js +3 -0
- package/dist/selfUpdate/types.js.map +1 -0
- package/dist/selfUpdate/updateEngine.d.ts +110 -0
- package/dist/selfUpdate/updateEngine.d.ts.map +1 -0
- package/dist/selfUpdate/updateEngine.js +727 -0
- package/dist/selfUpdate/updateEngine.js.map +1 -0
- package/dist/selfUpdate/updateMessages.d.ts +84 -0
- package/dist/selfUpdate/updateMessages.d.ts.map +1 -0
- package/dist/selfUpdate/updateMessages.js +115 -0
- package/dist/selfUpdate/updateMessages.js.map +1 -0
- package/dist/selfUpdate/updateModes.d.ts +17 -0
- package/dist/selfUpdate/updateModes.d.ts.map +1 -0
- package/dist/selfUpdate/updateModes.js +14 -0
- package/dist/selfUpdate/updateModes.js.map +1 -0
- package/dist/selfUpdate/updatePending.d.ts +76 -0
- package/dist/selfUpdate/updatePending.d.ts.map +1 -0
- package/dist/selfUpdate/updatePending.js +131 -0
- package/dist/selfUpdate/updatePending.js.map +1 -0
- package/dist/selfUpdate/updatePolicy.d.ts +115 -0
- package/dist/selfUpdate/updatePolicy.d.ts.map +1 -0
- package/dist/selfUpdate/updatePolicy.js +83 -0
- package/dist/selfUpdate/updatePolicy.js.map +1 -0
- package/dist/selfUpdate/updateRuntime.d.ts +22 -0
- package/dist/selfUpdate/updateRuntime.d.ts.map +1 -0
- package/dist/selfUpdate/updateRuntime.js +148 -0
- package/dist/selfUpdate/updateRuntime.js.map +1 -0
- package/dist/startupPromptBuffer.d.ts +2 -0
- package/dist/startupPromptBuffer.d.ts.map +1 -1
- package/dist/startupPromptBuffer.js +4 -0
- package/dist/startupPromptBuffer.js.map +1 -1
- package/dist/state.d.ts +12 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +18 -0
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/promptDelivery.d.ts +10 -4
- package/dist/utils/promptDelivery.d.ts.map +1 -1
- package/dist/utils/promptDelivery.js +6 -3
- package/dist/utils/promptDelivery.js.map +1 -1
- package/dist/utils/updateScreenPlan.d.ts +38 -0
- package/dist/utils/updateScreenPlan.d.ts.map +1 -0
- package/dist/utils/updateScreenPlan.js +143 -0
- package/dist/utils/updateScreenPlan.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,126 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.listImportableModules = listImportableModules;
|
|
37
|
+
exports.runSelfCheck = runSelfCheck;
|
|
38
|
+
exports.runSelfCheckCli = runSelfCheckCli;
|
|
39
|
+
const child_process_1 = require("child_process");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
/**
|
|
44
|
+
* `charness self-check [--expect <version>]` — what the updater runs on a NEW install before it switches to it: does this
|
|
45
|
+
* install start at all? It reads the package version, loads `node-pty`'s native binding, imports the whole built module graph
|
|
46
|
+
* (so a missing file or dependency fails here, not in the running bot) and syntax-checks the one module it cannot import —
|
|
47
|
+
* `bot.js` reads its settings at module scope and exits the process without them. Hidden: it is not in `--help`.
|
|
48
|
+
*/
|
|
49
|
+
/** Entry points: importing one starts something (the CLI, the bot, the install job). */
|
|
50
|
+
const entryModules = new Set(['cli.js', 'index.js', 'bot.js', 'cli/botEntry.js', 'stt/sttInstallEntry.js']);
|
|
51
|
+
const testsFolderName = '__tests__';
|
|
52
|
+
const botModule = 'bot.js';
|
|
53
|
+
const syntaxCheckTimeoutMs = 30 * 1000;
|
|
54
|
+
/** @description The built modules a self-check imports: every `.js` under `dist/` except entry points and tests, relative paths. */
|
|
55
|
+
function listImportableModules(distDirectory) {
|
|
56
|
+
return fs
|
|
57
|
+
.readdirSync(distDirectory, { recursive: true, encoding: 'utf8' })
|
|
58
|
+
.map((entry) => entry.split(path.sep).join('/'))
|
|
59
|
+
.filter((entry) => entry.endsWith('.js') && !entry.split('/').includes(testsFolderName) && !entryModules.has(entry))
|
|
60
|
+
.sort();
|
|
61
|
+
}
|
|
62
|
+
function readPackageVersion(packageRoot) {
|
|
63
|
+
const manifest = JSON.parse(fs.readFileSync(path.join(packageRoot, 'package.json'), 'utf8'));
|
|
64
|
+
return manifest.version;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @description Check the install at `packageRoot` (the folder holding `package.json` and `dist/`). Importing the modules
|
|
68
|
+
* may resolve paths under `DATA_DIR` at import time, so the check runs with a throwaway one and removes it.
|
|
69
|
+
* `loadNativeBinding` loads `node-pty` (a parameter so a test can make it fail).
|
|
70
|
+
*/
|
|
71
|
+
async function runSelfCheck(packageRoot, expectVersion, loadNativeBinding = () => Promise.resolve().then(() => __importStar(require('node-pty')))) {
|
|
72
|
+
const problems = [];
|
|
73
|
+
const version = readPackageVersion(packageRoot);
|
|
74
|
+
if (expectVersion !== null && version !== expectVersion) {
|
|
75
|
+
problems.push(`the package says ${version}, expected ${expectVersion}`);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
await loadNativeBinding();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
problems.push(`node-pty does not load: ${error instanceof Error ? error.message : String(error)}`);
|
|
82
|
+
}
|
|
83
|
+
const distDirectory = path.join(packageRoot, 'dist');
|
|
84
|
+
const botPath = path.join(distDirectory, botModule);
|
|
85
|
+
try {
|
|
86
|
+
(0, child_process_1.execFileSync)(process.execPath, ['--check', botPath], { stdio: 'pipe', timeout: syntaxCheckTimeoutMs });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
problems.push(`${botModule} does not pass node --check: ${error instanceof Error ? error.message : String(error)}`);
|
|
90
|
+
}
|
|
91
|
+
const throwawayDataDir = fs.mkdtempSync(path.join(os.tmpdir(), 'charness-selfcheck-'));
|
|
92
|
+
const previousDataDir = process.env.DATA_DIR;
|
|
93
|
+
process.env.DATA_DIR = throwawayDataDir;
|
|
94
|
+
try {
|
|
95
|
+
for (const modulePath of listImportableModules(distDirectory)) {
|
|
96
|
+
try {
|
|
97
|
+
require(path.join(distDirectory, modulePath));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
problems.push(`${modulePath} does not load: ${error instanceof Error ? error.message : String(error)}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
if (previousDataDir === undefined)
|
|
106
|
+
delete process.env.DATA_DIR;
|
|
107
|
+
else
|
|
108
|
+
process.env.DATA_DIR = previousDataDir;
|
|
109
|
+
fs.rmSync(throwawayDataDir, { recursive: true, force: true });
|
|
110
|
+
}
|
|
111
|
+
return { version, problems };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @description The CLI face: version on stdout, every problem on stderr, exit 1 when there is one. `packageRoot` is the
|
|
115
|
+
* folder this module's own `dist/` belongs to.
|
|
116
|
+
*/
|
|
117
|
+
async function runSelfCheckCli(args, packageRoot) {
|
|
118
|
+
const expectIndex = args.indexOf('--expect');
|
|
119
|
+
const expectVersion = expectIndex === -1 ? null : (args[expectIndex + 1] ?? null);
|
|
120
|
+
const result = await runSelfCheck(packageRoot, expectVersion);
|
|
121
|
+
process.stdout.write(`${result.version}\n`);
|
|
122
|
+
for (const problem of result.problems)
|
|
123
|
+
process.stderr.write(`self-check: ${problem}\n`);
|
|
124
|
+
return result.problems.length === 0 ? 0 : 1;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=selfCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfCheck.js","sourceRoot":"","sources":["../../src/selfUpdate/selfCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Just enough semver for the update decisions — parse, compare, and the range forms `engines.node` uses. No
|
|
3
|
+
* dependency: the full `semver` package is not one of ours, and none of these forms is exotic.
|
|
4
|
+
*/
|
|
5
|
+
export interface SemVer {
|
|
6
|
+
major: number;
|
|
7
|
+
minor: number;
|
|
8
|
+
patch: number;
|
|
9
|
+
prerelease: string[];
|
|
10
|
+
}
|
|
11
|
+
/** @description `3.4.0`, `v3.4.0`, `3.5.0-beta.1` → its parts; null for anything else (`3.4`, `latest`). */
|
|
12
|
+
export declare function parseSemVer(text: string): SemVer | null;
|
|
13
|
+
export declare function checkIsPrerelease(version: SemVer): boolean;
|
|
14
|
+
/** @description -1 / 0 / 1; a prerelease sorts below its release, identifiers compare as semver says. */
|
|
15
|
+
export declare function compareSemVer(left: SemVer, right: SemVer): number;
|
|
16
|
+
/** @description `compareSemVer` on two version texts; null when either is not a version. */
|
|
17
|
+
export declare function compareVersionTexts(left: string, right: string): number | null;
|
|
18
|
+
/**
|
|
19
|
+
* @description Whether `version` satisfies an npm range: comparators (`>=22.12`, `<25`), `^`, `~`, `x` ranges
|
|
20
|
+
* (`22.x`), joined by spaces (and) and `||` (or). An empty range accepts everything; null when the range cannot be
|
|
21
|
+
* read, so the caller can tell "no" from "unknown" — a version is never refused over a range we cannot parse.
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkSatisfiesRange(version: SemVer, range: string): boolean | null;
|
|
24
|
+
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../src/selfUpdate/semver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,4GAA4G;AAC5G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASvD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAWD,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAajE;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AA8ED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAiBlF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Just enough semver for the update decisions — parse, compare, and the range forms `engines.node` uses. No
|
|
4
|
+
* dependency: the full `semver` package is not one of ours, and none of these forms is exotic.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.parseSemVer = parseSemVer;
|
|
8
|
+
exports.checkIsPrerelease = checkIsPrerelease;
|
|
9
|
+
exports.compareSemVer = compareSemVer;
|
|
10
|
+
exports.compareVersionTexts = compareVersionTexts;
|
|
11
|
+
exports.checkSatisfiesRange = checkSatisfiesRange;
|
|
12
|
+
const versionPattern = /^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
13
|
+
const comparatorPattern = /^(>=|<=|>|<|=|\^|~)?\s*v?(\d+|[xX*])(?:\.(\d+|[xX*]))?(?:\.(\d+|[xX*]))?(?:-([0-9A-Za-z.-]+))?$/;
|
|
14
|
+
const wildcardPattern = /^[xX*]$/;
|
|
15
|
+
/** @description `3.4.0`, `v3.4.0`, `3.5.0-beta.1` → its parts; null for anything else (`3.4`, `latest`). */
|
|
16
|
+
function parseSemVer(text) {
|
|
17
|
+
const match = versionPattern.exec(text.trim());
|
|
18
|
+
if (!match)
|
|
19
|
+
return null;
|
|
20
|
+
return {
|
|
21
|
+
major: Number(match[1]),
|
|
22
|
+
minor: Number(match[2]),
|
|
23
|
+
patch: Number(match[3]),
|
|
24
|
+
prerelease: match[4] ? match[4].split('.') : [],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function checkIsPrerelease(version) {
|
|
28
|
+
return version.prerelease.length > 0;
|
|
29
|
+
}
|
|
30
|
+
function comparePrereleaseIdentifier(left, right) {
|
|
31
|
+
const isLeftNumeric = /^\d+$/.test(left);
|
|
32
|
+
const isRightNumeric = /^\d+$/.test(right);
|
|
33
|
+
if (isLeftNumeric && isRightNumeric)
|
|
34
|
+
return Math.sign(Number(left) - Number(right));
|
|
35
|
+
if (isLeftNumeric)
|
|
36
|
+
return -1;
|
|
37
|
+
if (isRightNumeric)
|
|
38
|
+
return 1;
|
|
39
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
40
|
+
}
|
|
41
|
+
/** @description -1 / 0 / 1; a prerelease sorts below its release, identifiers compare as semver says. */
|
|
42
|
+
function compareSemVer(left, right) {
|
|
43
|
+
for (const field of ['major', 'minor', 'patch']) {
|
|
44
|
+
if (left[field] !== right[field])
|
|
45
|
+
return Math.sign(left[field] - right[field]);
|
|
46
|
+
}
|
|
47
|
+
if (left.prerelease.length === 0 && right.prerelease.length === 0)
|
|
48
|
+
return 0;
|
|
49
|
+
if (left.prerelease.length === 0)
|
|
50
|
+
return 1;
|
|
51
|
+
if (right.prerelease.length === 0)
|
|
52
|
+
return -1;
|
|
53
|
+
const shared = Math.min(left.prerelease.length, right.prerelease.length);
|
|
54
|
+
for (let index = 0; index < shared; index += 1) {
|
|
55
|
+
const result = comparePrereleaseIdentifier(left.prerelease[index], right.prerelease[index]);
|
|
56
|
+
if (result !== 0)
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
return Math.sign(left.prerelease.length - right.prerelease.length);
|
|
60
|
+
}
|
|
61
|
+
/** @description `compareSemVer` on two version texts; null when either is not a version. */
|
|
62
|
+
function compareVersionTexts(left, right) {
|
|
63
|
+
const leftVersion = parseSemVer(left);
|
|
64
|
+
const rightVersion = parseSemVer(right);
|
|
65
|
+
return leftVersion && rightVersion ? compareSemVer(leftVersion, rightVersion) : null;
|
|
66
|
+
}
|
|
67
|
+
function createVersion(major, minor, patch, prerelease = []) {
|
|
68
|
+
return { major, minor, patch, prerelease };
|
|
69
|
+
}
|
|
70
|
+
/** A comparator such as `^20.17`, `~22.1`, `22.x`, `>=22.12` as the bounds it means; null when unreadable. */
|
|
71
|
+
function getComparatorBounds(text) {
|
|
72
|
+
const match = comparatorPattern.exec(text);
|
|
73
|
+
if (!match)
|
|
74
|
+
return null;
|
|
75
|
+
const [, operator = '', majorText, minorText, patchText, prerelease] = match;
|
|
76
|
+
if (wildcardPattern.test(majorText))
|
|
77
|
+
return operator === '' || operator === '=' ? [] : null;
|
|
78
|
+
const major = Number(majorText);
|
|
79
|
+
const isMinorOpen = minorText === undefined || wildcardPattern.test(minorText);
|
|
80
|
+
const minor = isMinorOpen ? 0 : Number(minorText);
|
|
81
|
+
const isPatchOpen = patchText === undefined || wildcardPattern.test(patchText);
|
|
82
|
+
const patch = isPatchOpen ? 0 : Number(patchText);
|
|
83
|
+
const base = createVersion(major, minor, patch, prerelease ? prerelease.split('.') : []);
|
|
84
|
+
switch (operator) {
|
|
85
|
+
case '>=':
|
|
86
|
+
return [{ op: '>=', version: base }];
|
|
87
|
+
case '>':
|
|
88
|
+
return isMinorOpen
|
|
89
|
+
? [{ op: '>=', version: createVersion(major + 1, 0, 0) }]
|
|
90
|
+
: isPatchOpen
|
|
91
|
+
? [{ op: '>=', version: createVersion(major, minor + 1, 0) }]
|
|
92
|
+
: [{ op: '>', version: base }];
|
|
93
|
+
case '<=':
|
|
94
|
+
return isMinorOpen
|
|
95
|
+
? [{ op: '<', version: createVersion(major + 1, 0, 0) }]
|
|
96
|
+
: isPatchOpen
|
|
97
|
+
? [{ op: '<', version: createVersion(major, minor + 1, 0) }]
|
|
98
|
+
: [{ op: '<=', version: base }];
|
|
99
|
+
case '<':
|
|
100
|
+
return [{ op: '<', version: base }];
|
|
101
|
+
case '^': {
|
|
102
|
+
// Same left-most non-zero part: ^1.2.3 → <2.0.0, ^0.2.3 → <0.3.0, ^0.0.3 → <0.0.4.
|
|
103
|
+
const upper = major > 0 || isMinorOpen
|
|
104
|
+
? createVersion(major + 1, 0, 0)
|
|
105
|
+
: minor > 0 || isPatchOpen
|
|
106
|
+
? createVersion(0, minor + 1, 0)
|
|
107
|
+
: createVersion(0, 0, patch + 1);
|
|
108
|
+
return [{ op: '>=', version: base }, { op: '<', version: upper }];
|
|
109
|
+
}
|
|
110
|
+
case '~': {
|
|
111
|
+
const upper = isMinorOpen ? createVersion(major + 1, 0, 0) : createVersion(major, minor + 1, 0);
|
|
112
|
+
return [{ op: '>=', version: base }, { op: '<', version: upper }];
|
|
113
|
+
}
|
|
114
|
+
default: {
|
|
115
|
+
if (isMinorOpen)
|
|
116
|
+
return [{ op: '>=', version: base }, { op: '<', version: createVersion(major + 1, 0, 0) }];
|
|
117
|
+
if (isPatchOpen)
|
|
118
|
+
return [{ op: '>=', version: base }, { op: '<', version: createVersion(major, minor + 1, 0) }];
|
|
119
|
+
return [{ op: '>=', version: base }, { op: '<=', version: base }];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function checkSatisfiesBound(version, bound) {
|
|
124
|
+
const result = compareSemVer(version, bound.version);
|
|
125
|
+
switch (bound.op) {
|
|
126
|
+
case '>=':
|
|
127
|
+
return result >= 0;
|
|
128
|
+
case '>':
|
|
129
|
+
return result > 0;
|
|
130
|
+
case '<=':
|
|
131
|
+
return result <= 0;
|
|
132
|
+
default:
|
|
133
|
+
return result < 0;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Joins a lone operator to the version that follows it (`>= 22.12` → `>=22.12`). */
|
|
137
|
+
function splitComparators(clause) {
|
|
138
|
+
return clause.replace(/(>=|<=|>|<|=|\^|~)\s+/g, '$1').split(/\s+/).filter((part) => part !== '');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @description Whether `version` satisfies an npm range: comparators (`>=22.12`, `<25`), `^`, `~`, `x` ranges
|
|
142
|
+
* (`22.x`), joined by spaces (and) and `||` (or). An empty range accepts everything; null when the range cannot be
|
|
143
|
+
* read, so the caller can tell "no" from "unknown" — a version is never refused over a range we cannot parse.
|
|
144
|
+
*/
|
|
145
|
+
function checkSatisfiesRange(version, range) {
|
|
146
|
+
if (range.trim() === '')
|
|
147
|
+
return true;
|
|
148
|
+
let isUnreadable = false;
|
|
149
|
+
const isAnyClauseSatisfied = range.split('||').some((clause) => {
|
|
150
|
+
const bounds = [];
|
|
151
|
+
for (const comparator of splitComparators(clause.trim())) {
|
|
152
|
+
const comparatorBounds = getComparatorBounds(comparator);
|
|
153
|
+
if (comparatorBounds === null) {
|
|
154
|
+
isUnreadable = true;
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
bounds.push(...comparatorBounds);
|
|
158
|
+
}
|
|
159
|
+
return bounds.every((bound) => checkSatisfiesBound(version, bound));
|
|
160
|
+
});
|
|
161
|
+
if (isAnyClauseSatisfied)
|
|
162
|
+
return true;
|
|
163
|
+
return isUnreadable ? null : false;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../src/selfUpdate/semver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/** What the last check of the update engine saw — the raw observation `/update` and the policy are computed from. */
|
|
2
|
+
export type UpdateObservation = {
|
|
3
|
+
kind: 'npm';
|
|
4
|
+
latestVersion: string;
|
|
5
|
+
engines: string | null;
|
|
6
|
+
isDeprecated: boolean;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'git';
|
|
9
|
+
status: GitCheckStatus;
|
|
10
|
+
reason: GitSkipReason | null;
|
|
11
|
+
from: string;
|
|
12
|
+
to: string;
|
|
13
|
+
behind: number;
|
|
14
|
+
migrationGuides: string[];
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'error';
|
|
17
|
+
reason: string;
|
|
18
|
+
};
|
|
19
|
+
export type GitCheckStatus = 'upToDate' | 'behind' | 'skip';
|
|
20
|
+
/** Why `self-update.sh --check` leaves a checkout alone. */
|
|
21
|
+
export type GitSkipReason = 'dirty' | 'diverged' | 'noUpstream' | 'inProgress' | 'fetchFailed';
|
|
22
|
+
export interface SelfUpdateLastResult {
|
|
23
|
+
/** Epoch ms of the check. */
|
|
24
|
+
at: number;
|
|
25
|
+
observation: UpdateObservation;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The update engine's bookkeeping, persisted in `state.json` (`selfUpdate`). Targets are an npm version or a
|
|
29
|
+
* checkout's target commit.
|
|
30
|
+
*/
|
|
31
|
+
export interface SelfUpdateRecord {
|
|
32
|
+
/** When the last check ran, so a restart does not multiply checks. */
|
|
33
|
+
lastCheckAt?: number;
|
|
34
|
+
/** npm: when this bot FIRST saw each version — the hold counts from it. */
|
|
35
|
+
firstSeenAt?: Record<string, number>;
|
|
36
|
+
/** Targets whose install failed: never retried by itself, a newer target is tried. */
|
|
37
|
+
failedTargets?: string[];
|
|
38
|
+
/** Targets already announced (notify, offer, "needs Node"): one message per target. */
|
|
39
|
+
notifiedTargets?: string[];
|
|
40
|
+
lastResult?: SelfUpdateLastResult;
|
|
41
|
+
/** True after a check failed and until one succeeds — so a failing registry is announced once. */
|
|
42
|
+
isCheckFailing?: boolean;
|
|
43
|
+
/** The one-time "Automatic updates are on" message was posted. */
|
|
44
|
+
isFeatureAnnounced?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** The version (and, for a checkout, the commit) the bot ran at its previous boot. */
|
|
47
|
+
export interface LastRunVersion {
|
|
48
|
+
version: string;
|
|
49
|
+
commit: string | null;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/selfUpdate/types.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GACrF;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/F,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,kGAAkG;IAClG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/selfUpdate/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type GitSource } from './gitSource';
|
|
2
|
+
import type { HostLock } from './hostLock';
|
|
3
|
+
import { type ReexecTarget } from './restart';
|
|
4
|
+
import type { HotSupervisorRecord, SupervisorSignalResult } from './hotSupervisor';
|
|
5
|
+
import { type InstallKind } from './installKind';
|
|
6
|
+
import { type NpmSource } from './npmSource';
|
|
7
|
+
import type { LastRunVersion, SelfUpdateRecord, UpdateObservation } from './types';
|
|
8
|
+
import type { UpdateMessage } from './updateMessages';
|
|
9
|
+
import type { UpdateSettings } from './updateModes';
|
|
10
|
+
import type { UpdatePendingMarker } from './updatePending';
|
|
11
|
+
import { type IdleVerdict } from './updatePolicy';
|
|
12
|
+
/** What `setTimer` hands back: a Node timer, or any number a fake clock uses. */
|
|
13
|
+
export type TimerHandle = number | NodeJS.Timeout;
|
|
14
|
+
export interface UpdateEngineDeps {
|
|
15
|
+
now: () => number;
|
|
16
|
+
setTimer: (callback: () => void, delayMs: number) => TimerHandle;
|
|
17
|
+
clearTimer: (handle: TimerHandle) => void;
|
|
18
|
+
log: (line: string) => void;
|
|
19
|
+
/** Read at every use: a hand edit of `settings.json` applies at the next check. */
|
|
20
|
+
getSettings: () => UpdateSettings;
|
|
21
|
+
state: {
|
|
22
|
+
getRecord: () => SelfUpdateRecord;
|
|
23
|
+
setRecord: (record: SelfUpdateRecord) => void;
|
|
24
|
+
getLastRun: () => LastRunVersion | undefined;
|
|
25
|
+
setLastRun: (lastRun: LastRunVersion) => Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
/** The version (and commit, for a checkout) this process STARTED as. */
|
|
28
|
+
running: LastRunVersion;
|
|
29
|
+
runningNode: string;
|
|
30
|
+
installKind: InstallKind;
|
|
31
|
+
isHotMode: boolean;
|
|
32
|
+
npm: NpmSource | null;
|
|
33
|
+
git: GitSource | null;
|
|
34
|
+
hostLock: {
|
|
35
|
+
acquire: () => HostLock | null;
|
|
36
|
+
} | null;
|
|
37
|
+
/** The version `package.json` on disk says now — newer than `running` after a manual `npm i -g` or another instance's install. */
|
|
38
|
+
readInstalledVersion: () => string | null;
|
|
39
|
+
/** `CHANGELOG.md` of the installed package, for the what's-new list. */
|
|
40
|
+
readInstalledChangelog: () => string | null;
|
|
41
|
+
/** Commits `from`..`to` of a checkout, for "(12 commits)"; `null` when unknown. */
|
|
42
|
+
countCommits: (from: string, to: string) => Promise<number | null>;
|
|
43
|
+
getIdleVerdict: (isUserRequested: boolean) => IdleVerdict;
|
|
44
|
+
postToGeneral: (message: UpdateMessage) => Promise<void>;
|
|
45
|
+
/** The self-check of a new install, run as a child process of it. */
|
|
46
|
+
runSelfCheck: (expectVersion: string | null) => Promise<{
|
|
47
|
+
ok: boolean;
|
|
48
|
+
detail: string;
|
|
49
|
+
}>;
|
|
50
|
+
/** Replace this process with a fresh image of the same install; never returns on success. Throws when it cannot. */
|
|
51
|
+
restartInPlace: () => Promise<void>;
|
|
52
|
+
reexecTarget: ReexecTarget;
|
|
53
|
+
marker: {
|
|
54
|
+
read: () => UpdatePendingMarker | null;
|
|
55
|
+
write: (marker: UpdatePendingMarker) => void;
|
|
56
|
+
clear: () => void;
|
|
57
|
+
};
|
|
58
|
+
supervisor: {
|
|
59
|
+
readRecord: () => HotSupervisorRecord | null;
|
|
60
|
+
getStaleModules: (record: HotSupervisorRecord) => string[];
|
|
61
|
+
requestReexec: (record: HotSupervisorRecord) => SupervisorSignalResult;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export type UpdatePhase = 'idle' | 'waitingForIdle' | 'installing' | 'restartPending';
|
|
65
|
+
/** What a new version is, for the `/update` screen. */
|
|
66
|
+
export interface UpdateOffer {
|
|
67
|
+
/** The npm version or the checkout's target commit. */
|
|
68
|
+
target: string;
|
|
69
|
+
action: 'waitHold' | 'installWhenIdle' | 'notify' | 'offerMajor' | 'offerBreaking' | 'needsNode' | 'skipped';
|
|
70
|
+
/** `waitHold`: when the bot may install it by itself. */
|
|
71
|
+
until: number | null;
|
|
72
|
+
required: string | null;
|
|
73
|
+
skipReason: string | null;
|
|
74
|
+
/** Whether «Update to X now» makes sense: there is something to install and this install can install it. */
|
|
75
|
+
canInstallNow: boolean;
|
|
76
|
+
}
|
|
77
|
+
export interface UpdateStatus {
|
|
78
|
+
running: LastRunVersion;
|
|
79
|
+
installKind: InstallKind;
|
|
80
|
+
/** Run as a hot worker (`charness hot`): the watcher, not a restart, brings an update in. */
|
|
81
|
+
isHotMode: boolean;
|
|
82
|
+
runningNode: string;
|
|
83
|
+
settings: UpdateSettings;
|
|
84
|
+
lastCheckAt: number | null;
|
|
85
|
+
observation: UpdateObservation | null;
|
|
86
|
+
isCheckFailing: boolean;
|
|
87
|
+
offer: UpdateOffer | null;
|
|
88
|
+
phase: UpdatePhase;
|
|
89
|
+
/** The target being installed or waiting to restart onto. */
|
|
90
|
+
inProgressTarget: string | null;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* `blocked`: an update exists but cannot be installed now (a checkout with local changes, a version that needs a newer Node) — the
|
|
94
|
+
* offer on the screen says why; unlike `alreadyUpToDate`, which is for nothing to install, or for a stale button.
|
|
95
|
+
*/
|
|
96
|
+
export type InstallRequestResult = 'started' | 'alreadyUpToDate' | 'busy' | 'cannotInstall' | 'blocked';
|
|
97
|
+
export interface UpdateEngine {
|
|
98
|
+
/** Arm the hourly check. */
|
|
99
|
+
start: () => void;
|
|
100
|
+
stop: () => void;
|
|
101
|
+
/** What a boot does about updates; call once, when Telegram is about to launch. */
|
|
102
|
+
runBootStep: () => Promise<void>;
|
|
103
|
+
/** A check that posts nothing to General (the «Check now» button, the text form) — also with `autoUpdate: off`. */
|
|
104
|
+
checkNow: () => Promise<UpdateStatus>;
|
|
105
|
+
/** «Update to X now»: skips the hold and the quiet period, still waits for running work. */
|
|
106
|
+
requestInstall: (target: string) => Promise<InstallRequestResult>;
|
|
107
|
+
getStatus: () => UpdateStatus;
|
|
108
|
+
}
|
|
109
|
+
export declare function createUpdateEngine(deps: UpdateEngineDeps): UpdateEngine;
|
|
110
|
+
//# sourceMappingURL=updateEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateEngine.d.ts","sourceRoot":"","sources":["../../src/selfUpdate/updateEngine.ts"],"names":[],"mappings":"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"}
|