@doist/cli-core 0.20.0 → 0.21.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 +12 -0
- package/README.md +3 -2
- package/dist/auth/providers/dcr.d.ts +3 -2
- package/dist/auth/providers/dcr.d.ts.map +1 -1
- package/dist/auth/providers/dcr.js +20 -3
- package/dist/auth/providers/dcr.js.map +1 -1
- package/dist/commands/update.d.ts +13 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +115 -21
- package/dist/commands/update.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [0.21.0](https://github.com/Doist/cli-core/compare/v0.20.1...v0.21.0) (2026-05-22)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **update:** detect Homebrew installs and upgrade via brew ([#44](https://github.com/Doist/cli-core/issues/44)) ([a532a41](https://github.com/Doist/cli-core/commit/a532a41af79bfb2e7cf1f2d2b9c387d8592dea79))
|
|
6
|
+
|
|
7
|
+
## [0.20.1](https://github.com/Doist/cli-core/compare/v0.20.0...v0.20.1) (2026-05-21)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **auth:** send DCR HTTP Basic credentials raw, not form-url-encoded ([#43](https://github.com/Doist/cli-core/issues/43)) ([97a626a](https://github.com/Doist/cli-core/commit/97a626a69a52761117e70fccc7049d24ad001937))
|
|
12
|
+
|
|
1
13
|
## [0.20.0](https://github.com/Doist/cli-core/compare/v0.19.0...v0.20.0) (2026-05-21)
|
|
2
14
|
|
|
3
15
|
### Features
|
package/README.md
CHANGED
|
@@ -114,11 +114,12 @@ registerUpdateCommand(program, {
|
|
|
114
114
|
currentVersion: packageJson.version,
|
|
115
115
|
configPath: getConfigPath('todoist-cli'),
|
|
116
116
|
changelogCommandName: 'td changelog',
|
|
117
|
+
brewFormula: 'doist/tap/todoist-cli',
|
|
117
118
|
withSpinner,
|
|
118
119
|
})
|
|
119
120
|
```
|
|
120
121
|
|
|
121
|
-
`update` checks the configured channel's npm dist-tag (`stable` → `latest`, `pre-release` → `next`), compares against `currentVersion`, and shells out to `npm i -g` (or `pnpm add -g` if `npm_execpath` indicates pnpm). `update switch --stable | --pre-release` flips the persisted `update_channel` field via `updateConfig`, preserving any sibling keys. Both subcommands accept `--json` / `--ndjson`. Errors are `CliError` (`INVALID_FLAGS`, `UPDATE_CHECK_FAILED`, `UPDATE_INSTALL_FAILED`, or the canonical `CONFIG_*` codes if the config file is broken).
|
|
122
|
+
`update` checks the configured channel's npm dist-tag (`stable` → `latest`, `pre-release` → `next`), compares against `currentVersion`, and shells out to `npm i -g` (or `pnpm add -g` if `npm_execpath` indicates pnpm). When the CLI was installed via Homebrew (its binary resolves into a brew `Cellar`), it runs `brew upgrade <brewFormula>` instead — set `brewFormula` on brew-distributed CLIs (the brew formula may lag the npm publish, so an upgrade can be a no-op until the formula is bumped). `update switch --stable | --pre-release` flips the persisted `update_channel` field via `updateConfig`, preserving any sibling keys. Both subcommands accept `--json` / `--ndjson`. Errors are `CliError` (`INVALID_FLAGS`, `UPDATE_CHECK_FAILED`, `UPDATE_INSTALL_FAILED`, or the canonical `CONFIG_*` codes if the config file is broken).
|
|
122
123
|
|
|
123
124
|
The semver helpers (`parseVersion`, `compareVersions`, `isNewer`, `getInstallTag`, `fetchLatestVersion`, `getConfiguredUpdateChannel`) are also exported for ad-hoc use outside the registered command.
|
|
124
125
|
|
|
@@ -193,7 +194,7 @@ const provider = createDcrProvider<Account>({
|
|
|
193
194
|
})
|
|
194
195
|
```
|
|
195
196
|
|
|
196
|
-
The DCR-issued `client_id` (and `client_secret`, if returned) are stashed in the handshake and threaded through the rest of the flow. The server-returned `token_endpoint_auth_method` is authoritative (RFC 7591 §3.2.1) and overrides the configured one. By default the token exchange uses `Authorization: Basic` with
|
|
197
|
+
The DCR-issued `client_id` (and `client_secret`, if returned) are stashed in the handshake and threaded through the rest of the flow. The server-returned `token_endpoint_auth_method` is authoritative (RFC 7591 §3.2.1) and overrides the configured one. By default the token exchange uses `Authorization: Basic` with each credential component percent-encoded via `encodeURIComponent` (RFC 3986) rather than oauth4webapi's stricter RFC 6749 §2.3.1 form-url-encoding. Both escape genuinely reserved chars (`:` / `%` / `+` / `/`) so a conformant server reconstructs them, but §2.3.1 _also_ escapes the unreserved `-` `_` `.` `~` — which breaks servers that don't url-decode the Basic credential (a DCR-issued `twd_…` would arrive as `twd%5F…` and miss the lookup). Pass `tokenEndpointAuthMethod: 'client_secret_post'` to send credentials in the body instead, or `'none'` for a public-client registration. When the registration response carries no `client_secret`, the exchange falls back to a public-client POST regardless of the requested method. Any extra registration metadata (e.g. `software_statement`) goes in `clientMetadata.extra`. cli-core does **not** cache the registered client — each login mints a fresh one.
|
|
197
198
|
|
|
198
199
|
Both `createPkceProvider` and `createDcrProvider` accept an optional `errorHints: string[]` that is prepended to every `CliError` they throw. Use it for CLI-specific remediation that should accompany every auth failure (e.g. `['Try again: tw auth login', 'Or set TWIST_API_TOKEN environment variable']`). Server-returned response bodies (for non-2xx replies) are appended after the user hints so the actionable hint stays at the top.
|
|
199
200
|
|
|
@@ -63,8 +63,9 @@ export type DcrProviderOptions<TAccount extends AuthAccount = AuthAccount> = {
|
|
|
63
63
|
* - `authorize`: standard PKCE S256 with `client_id` read from the handshake.
|
|
64
64
|
* - `exchangeCode`: `authorizationCodeGrantRequest` authenticated per the
|
|
65
65
|
* handshake's server-returned auth method (falling back to the configured
|
|
66
|
-
* one) —
|
|
67
|
-
*
|
|
66
|
+
* one) — HTTP Basic (RFC 3986-encoded, see `clientSecretBasicRfc3986`),
|
|
67
|
+
* client-secret POST, or public-client `None` (the last also when the
|
|
68
|
+
* registration response carried no `client_secret`).
|
|
68
69
|
* - `validateToken`: caller-supplied.
|
|
69
70
|
*/
|
|
70
71
|
export declare function createDcrProvider<TAccount extends AuthAccount>(options: DcrProviderOptions<TAccount>): AuthProvider<TAccount>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dcr.d.ts","sourceRoot":"","sources":["../../../src/auth/providers/dcr.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,WAAW,EACX,YAAY,EAOZ,aAAa,EAChB,MAAM,aAAa,CAAA;AAQpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,MAAM,CAAA;AAE9F;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,0BAA0B,CAAA;IACpD,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IACzE,iFAAiF;IACjF,eAAe,EAAE,eAAe,CAAA;IAChC,oCAAoC;IACpC,YAAY,EAAE,eAAe,CAAA;IAC7B,gCAAgC;IAChC,QAAQ,EAAE,eAAe,CAAA;IACzB,cAAc,EAAE,iBAAiB,CAAA;IACjC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,0FAA0F;IAC1F,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrD;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAC3B,CAAA;AAUD
|
|
1
|
+
{"version":3,"file":"dcr.d.ts","sourceRoot":"","sources":["../../../src/auth/providers/dcr.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,WAAW,EACX,YAAY,EAOZ,aAAa,EAChB,MAAM,aAAa,CAAA;AAQpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,MAAM,CAAA;AAE9F;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,0BAA0B,CAAA;IACpD,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IACzE,iFAAiF;IACjF,eAAe,EAAE,eAAe,CAAA;IAChC,oCAAoC;IACpC,YAAY,EAAE,eAAe,CAAA;IAC7B,gCAAgC;IAChC,QAAQ,EAAE,eAAe,CAAA;IACzB,cAAc,EAAE,iBAAiB,CAAA;IACjC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,0FAA0F;IAC1F,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrD;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAC3B,CAAA;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,WAAW,EAC1D,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GACtC,YAAY,CAAC,QAAQ,CAAC,CAkLxB"}
|
|
@@ -19,8 +19,9 @@ const VALID_AUTH_METHODS = new Set([
|
|
|
19
19
|
* - `authorize`: standard PKCE S256 with `client_id` read from the handshake.
|
|
20
20
|
* - `exchangeCode`: `authorizationCodeGrantRequest` authenticated per the
|
|
21
21
|
* handshake's server-returned auth method (falling back to the configured
|
|
22
|
-
* one) —
|
|
23
|
-
*
|
|
22
|
+
* one) — HTTP Basic (RFC 3986-encoded, see `clientSecretBasicRfc3986`),
|
|
23
|
+
* client-secret POST, or public-client `None` (the last also when the
|
|
24
|
+
* registration response carried no `client_secret`).
|
|
24
25
|
* - `validateToken`: caller-supplied.
|
|
25
26
|
*/
|
|
26
27
|
export function createDcrProvider(options) {
|
|
@@ -127,7 +128,7 @@ export function createDcrProvider(options) {
|
|
|
127
128
|
clientAuth = oauth.ClientSecretPost(clientSecret);
|
|
128
129
|
}
|
|
129
130
|
else {
|
|
130
|
-
clientAuth =
|
|
131
|
+
clientAuth = clientSecretBasicRfc3986(clientSecret);
|
|
131
132
|
}
|
|
132
133
|
try {
|
|
133
134
|
// The flow runtime owns CSRF state validation; skip oauth4webapi's
|
|
@@ -148,6 +149,22 @@ export function createDcrProvider(options) {
|
|
|
148
149
|
validateToken: options.validate,
|
|
149
150
|
};
|
|
150
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* HTTP Basic client auth that percent-encodes each credential component with
|
|
154
|
+
* `encodeURIComponent` (RFC 3986) rather than oauth4webapi's stricter RFC 6749
|
|
155
|
+
* §2.3.1 `application/x-www-form-urlencoded` form. Both escape the genuinely
|
|
156
|
+
* reserved chars (`:` `%` `+` `/` …) so a conformant server reconstructs them —
|
|
157
|
+
* but §2.3.1 *also* escapes the unreserved `-` `_` `.` `~`, which breaks servers
|
|
158
|
+
* that don't url-decode the Basic credential (a DCR-issued `twd_…` would arrive
|
|
159
|
+
* as `twd%5F…` and miss the lookup). Leaving those unreserved chars intact keeps
|
|
160
|
+
* such servers working while still transmitting reserved chars safely.
|
|
161
|
+
*/
|
|
162
|
+
function clientSecretBasicRfc3986(clientSecret) {
|
|
163
|
+
return (_as, client, _body, headers) => {
|
|
164
|
+
const credentials = Buffer.from(`${encodeURIComponent(client.client_id)}:${encodeURIComponent(clientSecret)}`, 'utf8').toString('base64');
|
|
165
|
+
headers.set('authorization', `Basic ${credentials}`);
|
|
166
|
+
};
|
|
167
|
+
}
|
|
151
168
|
/** Thread an injected `fetchImpl` into oauth4webapi via its `customFetch` symbol. */
|
|
152
169
|
function customFetchOptions(oauth, fetchImpl) {
|
|
153
170
|
return fetchImpl ? { [oauth.customFetch]: fetchImpl } : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dcr.js","sourceRoot":"","sources":["../../../src/auth/providers/dcr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAY9D,OAAO,EACH,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,GACV,MAAM,YAAY,CAAA;AAyDnB,MAAM,kBAAkB,GAAG,CAAC,6CAA6C,CAAC,CAAA;AAE1E,MAAM,kBAAkB,GAA4C,IAAI,GAAG,CAAC;IACxE,qBAAqB;IACrB,oBAAoB;IACpB,MAAM;CACT,CAAC,CAAA;AAEF
|
|
1
|
+
{"version":3,"file":"dcr.js","sourceRoot":"","sources":["../../../src/auth/providers/dcr.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ export type UpdateCommandOptions = {
|
|
|
9
9
|
currentVersion: string;
|
|
10
10
|
/** Absolute path to the CLI's config file (use `getConfigPath(appName)`). */
|
|
11
11
|
configPath: string;
|
|
12
|
+
/**
|
|
13
|
+
* Homebrew formula to `brew upgrade` when the CLI was installed via
|
|
14
|
+
* Homebrew, e.g. `'todoist-cli'` or a tapped `'doist/tap/todoist-cli'`. Set
|
|
15
|
+
* this on CLIs distributed through brew; omit for npm-only CLIs.
|
|
16
|
+
*/
|
|
17
|
+
brewFormula?: string;
|
|
12
18
|
/** Override the npm registry base URL. Default `'https://registry.npmjs.org'`. */
|
|
13
19
|
registryUrl?: string;
|
|
14
20
|
/**
|
|
@@ -56,8 +62,12 @@ export declare function getConfiguredUpdateChannel(configPath: string): Promise<
|
|
|
56
62
|
* Commander program. The `update` action checks the npm registry for the
|
|
57
63
|
* configured channel's dist-tag, compares against `currentVersion`, and shells
|
|
58
64
|
* out to `npm i -g` (or `pnpm add -g` if pnpm is detected on the running
|
|
59
|
-
* script's path).
|
|
60
|
-
*
|
|
65
|
+
* script's path). When the CLI was installed via Homebrew (the running script
|
|
66
|
+
* resolves into a brew Cellar) it instead runs `brew upgrade <brewFormula>` —
|
|
67
|
+
* note the brew formula can lag the npm publish, so the registry may report an
|
|
68
|
+
* update while `brew upgrade` is a no-op until the formula is bumped.
|
|
69
|
+
* `update switch` flips the persisted `update_channel` field between `'stable'`
|
|
70
|
+
* and `'pre-release'`.
|
|
61
71
|
*
|
|
62
72
|
* Errors as `CliError` (`INVALID_FLAGS`, `INVALID_UPDATE_CHANNEL`,
|
|
63
73
|
* `UPDATE_CHECK_FAILED`, `UPDATE_INSTALL_FAILED`, or the canonical `CONFIG_*`
|
|
@@ -79,6 +89,7 @@ export declare function getConfiguredUpdateChannel(configPath: string): Promise<
|
|
|
79
89
|
* currentVersion: packageJson.version,
|
|
80
90
|
* configPath: getConfigPath('todoist-cli'),
|
|
81
91
|
* changelogCommandName: 'td changelog',
|
|
92
|
+
* brewFormula: 'doist/tap/todoist-cli',
|
|
82
93
|
* withSpinner,
|
|
83
94
|
* })
|
|
84
95
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAGH,KAAK,aAAa,EAErB,MAAM,cAAc,CAAA;AAGrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInD,KAAK,WAAW,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAEnF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B,CAAA;AAED,KAAK,aAAa,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAS3D;AAED,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAclB;AAMD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAW3F;AAyTD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAyB3F"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { realpathSync } from 'node:fs';
|
|
2
3
|
import chalk from 'chalk';
|
|
3
4
|
import { readConfigOrThrow, updateConfigOrThrow, } from '../config.js';
|
|
4
5
|
import { CliError, getErrorMessage } from '../errors.js';
|
|
@@ -77,6 +78,26 @@ export async function getConfiguredUpdateChannel(configPath) {
|
|
|
77
78
|
}
|
|
78
79
|
return channel;
|
|
79
80
|
}
|
|
81
|
+
function isBrewInstall() {
|
|
82
|
+
// Homebrew bin shims symlink into the Cellar on every platform (Apple
|
|
83
|
+
// Silicon `/opt/homebrew`, Intel `/usr/local`, Linuxbrew
|
|
84
|
+
// `/home/linuxbrew/.linuxbrew`), so the resolved real path is the reliable
|
|
85
|
+
// signal — a bare prefix check would false-positive an npm-global install
|
|
86
|
+
// under `/usr/local`. Brew never runs on Windows.
|
|
87
|
+
if (process.platform === 'win32')
|
|
88
|
+
return false;
|
|
89
|
+
const script = process.argv[1];
|
|
90
|
+
if (!script)
|
|
91
|
+
return false;
|
|
92
|
+
let resolved = script;
|
|
93
|
+
try {
|
|
94
|
+
resolved = realpathSync(script);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Unresolvable path: fall back to the literal argv entry.
|
|
98
|
+
}
|
|
99
|
+
return resolved.includes('/Cellar/');
|
|
100
|
+
}
|
|
80
101
|
function detectPackageManager() {
|
|
81
102
|
// `npm_execpath` is only set when the CLI is invoked via a package manager
|
|
82
103
|
// (e.g. `npm run`). Globally-installed CLIs run directly from the shell, so
|
|
@@ -87,20 +108,9 @@ function detectPackageManager() {
|
|
|
87
108
|
.join(' ');
|
|
88
109
|
return haystack.includes('pnpm') ? 'pnpm' : 'npm';
|
|
89
110
|
}
|
|
90
|
-
function
|
|
91
|
-
const command = pm === 'pnpm' ? 'add' : 'install';
|
|
111
|
+
function spawnCapture(command, args, options) {
|
|
92
112
|
return new Promise((resolve, reject) => {
|
|
93
|
-
const child = spawn(
|
|
94
|
-
// Ignore stdout so a chatty install can't deadlock by filling an
|
|
95
|
-
// unread pipe buffer; keep stderr piped so we can surface the tail
|
|
96
|
-
// in the CliError hint on a non-zero exit.
|
|
97
|
-
stdio: ['ignore', 'ignore', 'pipe'],
|
|
98
|
-
// npm/pnpm on Windows are `.cmd` shims that spawn() can't resolve
|
|
99
|
-
// without the shell. Safe to enable here because every argv element
|
|
100
|
-
// is library-controlled (literal command, fixed flags, validated
|
|
101
|
-
// package name + tag).
|
|
102
|
-
shell: process.platform === 'win32',
|
|
103
|
-
});
|
|
113
|
+
const child = spawn(command, args, options);
|
|
104
114
|
let stderr = '';
|
|
105
115
|
child.stderr?.on('data', (data) => {
|
|
106
116
|
stderr += data.toString();
|
|
@@ -109,6 +119,46 @@ function runInstall(pm, packageName, tag) {
|
|
|
109
119
|
child.on('close', (code) => resolve({ exitCode: code ?? 1, stderr }));
|
|
110
120
|
});
|
|
111
121
|
}
|
|
122
|
+
function runInstall(pm, packageName, tag) {
|
|
123
|
+
const command = pm === 'pnpm' ? 'add' : 'install';
|
|
124
|
+
return spawnCapture(pm, [command, '-g', `${packageName}@${tag}`], {
|
|
125
|
+
// Ignore stdout so a chatty install can't deadlock by filling an unread
|
|
126
|
+
// pipe buffer; keep stderr piped so we can surface the tail in the
|
|
127
|
+
// CliError hint on a non-zero exit.
|
|
128
|
+
stdio: ['ignore', 'ignore', 'pipe'],
|
|
129
|
+
// npm/pnpm on Windows are `.cmd` shims that spawn() can't resolve
|
|
130
|
+
// without the shell. Safe to enable here because every argv element is
|
|
131
|
+
// library-controlled (literal command, fixed flags, validated package
|
|
132
|
+
// name + tag).
|
|
133
|
+
shell: process.platform === 'win32',
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function runBrewUpgrade(formula, quiet) {
|
|
137
|
+
return spawnCapture('brew', ['upgrade', formula], {
|
|
138
|
+
// Inherit so brew's own download/upgrade progress reaches the user
|
|
139
|
+
// (these can run for a while). Under machine-readable output, fall back
|
|
140
|
+
// to the npm-style pipe so brew's chatter can't corrupt the JSON/NDJSON
|
|
141
|
+
// stream on stdout.
|
|
142
|
+
stdio: quiet ? ['ignore', 'ignore', 'pipe'] : 'inherit',
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function brewInstalledVersion(formula) {
|
|
146
|
+
// `brew list --versions <name>` prints e.g. `todoist-cli 1.1.0`; the version
|
|
147
|
+
// is the last whitespace token. Tap-qualified formulae list under their leaf
|
|
148
|
+
// name, so strip the tap prefix. Best-effort — any failure yields undefined.
|
|
149
|
+
const leaf = formula.split('/').pop() ?? formula;
|
|
150
|
+
return new Promise((resolve) => {
|
|
151
|
+
let stdout = '';
|
|
152
|
+
const child = spawn('brew', ['list', '--versions', leaf], {
|
|
153
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
154
|
+
});
|
|
155
|
+
child.stdout?.on('data', (data) => {
|
|
156
|
+
stdout += data.toString();
|
|
157
|
+
});
|
|
158
|
+
child.on('error', () => resolve(undefined));
|
|
159
|
+
child.on('close', () => resolve(stdout.trim().split(/\s+/).pop() || undefined));
|
|
160
|
+
});
|
|
161
|
+
}
|
|
112
162
|
function formatChannel(channel) {
|
|
113
163
|
return channel === 'pre-release' ? chalk.magenta('pre-release') : chalk.green('stable');
|
|
114
164
|
}
|
|
@@ -130,6 +180,12 @@ async function runUpdate(options, cmd) {
|
|
|
130
180
|
}
|
|
131
181
|
const tag = getInstallTag(channel);
|
|
132
182
|
const label = channelLabel(channel);
|
|
183
|
+
// Fail fast on a guaranteed-broken install path before spending a registry
|
|
184
|
+
// round-trip. `--check` never installs, so a missing formula is fine there.
|
|
185
|
+
const brew = isBrewInstall();
|
|
186
|
+
if (!cmd.check && brew && !options.brewFormula) {
|
|
187
|
+
throw new CliError('UPDATE_INSTALL_FAILED', 'Installed via Homebrew but no brew formula is configured.', { hints: ['Update manually: brew upgrade <formula>'] });
|
|
188
|
+
}
|
|
133
189
|
let latestVersion;
|
|
134
190
|
try {
|
|
135
191
|
latestVersion = await runWithSpinner(options.withSpinner, `Checking for updates${label}...`, () => fetchLatestVersion({
|
|
@@ -170,12 +226,22 @@ async function runUpdate(options, cmd) {
|
|
|
170
226
|
console.log(headline);
|
|
171
227
|
}
|
|
172
228
|
const pm = detectPackageManager();
|
|
229
|
+
const quiet = Boolean(view.json || view.ndjson);
|
|
230
|
+
const task = () => brew
|
|
231
|
+
? runBrewUpgrade(options.brewFormula, quiet)
|
|
232
|
+
: runInstall(pm, options.packageName, tag);
|
|
233
|
+
// brew prints its own progress, so skip the spinner for it unless we've
|
|
234
|
+
// silenced its output for machine-readable mode.
|
|
235
|
+
const useSpinner = !brew || quiet;
|
|
173
236
|
let result;
|
|
174
237
|
try {
|
|
175
|
-
result =
|
|
238
|
+
result = useSpinner
|
|
239
|
+
? await runWithSpinner(options.withSpinner, `Updating to v${latestVersion}${label}...`, task)
|
|
240
|
+
: await task();
|
|
176
241
|
}
|
|
177
242
|
catch (error) {
|
|
178
|
-
if (
|
|
243
|
+
if (!brew &&
|
|
244
|
+
error instanceof Error &&
|
|
179
245
|
'code' in error &&
|
|
180
246
|
error.code === 'EACCES') {
|
|
181
247
|
throw new CliError('UPDATE_INSTALL_FAILED', 'Permission denied.', {
|
|
@@ -188,11 +254,34 @@ async function runUpdate(options, cmd) {
|
|
|
188
254
|
throw new CliError('UPDATE_INSTALL_FAILED', `Install failed: ${message}`);
|
|
189
255
|
}
|
|
190
256
|
if (result.exitCode !== 0) {
|
|
191
|
-
throw new CliError('UPDATE_INSTALL_FAILED', `${pm} exited with code ${result.exitCode}`, result.stderr ? { hints: [result.stderr.trim()] } : {});
|
|
257
|
+
throw new CliError('UPDATE_INSTALL_FAILED', `${brew ? 'brew' : pm} exited with code ${result.exitCode}`, result.stderr ? { hints: [result.stderr.trim()] } : {});
|
|
192
258
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
259
|
+
// For npm/pnpm we install the exact dist-tag, so the applied version is
|
|
260
|
+
// `latestVersion`. brew owns its own versioning and may be a no-op when the
|
|
261
|
+
// formula lags npm, so read the version brew actually has on disk and derive
|
|
262
|
+
// `installed` from it; if it can't be read, assume the upgrade applied.
|
|
263
|
+
const installedVersion = brew
|
|
264
|
+
? await brewInstalledVersion(options.brewFormula)
|
|
265
|
+
: latestVersion;
|
|
266
|
+
const installed = brew
|
|
267
|
+
? installedVersion === undefined || installedVersion !== currentVersion
|
|
268
|
+
: true;
|
|
269
|
+
// Stable schema across installers: always carry the registry target
|
|
270
|
+
// (`latestVersion`) plus a `via` discriminator; brew adds the applied
|
|
271
|
+
// `installedVersion` when known.
|
|
272
|
+
const summary = {
|
|
273
|
+
currentVersion,
|
|
274
|
+
latestVersion,
|
|
275
|
+
channel,
|
|
276
|
+
installed,
|
|
277
|
+
via: brew ? 'brew' : pm,
|
|
278
|
+
...(brew && installedVersion ? { installedVersion } : {}),
|
|
279
|
+
};
|
|
280
|
+
emitView(view, summary, () => {
|
|
281
|
+
const lines = [
|
|
282
|
+
`${chalk.green('✓')} ${brew ? 'brew upgrade complete' : `Updated to v${latestVersion}`}${label}`,
|
|
283
|
+
];
|
|
284
|
+
if (installed && channel === 'stable' && options.changelogCommandName) {
|
|
196
285
|
lines.push(`${chalk.dim(' Run')} ${chalk.cyan(options.changelogCommandName)} ${chalk.dim('to see what changed')}`);
|
|
197
286
|
}
|
|
198
287
|
return lines;
|
|
@@ -228,8 +317,12 @@ async function runSwitch(options, cmd, program) {
|
|
|
228
317
|
* Commander program. The `update` action checks the npm registry for the
|
|
229
318
|
* configured channel's dist-tag, compares against `currentVersion`, and shells
|
|
230
319
|
* out to `npm i -g` (or `pnpm add -g` if pnpm is detected on the running
|
|
231
|
-
* script's path).
|
|
232
|
-
*
|
|
320
|
+
* script's path). When the CLI was installed via Homebrew (the running script
|
|
321
|
+
* resolves into a brew Cellar) it instead runs `brew upgrade <brewFormula>` —
|
|
322
|
+
* note the brew formula can lag the npm publish, so the registry may report an
|
|
323
|
+
* update while `brew upgrade` is a no-op until the formula is bumped.
|
|
324
|
+
* `update switch` flips the persisted `update_channel` field between `'stable'`
|
|
325
|
+
* and `'pre-release'`.
|
|
233
326
|
*
|
|
234
327
|
* Errors as `CliError` (`INVALID_FLAGS`, `INVALID_UPDATE_CHANNEL`,
|
|
235
328
|
* `UPDATE_CHECK_FAILED`, `UPDATE_INSTALL_FAILED`, or the canonical `CONFIG_*`
|
|
@@ -251,6 +344,7 @@ async function runSwitch(options, cmd, program) {
|
|
|
251
344
|
* currentVersion: packageJson.version,
|
|
252
345
|
* configPath: getConfigPath('todoist-cli'),
|
|
253
346
|
* changelogCommandName: 'td changelog',
|
|
347
|
+
* brewFormula: 'doist/tap/todoist-cli',
|
|
254
348
|
* withSpinner,
|
|
255
349
|
* })
|
|
256
350
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAEH,iBAAiB,EAEjB,mBAAmB,GACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAA;AAG1D,MAAM,oBAAoB,GAAG,4BAA4B,CAAA;AAgCzD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,GAAG,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;AAC5F,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,CAAA;IAClD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC,CAAA;IACnD,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,CAAC,CAAA;AACZ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,SAAiB;IACtD,OAAO,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,OAAsB;IAChD,OAAO,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAIxC;IACG,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAA;IACrD,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,qDAAqD;IACrD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAA;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAA;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,aAAa,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,UAAkB;IAC/D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAa,UAAU,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAA;IACrC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC1C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,QAAQ,CACd,wBAAwB,EACxB,2BAA2B,MAAM,CAAC,OAAO,CAAC,iDAAiD,CAC9F,CAAA;IACL,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,SAAS,oBAAoB;IACzB,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;SACzE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;AACrD,CAAC;AAED,SAAS,UAAU,CACf,EAAU,EACV,WAAmB,EACnB,GAAW;IAEX,MAAM,OAAO,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC,EAAE;YAC9D,iEAAiE;YACjE,mEAAmE;YACnE,2CAA2C;YAC3C,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YACnC,kEAAkE;YAClE,oEAAoE;YACpE,iEAAiE;YACjE,uBAAuB;YACvB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;SACtC,CAAC,CAAA;QACF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAS,aAAa,CAAC,OAAsB;IACzC,OAAO,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3F,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB;IACxC,OAAO,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAChF,CAAC;AAED,KAAK,UAAU,cAAc,CACzB,WAAoC,EACpC,IAAY,EACZ,EAAoB;IAEpB,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACxE,CAAC;AASD,KAAK,UAAU,SAAS,CAAC,OAA6B,EAAE,GAAqB;IACzE,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,gDAAgD,CAAC,CAAA;IACzF,CAAC;IAED,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEpE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,mBAAmB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,OAAM;IACV,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEnC,IAAI,aAAqB,CAAA;IACzB,IAAI,CAAC;QACD,aAAa,GAAG,MAAM,cAAc,CAChC,OAAO,CAAC,WAAW,EACnB,uBAAuB,KAAK,KAAK,EACjC,GAAG,EAAE,CACD,kBAAkB,CAAC;YACf,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC,CACT,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,OAAO,EAAE,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAClC,MAAM,QAAQ,GAAG,cAAc,KAAK,aAAa,CAAA;IACjD,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;IAE3E,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE;YAC7E,MAAM,WAAW,GAAG,cAAc,aAAa,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1D,MAAM,QAAQ,GAAG,QAAQ;gBACrB,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,cAAc,GAAG;gBAC/D,CAAC,CAAC,eAAe;oBACf,CAAC,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE;oBAC9F,CAAC,CAAC,wBAAwB,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,CAAA;YACxG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC;YAC/E,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,cAAc,GAAG;SACxE,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe;YAC5B,CAAC,CAAC,mBAAmB,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE;YACtG,CAAC,CAAC,sBAAsB,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,CAAA;QAC9G,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAEjC,IAAI,MAA4C,CAAA;IAChD,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,cAAc,CACzB,OAAO,CAAC,WAAW,EACnB,gBAAgB,aAAa,GAAG,KAAK,KAAK,EAC1C,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CACjD,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IACI,KAAK,YAAY,KAAK;YACtB,MAAM,IAAI,KAAK;YACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,EACjD,CAAC;YACC,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,oBAAoB,EAAE;gBAC9D,KAAK,EAAE;oBACH,uBAAuB,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,OAAO,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE;iBACpG;aACJ,CAAC,CAAA;QACN,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,QAAQ,CACd,uBAAuB,EACvB,GAAG,EAAE,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACzD,CAAA;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;QAC7E,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,aAAa,GAAG,KAAK,EAAE,CAAC,CAAA;QAC1E,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACvD,KAAK,CAAC,IAAI,CACN,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAC1G,CAAA;QACL,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC;AASD,KAAK,UAAU,SAAS,CACpB,OAA6B,EAC7B,GAAqB,EACrB,OAAgB;IAEhB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAA;IAC9F,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,OAAO,GAAkB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAA;IACxE,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;IAEhE,MAAM,mBAAmB,CAAa,OAAO,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAA;IAEtF,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;QAC7B,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC5B,OAAO;gBACH,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,OAAO,CAAC,EAAE;gBACrE,EAAE;gBACF,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;gBACvF,uEAAuE;gBACvE,6EAA6E;gBAC7E,8CAA8C;gBAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC;aAC1D,CAAA;QACL,CAAC;QACD,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,OAA6B;IACjF,MAAM,MAAM,GAAG,OAAO;SACjB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,UAAU,EAAE,qCAAqC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,UAA4B,EAAE,EAAE;QAC3C,MAAM,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEN,MAAM;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,UAAU,EAAE,gCAAgC,CAAC;SACpD,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,UAAU,EAAE,qCAAqC,CAAC;SACzD,MAAM,CAAC,KAAK;QACT,4DAA4D;QAC5D,oEAAoE;QACpE,kDAAkD;QAClD,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAsB,EAAE,OAAO,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;AACV,CAAC"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|