@doist/cli-core 0.7.0 → 0.8.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 +66 -13
- package/dist/auth/errors.d.ts +7 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +2 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/flow.d.ts +47 -0
- package/dist/auth/flow.d.ts.map +1 -0
- package/dist/auth/flow.js +320 -0
- package/dist/auth/flow.js.map +1 -0
- package/dist/auth/index.d.ts +9 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +4 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/pkce.d.ts +29 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +41 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/providers/pkce.d.ts +42 -0
- package/dist/auth/providers/pkce.d.ts.map +1 -0
- package/dist/auth/providers/pkce.js +114 -0
- package/dist/auth/providers/pkce.js.map +1 -0
- package/dist/auth/types.d.ts +81 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +15 -26
- package/dist/commands/update.js.map +1 -1
- package/dist/errors.d.ts +9 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +6 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +18 -1
- package/dist/options.js.map +1 -1
- package/package.json +10 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { createHash, randomBytes, randomInt } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Default RFC 7636 unreserved character set: `A-Z a-z 0-9 - . _ ~`. 66 chars.
|
|
4
|
+
*
|
|
5
|
+
* Some providers (Todoist) ship a 64-char subset that drops `.~` to keep the
|
|
6
|
+
* verifier alphanumeric-with-dashes-and-underscores; pass it via
|
|
7
|
+
* `generateVerifier({ alphabet })` if you need to match a specific server's
|
|
8
|
+
* canonicalisation.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_VERIFIER_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
|
|
11
|
+
/**
|
|
12
|
+
* Generate a PKCE `code_verifier`. Uses `crypto.randomInt` to map random bytes
|
|
13
|
+
* uniformly onto the alphabet — no modulo bias, no rejection sampling needed
|
|
14
|
+
* at the call site.
|
|
15
|
+
*/
|
|
16
|
+
export function generateVerifier(options = {}) {
|
|
17
|
+
const length = options.length ?? 64;
|
|
18
|
+
const alphabet = options.alphabet ?? DEFAULT_VERIFIER_ALPHABET;
|
|
19
|
+
if (length < 43 || length > 128) {
|
|
20
|
+
throw new RangeError(`PKCE verifier length must be 43..128, got ${length}`);
|
|
21
|
+
}
|
|
22
|
+
if (alphabet.length === 0)
|
|
23
|
+
throw new RangeError('PKCE verifier alphabet must be non-empty');
|
|
24
|
+
let out = '';
|
|
25
|
+
for (let i = 0; i < length; i++) {
|
|
26
|
+
out += alphabet[randomInt(0, alphabet.length)];
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
/** Derive the S256 `code_challenge` from a verifier: base64url(sha256(verifier)). */
|
|
31
|
+
export function deriveChallenge(verifier) {
|
|
32
|
+
return createHash('sha256').update(verifier).digest('base64url');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Generate a CSRF `state` token. 16 random bytes (128 bits) hex-encoded —
|
|
36
|
+
* comfortably above the 32-bit floor recommended by OAuth 2 §10.12.
|
|
37
|
+
*/
|
|
38
|
+
export function generateState() {
|
|
39
|
+
return randomBytes(16).toString('hex');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=pkce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/auth/pkce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAClC,oEAAoE,CAAA;AASxE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAmC,EAAE;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,yBAAyB,CAAA;IAC9D,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAA;IAE3F,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IACzB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AuthAccount, AuthProvider, ValidateInput } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lazy resolver: a literal string, or a function that builds one from the
|
|
4
|
+
* current PKCE handshake (so callers can derive the URL or client_id from
|
|
5
|
+
* the active session's `baseUrl` / per-flow flags).
|
|
6
|
+
*/
|
|
7
|
+
export type PkceLazyString = string | ((ctx: {
|
|
8
|
+
handshake: Record<string, unknown>;
|
|
9
|
+
flags: Record<string, unknown>;
|
|
10
|
+
}) => string);
|
|
11
|
+
export type PkceProviderOptions<TAccount extends AuthAccount = AuthAccount> = {
|
|
12
|
+
/** OAuth 2.0 authorize endpoint. Function form supports per-flow base URLs (Outline self-hosted). */
|
|
13
|
+
authorizeUrl: PkceLazyString;
|
|
14
|
+
/** OAuth 2.0 token endpoint. Function form supports per-flow base URLs. */
|
|
15
|
+
tokenUrl: PkceLazyString;
|
|
16
|
+
/** Pre-registered client_id, or a function that derives one from `input.flags`. */
|
|
17
|
+
clientId: PkceLazyString;
|
|
18
|
+
/** How to join scopes in the authorize URL. Default `' '` (RFC 6749). Pass `','` for Todoist. */
|
|
19
|
+
scopeSeparator?: string;
|
|
20
|
+
verifierAlphabet?: string;
|
|
21
|
+
/** Default 64. */
|
|
22
|
+
verifierLength?: number;
|
|
23
|
+
/** Probe an authenticated endpoint to confirm the token works and resolve the account. */
|
|
24
|
+
validate: (input: ValidateInput) => Promise<TAccount>;
|
|
25
|
+
/** Inject a fetch implementation (tests). */
|
|
26
|
+
fetchImpl?: typeof fetch;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Build an `AuthProvider` for the standard "PKCE S256, public client (no
|
|
30
|
+
* client_secret)" flow. Covers Outline (user-supplied client_id + base_url)
|
|
31
|
+
* and Todoist (pre-registered client_id, custom verifier alphabet,
|
|
32
|
+
* comma-separated scope string).
|
|
33
|
+
*
|
|
34
|
+
* The scope list itself is resolved by the caller before invoking
|
|
35
|
+
* `runOAuthFlow` and arrives on `AuthorizeInput.scopes`; this factory does
|
|
36
|
+
* not own scope resolution.
|
|
37
|
+
*
|
|
38
|
+
* Flows that need DCR or HTTP Basic auth on the token endpoint implement
|
|
39
|
+
* the `AuthProvider` interface directly.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createPkceProvider<TAccount extends AuthAccount>(options: PkceProviderOptions<TAccount>): AuthProvider<TAccount>;
|
|
42
|
+
//# sourceMappingURL=pkce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../src/auth/providers/pkce.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,EACX,YAAY,EAKZ,aAAa,EAChB,MAAM,aAAa,CAAA;AAEpB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,CAAC,CAAC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,MAAM,CAAC,CAAA;AAE/F,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IAC1E,qGAAqG;IACrG,YAAY,EAAE,cAAc,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,EAAE,cAAc,CAAA;IACxB,mFAAmF;IACnF,QAAQ,EAAE,cAAc,CAAA;IACxB,iGAAiG;IACjG,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,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAC3B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,WAAW,EAC3D,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GACvC,YAAY,CAAC,QAAQ,CAAC,CA6GxB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { CliError, getErrorMessage } from '../../errors.js';
|
|
2
|
+
import { deriveChallenge, generateVerifier } from '../pkce.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build an `AuthProvider` for the standard "PKCE S256, public client (no
|
|
5
|
+
* client_secret)" flow. Covers Outline (user-supplied client_id + base_url)
|
|
6
|
+
* and Todoist (pre-registered client_id, custom verifier alphabet,
|
|
7
|
+
* comma-separated scope string).
|
|
8
|
+
*
|
|
9
|
+
* The scope list itself is resolved by the caller before invoking
|
|
10
|
+
* `runOAuthFlow` and arrives on `AuthorizeInput.scopes`; this factory does
|
|
11
|
+
* not own scope resolution.
|
|
12
|
+
*
|
|
13
|
+
* Flows that need DCR or HTTP Basic auth on the token endpoint implement
|
|
14
|
+
* the `AuthProvider` interface directly.
|
|
15
|
+
*/
|
|
16
|
+
export function createPkceProvider(options) {
|
|
17
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
18
|
+
const scopeSeparator = options.scopeSeparator ?? ' ';
|
|
19
|
+
return {
|
|
20
|
+
async authorize(input) {
|
|
21
|
+
const verifier = generateVerifier({
|
|
22
|
+
alphabet: options.verifierAlphabet,
|
|
23
|
+
length: options.verifierLength,
|
|
24
|
+
});
|
|
25
|
+
const challenge = deriveChallenge(verifier);
|
|
26
|
+
const clientId = resolve(options.clientId, input.handshake, input.flags);
|
|
27
|
+
const authorizeUrl = resolve(options.authorizeUrl, input.handshake, input.flags);
|
|
28
|
+
const url = new URL(authorizeUrl);
|
|
29
|
+
url.searchParams.set('response_type', 'code');
|
|
30
|
+
url.searchParams.set('client_id', clientId);
|
|
31
|
+
url.searchParams.set('redirect_uri', input.redirectUri);
|
|
32
|
+
url.searchParams.set('state', input.state);
|
|
33
|
+
url.searchParams.set('code_challenge', challenge);
|
|
34
|
+
url.searchParams.set('code_challenge_method', 'S256');
|
|
35
|
+
if (input.scopes.length > 0) {
|
|
36
|
+
url.searchParams.set('scope', input.scopes.join(scopeSeparator));
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
authorizeUrl: url.toString(),
|
|
40
|
+
handshake: { ...input.handshake, codeVerifier: verifier, clientId },
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
async exchangeCode(input) {
|
|
44
|
+
const verifier = input.handshake.codeVerifier;
|
|
45
|
+
const clientId = input.handshake.clientId;
|
|
46
|
+
if (typeof verifier !== 'string' || typeof clientId !== 'string') {
|
|
47
|
+
throw new CliError('AUTH_TOKEN_EXCHANGE_FAILED', 'Internal: PKCE handshake state lost between authorize and exchange.');
|
|
48
|
+
}
|
|
49
|
+
// `runOAuthFlow` folds the runtime `flags` into the handshake
|
|
50
|
+
// before calling exchange, so a `tokenUrl: ({ flags }) => ...`
|
|
51
|
+
// resolver sees the same flags it saw during authorize.
|
|
52
|
+
const flags = input.handshake.flags ?? {};
|
|
53
|
+
const tokenUrl = resolve(options.tokenUrl, input.handshake, flags);
|
|
54
|
+
const body = new URLSearchParams({
|
|
55
|
+
grant_type: 'authorization_code',
|
|
56
|
+
code: input.code,
|
|
57
|
+
redirect_uri: input.redirectUri,
|
|
58
|
+
client_id: clientId,
|
|
59
|
+
code_verifier: verifier,
|
|
60
|
+
});
|
|
61
|
+
let response;
|
|
62
|
+
try {
|
|
63
|
+
response = await fetchImpl(tokenUrl, {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
headers: {
|
|
66
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
67
|
+
Accept: 'application/json',
|
|
68
|
+
},
|
|
69
|
+
body: body.toString(),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new CliError('AUTH_TOKEN_EXCHANGE_FAILED', `Token endpoint request failed: ${getErrorMessage(error)}`);
|
|
74
|
+
}
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
const detail = await safeReadText(response);
|
|
77
|
+
throw new CliError('AUTH_TOKEN_EXCHANGE_FAILED', `Token endpoint returned HTTP ${response.status}.`, detail ? { hints: [detail] } : {});
|
|
78
|
+
}
|
|
79
|
+
// Parse defensively — a misconfigured proxy can return a 2xx HTML
|
|
80
|
+
// error page that would otherwise blow up with a raw SyntaxError.
|
|
81
|
+
let payload;
|
|
82
|
+
try {
|
|
83
|
+
payload = (await response.json());
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
throw new CliError('AUTH_TOKEN_EXCHANGE_FAILED', `Token endpoint returned non-JSON response: ${getErrorMessage(error)}`);
|
|
87
|
+
}
|
|
88
|
+
if (!payload.access_token) {
|
|
89
|
+
throw new CliError('AUTH_TOKEN_EXCHANGE_FAILED', 'Token endpoint response missing access_token.');
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
accessToken: payload.access_token,
|
|
93
|
+
refreshToken: payload.refresh_token,
|
|
94
|
+
expiresAt: typeof payload.expires_in === 'number'
|
|
95
|
+
? Date.now() + payload.expires_in * 1000
|
|
96
|
+
: undefined,
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
validateToken: options.validate,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function resolve(resolver, handshake, flags) {
|
|
103
|
+
return typeof resolver === 'function' ? resolver({ handshake, flags }) : resolver;
|
|
104
|
+
}
|
|
105
|
+
async function safeReadText(response) {
|
|
106
|
+
try {
|
|
107
|
+
const text = (await response.text()).trim();
|
|
108
|
+
return text.length > 0 ? text : undefined;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=pkce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../../src/auth/providers/pkce.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** A single authenticated identity. `id` is the stable key the store indexes on. */
|
|
2
|
+
export type AuthAccount = {
|
|
3
|
+
id: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
};
|
|
7
|
+
export type PrepareInput = {
|
|
8
|
+
redirectUri: string;
|
|
9
|
+
flags: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
export type PrepareResult = {
|
|
12
|
+
handshake: Record<string, unknown>;
|
|
13
|
+
};
|
|
14
|
+
export type AuthorizeInput = {
|
|
15
|
+
redirectUri: string;
|
|
16
|
+
state: string;
|
|
17
|
+
scopes: string[];
|
|
18
|
+
readOnly: boolean;
|
|
19
|
+
flags: Record<string, unknown>;
|
|
20
|
+
/** Carried over from `prepare()` if the provider implements it. */
|
|
21
|
+
handshake: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
export type AuthorizeResult = {
|
|
24
|
+
authorizeUrl: string;
|
|
25
|
+
/** Carried back into `exchangeCode` (PKCE verifier, etc.). */
|
|
26
|
+
handshake: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
export type ExchangeInput = {
|
|
29
|
+
code: string;
|
|
30
|
+
state: string;
|
|
31
|
+
redirectUri: string;
|
|
32
|
+
/**
|
|
33
|
+
* Carries the `authorize`-time handshake plus the runtime-folded
|
|
34
|
+
* `flags` and `readOnly` values that triggered the flow, so resolvers
|
|
35
|
+
* registered on the provider have the same view they had during
|
|
36
|
+
* `authorize`.
|
|
37
|
+
*/
|
|
38
|
+
handshake: Record<string, unknown>;
|
|
39
|
+
};
|
|
40
|
+
export type ExchangeResult<TAccount extends AuthAccount = AuthAccount> = {
|
|
41
|
+
accessToken: string;
|
|
42
|
+
refreshToken?: string;
|
|
43
|
+
/** Unix-epoch ms. cli-core does not refresh today. */
|
|
44
|
+
expiresAt?: number;
|
|
45
|
+
/** Set when the token endpoint already identifies the account; skips `validateToken`. */
|
|
46
|
+
account?: TAccount;
|
|
47
|
+
};
|
|
48
|
+
export type ValidateInput = {
|
|
49
|
+
token: string;
|
|
50
|
+
/** Same shape as `ExchangeInput.handshake` — carries the folded `flags` / `readOnly`. */
|
|
51
|
+
handshake: Record<string, unknown>;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Strategy interface every auth method implements. cli-core ships
|
|
55
|
+
* `createPkceProvider` for the standard public-client PKCE flow; bespoke
|
|
56
|
+
* methods (DCR, device code, magic-link, …) implement this directly.
|
|
57
|
+
*/
|
|
58
|
+
export type AuthProvider<TAccount extends AuthAccount = AuthAccount> = {
|
|
59
|
+
/** Optional pre-flight (e.g. DCR). Runs before the callback server starts. */
|
|
60
|
+
prepare?(input: PrepareInput): Promise<PrepareResult>;
|
|
61
|
+
authorize(input: AuthorizeInput): Promise<AuthorizeResult>;
|
|
62
|
+
exchangeCode(input: ExchangeInput): Promise<ExchangeResult<TAccount>>;
|
|
63
|
+
/** Skipped when `exchangeCode` already returned an `account`. */
|
|
64
|
+
validateToken(input: ValidateInput): Promise<TAccount>;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Persistent token + account storage. Consumers implement this against
|
|
68
|
+
* whatever storage they need (config file, OS keychain, multi-account…).
|
|
69
|
+
* cli-core does not ship a default implementation; it's a thin enough
|
|
70
|
+
* interface that an inline ~30-line config-file version covers the
|
|
71
|
+
* single-user case.
|
|
72
|
+
*/
|
|
73
|
+
export type TokenStore<TAccount extends AuthAccount = AuthAccount> = {
|
|
74
|
+
active(): Promise<{
|
|
75
|
+
token: string;
|
|
76
|
+
account: TAccount;
|
|
77
|
+
} | null>;
|
|
78
|
+
set(account: TAccount, token: string): Promise<void>;
|
|
79
|
+
clear(): Promise<void>;
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IACrE,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,QAAQ,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IACnE,8EAA8E;IAC9E,OAAO,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACrD,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrE,iEAAiE;IACjE,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACzD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,WAAW,GAAG,WAAW,IAAI;IACjE,MAAM,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAC9D,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAGH,KAAK,aAAa,EAErB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,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,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;AAmND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAyB3F"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { readConfigOrThrow, updateConfigOrThrow, } from '../config.js';
|
|
4
|
-
import { CliError } from '../errors.js';
|
|
5
|
-
import {
|
|
4
|
+
import { CliError, getErrorMessage } from '../errors.js';
|
|
5
|
+
import { emitView } from '../options.js';
|
|
6
6
|
const DEFAULT_REGISTRY_URL = 'https://registry.npmjs.org';
|
|
7
7
|
/**
|
|
8
8
|
* Parse a semver-ish string into core triplet + optional prerelease tag. Build
|
|
@@ -46,12 +46,13 @@ export function getInstallTag(channel) {
|
|
|
46
46
|
}
|
|
47
47
|
export async function fetchLatestVersion(args) {
|
|
48
48
|
const base = args.registryUrl ?? DEFAULT_REGISTRY_URL;
|
|
49
|
+
// Hit the dist-tag endpoint (`/<package>/<tag>`) directly — it returns a
|
|
50
|
+
// single resolved version document, much smaller than the full package
|
|
51
|
+
// metadata. The abbreviated `application/vnd.npm.install-v1+json` format
|
|
52
|
+
// is rejected here with HTTP 406 — it only applies to the package-doc
|
|
53
|
+
// endpoint (`/<package>`), not dist-tag resolutions.
|
|
49
54
|
const url = `${base}/${args.packageName}/${getInstallTag(args.channel)}`;
|
|
50
|
-
|
|
51
|
-
// (~50× smaller than the default response on a typical package).
|
|
52
|
-
const response = await fetch(url, {
|
|
53
|
-
headers: { Accept: 'application/vnd.npm.install-v1+json' },
|
|
54
|
-
});
|
|
55
|
+
const response = await fetch(url);
|
|
55
56
|
if (!response.ok) {
|
|
56
57
|
throw new Error(`Registry request failed (HTTP ${response.status})`);
|
|
57
58
|
}
|
|
@@ -108,18 +109,6 @@ function runInstall(pm, packageName, tag) {
|
|
|
108
109
|
child.on('close', (code) => resolve({ exitCode: code ?? 1, stderr }));
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
|
-
function emit(view, payload, humanLines) {
|
|
112
|
-
if (view.json) {
|
|
113
|
-
console.log(formatJson(payload));
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (view.ndjson) {
|
|
117
|
-
console.log(formatNdjson([payload]));
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
for (const line of humanLines())
|
|
121
|
-
console.log(line);
|
|
122
|
-
}
|
|
123
112
|
function formatChannel(channel) {
|
|
124
113
|
return channel === 'pre-release' ? chalk.magenta('pre-release') : chalk.green('stable');
|
|
125
114
|
}
|
|
@@ -136,7 +125,7 @@ async function runUpdate(options, cmd) {
|
|
|
136
125
|
const view = { json: cmd.json, ndjson: cmd.ndjson };
|
|
137
126
|
const channel = await getConfiguredUpdateChannel(options.configPath);
|
|
138
127
|
if (cmd.channel) {
|
|
139
|
-
|
|
128
|
+
emitView(view, { channel }, () => [`Update channel: ${formatChannel(channel)}`]);
|
|
140
129
|
return;
|
|
141
130
|
}
|
|
142
131
|
const tag = getInstallTag(channel);
|
|
@@ -150,14 +139,14 @@ async function runUpdate(options, cmd) {
|
|
|
150
139
|
}));
|
|
151
140
|
}
|
|
152
141
|
catch (error) {
|
|
153
|
-
const message =
|
|
142
|
+
const message = getErrorMessage(error);
|
|
154
143
|
throw new CliError('UPDATE_CHECK_FAILED', `Failed to check for updates: ${message}`);
|
|
155
144
|
}
|
|
156
145
|
const { currentVersion } = options;
|
|
157
146
|
const upToDate = currentVersion === latestVersion;
|
|
158
147
|
const updateAvailable = !upToDate && isNewer(currentVersion, latestVersion);
|
|
159
148
|
if (cmd.check) {
|
|
160
|
-
|
|
149
|
+
emitView(view, { currentVersion, latestVersion, channel, updateAvailable }, () => {
|
|
161
150
|
const channelLine = ` Channel: ${formatChannel(channel)}`;
|
|
162
151
|
const headline = upToDate
|
|
163
152
|
? `${chalk.green('✓')} Already up to date (v${currentVersion})`
|
|
@@ -169,7 +158,7 @@ async function runUpdate(options, cmd) {
|
|
|
169
158
|
return;
|
|
170
159
|
}
|
|
171
160
|
if (upToDate) {
|
|
172
|
-
|
|
161
|
+
emitView(view, { currentVersion, latestVersion, channel, installed: false }, () => [
|
|
173
162
|
`${chalk.green('✓')} Already up to date${label} (v${currentVersion})`,
|
|
174
163
|
]);
|
|
175
164
|
return;
|
|
@@ -195,13 +184,13 @@ async function runUpdate(options, cmd) {
|
|
|
195
184
|
],
|
|
196
185
|
});
|
|
197
186
|
}
|
|
198
|
-
const message =
|
|
187
|
+
const message = getErrorMessage(error);
|
|
199
188
|
throw new CliError('UPDATE_INSTALL_FAILED', `Install failed: ${message}`);
|
|
200
189
|
}
|
|
201
190
|
if (result.exitCode !== 0) {
|
|
202
191
|
throw new CliError('UPDATE_INSTALL_FAILED', `${pm} exited with code ${result.exitCode}`, result.stderr ? { hints: [result.stderr.trim()] } : {});
|
|
203
192
|
}
|
|
204
|
-
|
|
193
|
+
emitView(view, { currentVersion, latestVersion, channel, installed: true }, () => {
|
|
205
194
|
const lines = [`${chalk.green('✓')} Updated to v${latestVersion}${label}`];
|
|
206
195
|
if (channel === 'stable' && options.changelogCommandName) {
|
|
207
196
|
lines.push(`${chalk.dim(' Run')} ${chalk.cyan(options.changelogCommandName)} ${chalk.dim('to see what changed')}`);
|
|
@@ -219,7 +208,7 @@ async function runSwitch(options, cmd, program) {
|
|
|
219
208
|
const channel = cmd.preRelease ? 'pre-release' : 'stable';
|
|
220
209
|
const view = { json: cmd.json, ndjson: cmd.ndjson };
|
|
221
210
|
await updateConfigOrThrow(options.configPath, { update_channel: channel });
|
|
222
|
-
|
|
211
|
+
emitView(view, { channel }, () => {
|
|
223
212
|
if (channel === 'pre-release') {
|
|
224
213
|
return [
|
|
225
214
|
`${chalk.green('✓')} Update channel set to ${formatChannel(channel)}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AuthErrorCode } from './auth/errors.js';
|
|
1
2
|
import type { CommandErrorCode } from './commands/errors.js';
|
|
2
3
|
import type { ConfigErrorCode } from './config.js';
|
|
3
4
|
export type ErrorType = 'error' | 'info';
|
|
@@ -16,7 +17,7 @@ export type CliErrorOptions = {
|
|
|
16
17
|
* export type CliErrorCode = ConfigErrorCode | SpinnerErrorCode | …
|
|
17
18
|
* ```
|
|
18
19
|
*/
|
|
19
|
-
export type CliErrorCode = CommandErrorCode | ConfigErrorCode;
|
|
20
|
+
export type CliErrorCode = AuthErrorCode | CommandErrorCode | ConfigErrorCode;
|
|
20
21
|
/**
|
|
21
22
|
* Generic CLI error carrying a structured code, optional hints, and a severity
|
|
22
23
|
* type.
|
|
@@ -43,4 +44,11 @@ export declare class CliError<TCode extends string = string> extends Error {
|
|
|
43
44
|
readonly type: ErrorType;
|
|
44
45
|
constructor(code: TCode | CliErrorCode, message: string, options?: CliErrorOptions);
|
|
45
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract a human-readable message from any thrown value. `Error` instances
|
|
49
|
+
* keep their `.message`; everything else stringifies. Used at boundaries that
|
|
50
|
+
* accept arbitrary values (catch blocks, fetch failures) so error formatting
|
|
51
|
+
* stays consistent.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
46
54
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAExC,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;CACnB,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAExC,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;CACnB,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,gBAAgB,GAAG,eAAe,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;IAC9D,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,YAAY,CAAA;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;gBAEZ,IAAI,EAAE,KAAK,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAOzF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD"}
|
package/dist/errors.js
CHANGED
|
@@ -30,4 +30,13 @@ export class CliError extends Error {
|
|
|
30
30
|
this.type = options.type ?? 'error';
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract a human-readable message from any thrown value. `Error` instances
|
|
35
|
+
* keep their `.message`; everything else stringifies. Used at boundaries that
|
|
36
|
+
* accept arbitrary values (catch blocks, fetch failures) so error formatting
|
|
37
|
+
* stays consistent.
|
|
38
|
+
*/
|
|
39
|
+
export function getErrorMessage(error) {
|
|
40
|
+
return error instanceof Error ? error.message : String(error);
|
|
41
|
+
}
|
|
33
42
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,QAAwC,SAAQ,KAAK;IACrD,IAAI,CAAsB;IAC1B,KAAK,CAAW;IAChB,IAAI,CAAW;IAExB,YAAY,IAA0B,EAAE,OAAe,EAAE,UAA2B,EAAE;QAClF,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAA;IACvC,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { BROKEN_CONFIG_STATE_TO_CODE, getConfigPath, readConfig, readConfigOrThrow, readConfigStrict, updateConfig, updateConfigOrThrow, writeConfig, } from './config.js';
|
|
2
2
|
export type { ConfigErrorCode, CoreConfig, ReadConfigStrictResult, UpdateChannel, WriteConfigOptions, } from './config.js';
|
|
3
3
|
export { printEmpty } from './empty.js';
|
|
4
|
-
export { CliError } from './errors.js';
|
|
4
|
+
export { CliError, getErrorMessage } from './errors.js';
|
|
5
5
|
export type { CliErrorCode, CliErrorOptions, ErrorType } from './errors.js';
|
|
6
6
|
export { createAccessibleGate, createGlobalArgsStore, createSpinnerGate, getProgressJsonlPath, isProgressJsonlEnabled, parseGlobalArgs, } from './global-args.js';
|
|
7
7
|
export type { AccessibleGateOptions, GlobalArgs, GlobalArgsStore, SpinnerGateOptions, } from './global-args.js';
|
|
8
8
|
export { formatJson, formatNdjson } from './json.js';
|
|
9
|
+
export { emitView } from './options.js';
|
|
9
10
|
export type { ViewOptions } from './options.js';
|
|
10
11
|
export { createSpinner } from './spinner.js';
|
|
11
12
|
export type { LoadingSpinner, SpinnerColor, SpinnerConfig, SpinnerKit, SpinnerOptions, } from './spinner.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,WAAW,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACR,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,kBAAkB,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,WAAW,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACR,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,kBAAkB,GACrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,GAClB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACR,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,kBAAkB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { BROKEN_CONFIG_STATE_TO_CODE, getConfigPath, readConfig, readConfigOrThrow, readConfigStrict, updateConfig, updateConfigOrThrow, writeConfig, } from './config.js';
|
|
2
2
|
export { printEmpty } from './empty.js';
|
|
3
|
-
export { CliError } from './errors.js';
|
|
3
|
+
export { CliError, getErrorMessage } from './errors.js';
|
|
4
4
|
export { createAccessibleGate, createGlobalArgsStore, createSpinnerGate, getProgressJsonlPath, isProgressJsonlEnabled, parseGlobalArgs, } from './global-args.js';
|
|
5
5
|
export { formatJson, formatNdjson } from './json.js';
|
|
6
|
+
export { emitView } from './options.js';
|
|
6
7
|
export { createSpinner } from './spinner.js';
|
|
7
8
|
export { isCI, isStderrTTY, isStdinTTY, isStdoutTTY } from './terminal.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,WAAW,GACd,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,WAAW,GACd,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,GAClB,MAAM,kBAAkB,CAAA;AAOzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQ5C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/options.d.ts
CHANGED
|
@@ -11,4 +11,10 @@ export type ViewOptions = {
|
|
|
11
11
|
json?: boolean;
|
|
12
12
|
ndjson?: boolean;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* `--json` / `--ndjson` / human emitter. `humanLines` is a thunk so the
|
|
16
|
+
* human-mode strings (chalk colouring, conditional formatting) are never
|
|
17
|
+
* built when machine output is requested.
|
|
18
|
+
*/
|
|
19
|
+
export declare function emitView(view: ViewOptions, payload: Record<string, unknown>, humanLines: () => ReadonlyArray<string>): void;
|
|
14
20
|
//# sourceMappingURL=options.d.ts.map
|
package/dist/options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACpB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,EAAE,MAAM,aAAa,CAAC,MAAM,CAAC,GACxC,IAAI,CAUN"}
|
package/dist/options.js
CHANGED
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import { formatJson, formatNdjson } from './json.js';
|
|
2
|
+
/**
|
|
3
|
+
* `--json` / `--ndjson` / human emitter. `humanLines` is a thunk so the
|
|
4
|
+
* human-mode strings (chalk colouring, conditional formatting) are never
|
|
5
|
+
* built when machine output is requested.
|
|
6
|
+
*/
|
|
7
|
+
export function emitView(view, payload, humanLines) {
|
|
8
|
+
if (view.json) {
|
|
9
|
+
console.log(formatJson(payload));
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (view.ndjson) {
|
|
13
|
+
console.log(formatNdjson([payload]));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
for (const line of humanLines())
|
|
17
|
+
console.log(line);
|
|
18
|
+
}
|
|
2
19
|
//# sourceMappingURL=options.js.map
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAgBpD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACpB,IAAiB,EACjB,OAAgC,EAChC,UAAuC;IAEvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;QAChC,OAAM;IACV,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACpC,OAAM;IACV,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC"}
|