@12ui/design 0.2.30 → 0.2.31
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/SKILL.md +1 -1
- package/dist/auth-request.d.ts +9 -0
- package/dist/auth-request.d.ts.map +1 -0
- package/dist/auth-request.js +32 -0
- package/dist/auth-request.js.map +1 -0
- package/dist/cli-auth-command.d.ts +1 -1
- package/dist/cli-auth-command.d.ts.map +1 -1
- package/dist/cli-auth-command.js +37 -7
- package/dist/cli-auth-command.js.map +1 -1
- package/dist/cli-auth-onboarding.d.ts +15 -1
- package/dist/cli-auth-onboarding.d.ts.map +1 -1
- package/dist/cli-auth-onboarding.js +46 -12
- package/dist/cli-auth-onboarding.js.map +1 -1
- package/dist/cli-cli-command.d.ts.map +1 -1
- package/dist/cli-cli-command.js +5 -1
- package/dist/cli-cli-command.js.map +1 -1
- package/dist/cli-help/index.d.ts +8 -1
- package/dist/cli-help/index.d.ts.map +1 -1
- package/dist/cli-help/setup.d.ts +8 -1
- package/dist/cli-help/setup.d.ts.map +1 -1
- package/dist/cli-help/setup.js +11 -0
- package/dist/cli-help/setup.js.map +1 -1
- package/dist/cli-pending-auth.d.ts +2 -0
- package/dist/cli-pending-auth.d.ts.map +1 -1
- package/dist/cli-pending-auth.js +39 -15
- package/dist/cli-pending-auth.js.map +1 -1
- package/dist/cli-persistence-report.d.ts.map +1 -1
- package/dist/cli-persistence-report.js +6 -0
- package/dist/cli-persistence-report.js.map +1 -1
- package/dist/cli-persistence.d.ts +7 -0
- package/dist/cli-persistence.d.ts.map +1 -1
- package/dist/cli-persistence.js +53 -2
- package/dist/cli-persistence.js.map +1 -1
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +4 -1
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-skill-command.d.ts.map +1 -1
- package/dist/cli-skill-command.js +9 -3
- package/dist/cli-skill-command.js.map +1 -1
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +1 -0
- package/dist/cli-usage.js.map +1 -1
- package/dist/credential-setup.d.ts +4 -1
- package/dist/credential-setup.d.ts.map +1 -1
- package/dist/credential-setup.js +28 -3
- package/dist/credential-setup.js.map +1 -1
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +8 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/login-auth.d.ts +16 -0
- package/dist/login-auth.d.ts.map +1 -1
- package/dist/login-auth.js +107 -25
- package/dist/login-auth.js.map +1 -1
- package/dist/run-journal.d.ts.map +1 -1
- package/dist/run-journal.js +6 -0
- package/dist/run-journal.js.map +1 -1
- package/open-design.json +2 -2
- package/package.json +1 -1
- package/skills/12ui-design/SKILL.md +1 -1
package/SKILL.md
CHANGED
|
@@ -28,7 +28,7 @@ dispatch paid work when it is absent, rejected, or times out.
|
|
|
28
28
|
Use `12ui` when it is available on `PATH`. Otherwise invoke the pinned CLI that
|
|
29
29
|
the plugin's `open-design.json` MCP entry uses:
|
|
30
30
|
|
|
31
|
-
npx -y @12ui/design@0.2.
|
|
31
|
+
npx -y @12ui/design@0.2.31 <command> ...
|
|
32
32
|
|
|
33
33
|
Run `12ui auth status --json` (or its pinned `npx` equivalent) before the paid
|
|
34
34
|
preflight. A desktop user can authenticate with `12ui auth login`; a headless
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Fetch = typeof fetch;
|
|
2
|
+
export declare const AUTH_REQUEST_TIMEOUT_MS = 15000;
|
|
3
|
+
export declare const isAuthRequestTimeout: (error: unknown) => boolean;
|
|
4
|
+
export declare const authRequestFetch: (fetchImpl: Fetch, options?: {
|
|
5
|
+
timeoutMs?: number;
|
|
6
|
+
timeoutSignal?: (milliseconds: number) => AbortSignal;
|
|
7
|
+
}) => Fetch;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=auth-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-request.d.ts","sourceRoot":"","sources":["../src/auth-request.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAE1B,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,OAIrD,CAAC;AASF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,KAAK,EAChB,UAAS;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,WAAW,CAAC;CAClD,KACL,KAoBF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const AUTH_REQUEST_TIMEOUT_MS = 15_000;
|
|
2
|
+
export const isAuthRequestTimeout = (error) => {
|
|
3
|
+
const candidate = error;
|
|
4
|
+
return candidate?.name === 'TimeoutError'
|
|
5
|
+
|| candidate?.code === 'UND_ERR_CONNECT_TIMEOUT';
|
|
6
|
+
};
|
|
7
|
+
const signalForAttempt = (callerSignal, timeoutSignal) => (callerSignal ? AbortSignal.any([callerSignal, timeoutSignal]) : timeoutSignal);
|
|
8
|
+
export const authRequestFetch = (fetchImpl, options = {}) => async (input, init = {}) => {
|
|
9
|
+
const timeoutMs = options.timeoutMs ?? AUTH_REQUEST_TIMEOUT_MS;
|
|
10
|
+
const createTimeoutSignal = options.timeoutSignal ?? AbortSignal.timeout;
|
|
11
|
+
let lastError;
|
|
12
|
+
for (let attempt = 0; attempt < 2; attempt += 1) {
|
|
13
|
+
const timeoutSignal = createTimeoutSignal(timeoutMs);
|
|
14
|
+
try {
|
|
15
|
+
return await fetchImpl(input, {
|
|
16
|
+
...init,
|
|
17
|
+
signal: signalForAttempt(init.signal, timeoutSignal),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
lastError = error;
|
|
22
|
+
const callerCancelled = init.signal?.aborted === true;
|
|
23
|
+
const timedOut = timeoutSignal.aborted && isAuthRequestTimeout(timeoutSignal.reason ?? error);
|
|
24
|
+
if (callerCancelled || !timedOut)
|
|
25
|
+
throw error;
|
|
26
|
+
if (attempt === 1)
|
|
27
|
+
throw timeoutSignal.reason ?? error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw lastError;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=auth-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-request.js","sourceRoot":"","sources":["../src/auth-request.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC9D,MAAM,SAAS,GAAG,KAAkD,CAAC;IACrE,OAAO,SAAS,EAAE,IAAI,KAAK,cAAc;WACpC,SAAS,EAAE,IAAI,KAAK,yBAAyB,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,YAA4C,EAC5C,aAA0B,EACb,EAAE,CAAC,CAChB,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAAgB,EAChB,UAGI,EAAE,EACC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,uBAAuB,CAAC;IAC/D,MAAM,mBAAmB,GAAG,OAAO,CAAC,aAAa,IAAI,WAAW,CAAC,OAAO,CAAC;IACzE,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,KAAK,EAAE;gBAC5B,GAAG,IAAI;gBACP,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC;aACrD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;YACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,IAAI,oBAAoB,CAAC,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YAC9F,IAAI,eAAe,IAAI,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC9C,IAAI,OAAO,KAAK,CAAC;gBAAE,MAAM,aAAa,CAAC,MAAM,IAAI,KAAK,CAAC;QACzD,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type CliFlags } from './cli-arguments.js';
|
|
2
|
-
export declare const runAuthCommand: (action: string | undefined, flags: CliFlags) => Promise<void>;
|
|
2
|
+
export declare const runAuthCommand: (action: string | undefined, flags: CliFlags, argument?: string) => Promise<void>;
|
|
3
3
|
//# sourceMappingURL=cli-auth-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-auth-command.d.ts","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-auth-command.d.ts","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAqD5E,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAuGd,CAAC"}
|
package/dist/cli-auth-command.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { readStoredConversionCredentials, removeStoredConversionCredentials, resolveCredentialFile, } from './credential-store.js';
|
|
2
2
|
import { MissingTwelveUiCredentialError } from './cli-auth-onboarding.js';
|
|
3
|
-
import { setUpConversionCredentials } from './credential-setup.js';
|
|
3
|
+
import { setUpConversionCredentials, storeRedeemedConversionCredentials, } from './credential-setup.js';
|
|
4
4
|
import { booleanFlag, stringFlag } from './cli-arguments.js';
|
|
5
5
|
import { declareClientVersion } from './client-version.js';
|
|
6
6
|
import { usageRefusal } from './cli-usage.js';
|
|
7
|
-
import { hasConfiguredConversionCredential } from './config.js';
|
|
8
|
-
import { revokeConvertApiKey, TWELVE_UI_DEVICE_SCOPES, verifyTwelveUiCredential, } from './login-auth.js';
|
|
7
|
+
import { hasConfiguredConversionCredential, normalizeConversionOrigin } from './config.js';
|
|
8
|
+
import { exchangeTwelveUiLinkCode, normalizeLoginOrigin, revokeConvertApiKey, TWELVE_UI_DEVICE_SCOPES, verifyTwelveUiCredential, } from './login-auth.js';
|
|
9
9
|
const readQuota = async (origin, apiKey) => {
|
|
10
10
|
const response = await fetch(`${origin}/api/v1/convert/quota`, {
|
|
11
11
|
headers: declareClientVersion(new Headers({
|
|
@@ -39,8 +39,36 @@ const verifyAvailableCredentialScope = async (apiKey, loginOrigin) => {
|
|
|
39
39
|
}
|
|
40
40
|
throw new AggregateError(failures, 'The stored 12ui credential could not be verified for any supported design scope');
|
|
41
41
|
};
|
|
42
|
-
export const runAuthCommand = async (action, flags) => {
|
|
42
|
+
export const runAuthCommand = async (action, flags, argument) => {
|
|
43
43
|
const loginOrigin = stringFlag(flags, 'login-origin');
|
|
44
|
+
if (action === 'connect') {
|
|
45
|
+
const normalized = argument?.toUpperCase().replace(/[^A-Z0-9]/gu, '') ?? '';
|
|
46
|
+
if (normalized.length !== 8) {
|
|
47
|
+
throw usageRefusal({
|
|
48
|
+
reason: '`12ui auth connect` requires the 8-character code shown on /connect-cli.',
|
|
49
|
+
code: 'auth_connect_code_required',
|
|
50
|
+
verb: ['auth', 'connect'],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const linkCode = `${normalized.slice(0, 4)}-${normalized.slice(4)}`;
|
|
54
|
+
const origin = normalizeConversionOrigin(stringFlag(flags, 'origin') ?? process.env.TWELVE_UI_ORIGIN ?? 'https://12ui.com');
|
|
55
|
+
const credential = await exchangeTwelveUiLinkCode({
|
|
56
|
+
linkCode,
|
|
57
|
+
connectOrigin: origin,
|
|
58
|
+
loginOrigin,
|
|
59
|
+
requiredScopes: TWELVE_UI_DEVICE_SCOPES,
|
|
60
|
+
});
|
|
61
|
+
const stored = await storeRedeemedConversionCredentials({
|
|
62
|
+
credential,
|
|
63
|
+
origin,
|
|
64
|
+
loginOrigin: normalizeLoginOrigin(loginOrigin),
|
|
65
|
+
requiredScopes: TWELVE_UI_DEVICE_SCOPES,
|
|
66
|
+
});
|
|
67
|
+
if (stored.source !== 'session') {
|
|
68
|
+
console.log(`Connected and verified the personal 12ui account at ${stored.credentialFile}.`);
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
44
72
|
if (action === 'login') {
|
|
45
73
|
const credentials = await setUpConversionCredentials({
|
|
46
74
|
apiKey: stringFlag(flags, 'api-key'),
|
|
@@ -53,8 +81,10 @@ export const runAuthCommand = async (action, flags) => {
|
|
|
53
81
|
console.log(url);
|
|
54
82
|
},
|
|
55
83
|
});
|
|
56
|
-
|
|
57
|
-
|
|
84
|
+
if (credentials.source !== 'session') {
|
|
85
|
+
console.log(`Personal Convert credentials ${credentials.source === 'browser' ? 'created' : 'imported'}`
|
|
86
|
+
+ ` and verified at ${credentials.credentialFile}.`);
|
|
87
|
+
}
|
|
58
88
|
return;
|
|
59
89
|
}
|
|
60
90
|
const stored = await readStoredConversionCredentials();
|
|
@@ -104,7 +134,7 @@ export const runAuthCommand = async (action, flags) => {
|
|
|
104
134
|
}
|
|
105
135
|
throw usageRefusal({
|
|
106
136
|
reason: `${action ? `\`${action}\` is not` : 'No action was given, and'}`
|
|
107
|
-
+ ' a `12ui auth` action. The actions are login, status, and logout.',
|
|
137
|
+
+ ' a `12ui auth` action. The actions are login, connect, status, and logout.',
|
|
108
138
|
code: 'auth_usage',
|
|
109
139
|
verb: ['auth'],
|
|
110
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-auth-command.js","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-auth-command.js","sourceRoot":"","sources":["../src/cli-auth-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
export declare const TWELVE_UI_CONNECT_CLI_URL = "https://12ui.com/connect-cli";
|
|
2
|
+
export type AuthOnboardingFailure = {
|
|
3
|
+
errorClass: string;
|
|
4
|
+
reason: string;
|
|
5
|
+
stage: 'device_code_mint' | 'device_token_redemption';
|
|
6
|
+
};
|
|
2
7
|
export declare const authOnboardingMessage: (options?: {
|
|
3
8
|
agentFacing?: boolean;
|
|
4
9
|
approvalUrl?: string;
|
|
10
|
+
failure?: AuthOnboardingFailure;
|
|
11
|
+
staticFallback?: boolean;
|
|
5
12
|
}) => string;
|
|
6
13
|
export declare const printAuthOnboarding: (options?: {
|
|
7
14
|
approvalUrl?: string;
|
|
15
|
+
failure?: AuthOnboardingFailure;
|
|
16
|
+
staticFallback?: boolean;
|
|
8
17
|
}) => void;
|
|
9
18
|
export declare class MissingTwelveUiCredentialError extends Error {
|
|
10
|
-
|
|
19
|
+
readonly journalErrorClass?: string;
|
|
20
|
+
constructor(options?: string | {
|
|
21
|
+
approvalUrl?: string;
|
|
22
|
+
failure?: AuthOnboardingFailure;
|
|
23
|
+
staticFallback?: boolean;
|
|
24
|
+
});
|
|
11
25
|
}
|
|
12
26
|
//# sourceMappingURL=cli-auth-onboarding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-auth-onboarding.d.ts","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-auth-onboarding.d.ts","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,iCAAiC,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,GAAG,yBAAyB,CAAC;CACvD,CAAC;AAsBF,eAAO,MAAM,qBAAqB,GAAI,UAAS;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,MAcR,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAS;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,KAAG,IAMR,CAAC;AAEF,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAExB,OAAO,GAAE,MAAM,GAAG;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;QAChC,cAAc,CAAC,EAAE,OAAO,CAAC;KACrB;CAWP"}
|
|
@@ -1,21 +1,55 @@
|
|
|
1
1
|
export const TWELVE_UI_CONNECT_CLI_URL = 'https://12ui.com/connect-cli';
|
|
2
|
-
const ownerAuthOnboardingLines = (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
const ownerAuthOnboardingLines = (options) => {
|
|
3
|
+
if (options.staticFallback) {
|
|
4
|
+
return [
|
|
5
|
+
options.failure?.reason
|
|
6
|
+
?? 'Could not generate a coded sign-in link because the sign-in service was unreachable from this environment.',
|
|
7
|
+
'Retry after network access changes to mint a fresh coded link.',
|
|
8
|
+
`Fallback: Sign in at ${options.approvalUrl}, copy the link code, then run \`12ui auth connect CODE\`.`,
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
return [
|
|
12
|
+
`Sign in/Create an account with this magic link: ${options.approvalUrl}`,
|
|
13
|
+
'Takes 5 seconds and you can use 12ui for free.',
|
|
14
|
+
...(options.failure ? [options.failure.reason] : []),
|
|
15
|
+
];
|
|
16
|
+
};
|
|
17
|
+
export const authOnboardingMessage = (options = {}) => {
|
|
18
|
+
const approvalUrl = options.approvalUrl ?? TWELVE_UI_CONNECT_CLI_URL;
|
|
19
|
+
const lines = ownerAuthOnboardingLines({
|
|
20
|
+
approvalUrl,
|
|
21
|
+
staticFallback: options.staticFallback,
|
|
22
|
+
failure: options.failure,
|
|
23
|
+
});
|
|
24
|
+
if (!options.agentFacing)
|
|
25
|
+
return lines.join('\n');
|
|
26
|
+
return [
|
|
27
|
+
...lines,
|
|
28
|
+
options.staticFallback
|
|
29
|
+
? 'Agent: The bare link is not a coded connection. Ask the user for its link code, then run `12ui auth connect CODE`.'
|
|
30
|
+
: 'Agent: Give this coded link to your user, then retry after they approve it.',
|
|
31
|
+
].join('\n');
|
|
32
|
+
};
|
|
11
33
|
export const printAuthOnboarding = (options = {}) => {
|
|
12
|
-
for (const line of ownerAuthOnboardingLines(
|
|
34
|
+
for (const line of ownerAuthOnboardingLines({
|
|
35
|
+
approvalUrl: options.approvalUrl ?? TWELVE_UI_CONNECT_CLI_URL,
|
|
36
|
+
staticFallback: options.staticFallback,
|
|
37
|
+
failure: options.failure,
|
|
38
|
+
}))
|
|
13
39
|
console.log(line);
|
|
14
40
|
};
|
|
15
41
|
export class MissingTwelveUiCredentialError extends Error {
|
|
16
|
-
|
|
17
|
-
|
|
42
|
+
journalErrorClass;
|
|
43
|
+
constructor(options = {}) {
|
|
44
|
+
const normalized = typeof options === 'string' ? { approvalUrl: options } : options;
|
|
45
|
+
super(authOnboardingMessage({
|
|
46
|
+
agentFacing: true,
|
|
47
|
+
approvalUrl: normalized.approvalUrl,
|
|
48
|
+
failure: normalized.failure,
|
|
49
|
+
staticFallback: normalized.staticFallback,
|
|
50
|
+
}));
|
|
18
51
|
this.name = 'MissingTwelveUiCredentialError';
|
|
52
|
+
this.journalErrorClass = normalized.failure?.errorClass;
|
|
19
53
|
}
|
|
20
54
|
}
|
|
21
55
|
//# sourceMappingURL=cli-auth-onboarding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-auth-onboarding.js","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-auth-onboarding.js","sourceRoot":"","sources":["../src/cli-auth-onboarding.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAQxE,MAAM,wBAAwB,GAAG,CAAC,OAIjC,EAAqB,EAAE;IACtB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,MAAM;mBAClB,4GAA4G;YACjH,gEAAgE;YAChE,wBAAwB,OAAO,CAAC,WAAW,4DAA4D;SACxG,CAAC;IACJ,CAAC;IACD,OAAO;QACL,mDAAmD,OAAO,CAAC,WAAW,EAAE;QACxE,gDAAgD;QAChD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAKlC,EAAE,EAAU,EAAE;IAChB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,yBAAyB,CAAC;IACrE,MAAM,KAAK,GAAG,wBAAwB,CAAC;QACrC,WAAW;QACX,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO;QACL,GAAG,KAAK;QACR,OAAO,CAAC,cAAc;YACpB,CAAC,CAAC,oHAAoH;YACtH,CAAC,CAAC,6EAA6E;KAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAIhC,EAAE,EAAQ,EAAE;IACd,KAAK,MAAM,IAAI,IAAI,wBAAwB,CAAC;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,yBAAyB;QAC7D,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,iBAAiB,CAAU;IAEpC,YAAY,UAIR,EAAE;QACJ,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACpF,KAAK,CAAC,qBAAqB,CAAC;YAC1B,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;SAC1C,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-cli-command.d.ts","sourceRoot":"","sources":["../src/cli-cli-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/C,CAAC;AAkBF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc,sBAA2B,KACxC,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"cli-cli-command.d.ts","sourceRoot":"","sources":["../src/cli-cli-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/C,CAAC;AAkBF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc,sBAA2B,KACxC,OAAO,CAAC,IAAI,CAoCd,CAAC"}
|
package/dist/cli-cli-command.js
CHANGED
|
@@ -64,6 +64,10 @@ export const runCliCommand = async (action, flags, dependencies = {}) => {
|
|
|
64
64
|
origin: stringFlag(flags, 'origin'),
|
|
65
65
|
loginOrigin: stringFlag(flags, 'login-origin'),
|
|
66
66
|
});
|
|
67
|
-
printAuthOnboarding({
|
|
67
|
+
printAuthOnboarding({
|
|
68
|
+
approvalUrl: onboarding.approvalUrl,
|
|
69
|
+
failure: onboarding.failure,
|
|
70
|
+
staticFallback: onboarding.source === 'static',
|
|
71
|
+
});
|
|
68
72
|
};
|
|
69
73
|
//# sourceMappingURL=cli-cli-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-cli-command.js","sourceRoot":"","sources":["../src/cli-cli-command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-cli-command.js","sourceRoot":"","sources":["../src/cli-cli-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-help/index.d.ts
CHANGED
|
@@ -141,7 +141,7 @@ export declare const CLI_HELP_CONTEXTS: {
|
|
|
141
141
|
readonly summary: "Manage the personal 12ui credential saved on this machine.";
|
|
142
142
|
readonly sections: readonly [{
|
|
143
143
|
readonly heading: "Actions";
|
|
144
|
-
readonly items: readonly ["login — approve or import an API key, verify it, and save it locally.", "status — verify the saved key and show its account, scopes, origin, and quota.", "logout — revoke the saved key and remove the local copy."];
|
|
144
|
+
readonly items: readonly ["login — approve or import an API key, verify it, and save it locally.", "connect — exchange the one-time code shown on /connect-cli and save the verified credential.", "status — verify the saved key and show its account, scopes, origin, and quota.", "logout — revoke the saved key and remove the local copy."];
|
|
145
145
|
}];
|
|
146
146
|
};
|
|
147
147
|
readonly 'auth login': {
|
|
@@ -154,6 +154,13 @@ export declare const CLI_HELP_CONTEXTS: {
|
|
|
154
154
|
readonly items: readonly ["--login-origin selects the authentication service; --origin selects the 12ui API saved with the key.", "--key-name sets the human-readable credential label."];
|
|
155
155
|
}];
|
|
156
156
|
};
|
|
157
|
+
readonly 'auth connect': {
|
|
158
|
+
readonly summary: "Connect this CLI using a code copied from /connect-cli.";
|
|
159
|
+
readonly sections: readonly [{
|
|
160
|
+
readonly heading: "What it does";
|
|
161
|
+
readonly items: readonly ["Exchanges the one-time link code, verifies the personal credential, and stores it when private config storage is available.", "The code expires after 15 minutes and works once."];
|
|
162
|
+
}];
|
|
163
|
+
};
|
|
157
164
|
readonly 'auth status': {
|
|
158
165
|
readonly summary: "Verify the saved credential and report the account it belongs to.";
|
|
159
166
|
readonly sections: readonly [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli-help/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli-help/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKK,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,SAAS,MAAM,EAAE,KACzB,cAAc,GAAG,SAUnB,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/cli-help/setup.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const SETUP_HELP: {
|
|
|
3
3
|
readonly summary: "Manage the personal 12ui credential saved on this machine.";
|
|
4
4
|
readonly sections: readonly [{
|
|
5
5
|
readonly heading: "Actions";
|
|
6
|
-
readonly items: readonly ["login — approve or import an API key, verify it, and save it locally.", "status — verify the saved key and show its account, scopes, origin, and quota.", "logout — revoke the saved key and remove the local copy."];
|
|
6
|
+
readonly items: readonly ["login — approve or import an API key, verify it, and save it locally.", "connect — exchange the one-time code shown on /connect-cli and save the verified credential.", "status — verify the saved key and show its account, scopes, origin, and quota.", "logout — revoke the saved key and remove the local copy."];
|
|
7
7
|
}];
|
|
8
8
|
};
|
|
9
9
|
readonly 'auth login': {
|
|
@@ -16,6 +16,13 @@ export declare const SETUP_HELP: {
|
|
|
16
16
|
readonly items: readonly ["--login-origin selects the authentication service; --origin selects the 12ui API saved with the key.", "--key-name sets the human-readable credential label."];
|
|
17
17
|
}];
|
|
18
18
|
};
|
|
19
|
+
readonly 'auth connect': {
|
|
20
|
+
readonly summary: "Connect this CLI using a code copied from /connect-cli.";
|
|
21
|
+
readonly sections: readonly [{
|
|
22
|
+
readonly heading: "What it does";
|
|
23
|
+
readonly items: readonly ["Exchanges the one-time link code, verifies the personal credential, and stores it when private config storage is available.", "The code expires after 15 minutes and works once."];
|
|
24
|
+
}];
|
|
25
|
+
};
|
|
19
26
|
readonly 'auth status': {
|
|
20
27
|
readonly summary: "Verify the saved credential and report the account it belongs to.";
|
|
21
28
|
readonly sections: readonly [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli-help/setup.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli-help/setup.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJY,CAAC"}
|
package/dist/cli-help/setup.js
CHANGED
|
@@ -5,6 +5,7 @@ export const SETUP_HELP = {
|
|
|
5
5
|
heading: 'Actions',
|
|
6
6
|
items: [
|
|
7
7
|
'login — approve or import an API key, verify it, and save it locally.',
|
|
8
|
+
'connect — exchange the one-time code shown on /connect-cli and save the verified credential.',
|
|
8
9
|
'status — verify the saved key and show its account, scopes, origin, and quota.',
|
|
9
10
|
'logout — revoke the saved key and remove the local copy.',
|
|
10
11
|
],
|
|
@@ -29,6 +30,16 @@ export const SETUP_HELP = {
|
|
|
29
30
|
},
|
|
30
31
|
],
|
|
31
32
|
},
|
|
33
|
+
'auth connect': {
|
|
34
|
+
summary: 'Connect this CLI using a code copied from /connect-cli.',
|
|
35
|
+
sections: [{
|
|
36
|
+
heading: 'What it does',
|
|
37
|
+
items: [
|
|
38
|
+
'Exchanges the one-time link code, verifies the personal credential, and stores it when private config storage is available.',
|
|
39
|
+
'The code expires after 15 minutes and works once.',
|
|
40
|
+
],
|
|
41
|
+
}],
|
|
42
|
+
},
|
|
32
43
|
'auth status': {
|
|
33
44
|
summary: 'Verify the saved credential and report the account it belongs to.',
|
|
34
45
|
sections: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli-help/setup.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE;QACJ,OAAO,EAAE,4DAA4D;QACrE,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,uEAAuE;oBACvE,gFAAgF;oBAChF,0DAA0D;iBAC3D;aACF,CAAC;KACH;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,kDAAkD;QAC3D,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE;oBACL,oGAAoG;oBACpG,oFAAoF;iBACrF;aACF;YACD;gBACE,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE;oBACL,sGAAsG;oBACtG,sDAAsD;iBACvD;aACF;SACF;KACF;IACD,aAAa,EAAE;QACb,OAAO,EAAE,mEAAmE;QAC5E,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,wGAAwG;oBACxG,iHAAiH;iBAClH;aACF,CAAC;KACH;IACD,aAAa,EAAE;QACb,OAAO,EAAE,gDAAgD;QACzD,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE;oBACL,0EAA0E;oBAC1E,qGAAqG;iBACtG;aACF,CAAC;KACH;IACD,GAAG,EAAE;QACH,OAAO,EAAE,0CAA0C;QACnD,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,oEAAoE;oBACpE,yEAAyE;oBACzE,sEAAsE;iBACvE;aACF,CAAC;KACH;IACD,aAAa,EAAE;QACb,OAAO,EAAE,uFAAuF;QAChG,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,iBAAiB;gBAC1B,KAAK,EAAE;oBACL,kHAAkH;oBAClH,+EAA+E;iBAChF;aACF,CAAC;KACH;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,wDAAwD;QACjE,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,mEAAmE;oBACnE,iHAAiH;iBAClH;aACF,CAAC;KACH;IACD,KAAK,EAAE;QACL,OAAO,EAAE,8DAA8D;QACvE,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,8EAA8E;oBAC9E,gEAAgE;oBAChE,+CAA+C;oBAC/C,oEAAoE;iBACrE;aACF;YACD;gBACE,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,uHAAuH;oBACvH,sEAAsE;iBACvE;aACF;SACF;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,kFAAkF;QAC3F,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE;oBACL,mHAAmH;oBACnH,qHAAqH;iBACtH;aACF,CAAC;KACH;IACD,cAAc,EAAE;QACd,OAAO,EAAE,wDAAwD;QACjE,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE;oBACL,8GAA8G;oBAC9G,0GAA0G;iBAC3G;aACF,CAAC;KACH;IACD,aAAa,EAAE;QACb,OAAO,EAAE,oDAAoD;QAC7D,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,CAAC,sFAAsF,CAAC;aAChG,CAAC;KACH;IACD,cAAc,EAAE;QACd,OAAO,EAAE,yEAAyE;QAClF,QAAQ,EAAE,CAAC;gBACT,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE;oBACL,oDAAoD;oBACpD,4HAA4H;iBAC7H;aACF,CAAC;KACH;CACgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli-help/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type AuthOnboardingFailure } from './cli-auth-onboarding.js';
|
|
1
2
|
type Fetch = typeof fetch;
|
|
2
3
|
export type AuthOnboardingLink = {
|
|
3
4
|
approvalUrl: string;
|
|
4
5
|
source: 'minted' | 'reused' | 'static';
|
|
6
|
+
failure?: AuthOnboardingFailure;
|
|
5
7
|
};
|
|
6
8
|
export type PendingAuthOptions = {
|
|
7
9
|
origin?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-pending-auth.d.ts","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-pending-auth.d.ts","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAC;AAkBlC,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAmEF,eAAO,MAAM,yBAAyB,GACpC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,CAuC5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,GAAG;IAAE,aAAa,EAAE,IAAI,CAAA;CAAE,CAsEtD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAU,MAAM,EACvD,WAAW,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,MAAM,CAchB,CAAC"}
|
package/dist/cli-pending-auth.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { MissingTwelveUiCredentialError, TWELVE_UI_CONNECT_CLI_URL } from './cli-auth-onboarding.js';
|
|
1
|
+
import { MissingTwelveUiCredentialError, TWELVE_UI_CONNECT_CLI_URL, } from './cli-auth-onboarding.js';
|
|
2
|
+
import { AUTH_REQUEST_TIMEOUT_MS, isAuthRequestTimeout } from './auth-request.js';
|
|
2
3
|
import { normalizeConversionOrigin } from './config.js';
|
|
3
4
|
import { storeRedeemedConversionCredentials } from './credential-setup.js';
|
|
4
5
|
import { createTwelveUiDeviceAuthorization, normalizeLoginOrigin, pollTwelveUiDeviceOnce, TWELVE_UI_DEVICE_SCOPES, } from './login-auth.js';
|
|
5
6
|
import { readPendingAuthorization, removePendingAuthorization, resolvePendingAuthFile, writePendingAuthorization, } from './pending-auth-store.js';
|
|
6
|
-
const AUTH_REQUEST_TIMEOUT_MS = 2_500;
|
|
7
|
-
const boundedFetch = (fetchImpl, timeoutMs) => (input, init = {}) => fetchImpl(input, {
|
|
8
|
-
...init,
|
|
9
|
-
signal: init.signal ?? AbortSignal.timeout(timeoutMs),
|
|
10
|
-
});
|
|
11
7
|
const approvalUrlFor = (pending) => {
|
|
12
8
|
const url = new URL('/connect-cli', pending.connectOrigin);
|
|
13
9
|
url.searchParams.set('user_code', pending.userCode);
|
|
@@ -21,9 +17,26 @@ const matchesRequest = (pending, expected) => (pending.connectOrigin === expecte
|
|
|
21
17
|
&& pending.loginOrigin === expected.loginOrigin
|
|
22
18
|
&& pending.scopes.length === TWELVE_UI_DEVICE_SCOPES.length
|
|
23
19
|
&& TWELVE_UI_DEVICE_SCOPES.every((scope) => pending.scopes.includes(scope)));
|
|
24
|
-
const
|
|
20
|
+
const authFailure = (stage, error) => {
|
|
21
|
+
const timedOut = isAuthRequestTimeout(error);
|
|
22
|
+
const message = error instanceof Error ? error.message.trim() : String(error);
|
|
23
|
+
const status = /\bHTTP\s+(\d{3})\b/u.exec(message)?.[1];
|
|
24
|
+
return {
|
|
25
|
+
stage,
|
|
26
|
+
errorClass: timedOut
|
|
27
|
+
? `auth_${stage}_timeout`
|
|
28
|
+
: status
|
|
29
|
+
? `auth_${stage}_http_${status}`
|
|
30
|
+
: `auth_${stage}_unreachable`,
|
|
31
|
+
reason: stage === 'device_code_mint'
|
|
32
|
+
? `Could not generate a coded sign-in link because the sign-in service ${timedOut ? 'could not be reached before the 15-second deadline' : 'was unreachable'} from this environment${message ? ` (${message})` : ''}.`
|
|
33
|
+
: `The coded sign-in approval could not be redeemed because the sign-in service ${timedOut ? 'could not be reached before the 15-second deadline' : 'was unreachable'} from this environment${message ? ` (${message})` : ''}. Retrying this command will use the same approval while it remains valid.`,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const staticLink = (error) => ({
|
|
25
37
|
approvalUrl: TWELVE_UI_CONNECT_CLI_URL,
|
|
26
38
|
source: 'static',
|
|
39
|
+
...(error === undefined ? {} : { failure: authFailure('device_code_mint', error) }),
|
|
27
40
|
});
|
|
28
41
|
const discardUnreadablePending = async (pendingFile) => {
|
|
29
42
|
try {
|
|
@@ -52,12 +65,13 @@ export const prepareAuthOnboardingLink = async (options = {}) => {
|
|
|
52
65
|
}
|
|
53
66
|
if (pending)
|
|
54
67
|
await removePendingAuthorization(pendingFile);
|
|
55
|
-
const fetchImpl = boundedFetch(options.fetch ?? fetch, options.requestTimeoutMs ?? AUTH_REQUEST_TIMEOUT_MS);
|
|
56
68
|
const created = await createTwelveUiDeviceAuthorization({
|
|
57
69
|
loginOrigin: expected.loginOrigin,
|
|
70
|
+
connectOrigin: expected.connectOrigin,
|
|
58
71
|
clientName: '12ui CLI',
|
|
59
72
|
scopes: TWELVE_UI_DEVICE_SCOPES,
|
|
60
|
-
fetch:
|
|
73
|
+
fetch: options.fetch ?? fetch,
|
|
74
|
+
requestTimeoutMs: options.requestTimeoutMs ?? AUTH_REQUEST_TIMEOUT_MS,
|
|
61
75
|
});
|
|
62
76
|
const record = {
|
|
63
77
|
version: 1,
|
|
@@ -71,8 +85,8 @@ export const prepareAuthOnboardingLink = async (options = {}) => {
|
|
|
71
85
|
await writePendingAuthorization(record, pendingFile);
|
|
72
86
|
return { approvalUrl: approvalUrlFor(record), source: 'minted' };
|
|
73
87
|
}
|
|
74
|
-
catch {
|
|
75
|
-
return staticLink();
|
|
88
|
+
catch (error) {
|
|
89
|
+
return staticLink(error);
|
|
76
90
|
}
|
|
77
91
|
};
|
|
78
92
|
export const redeemPendingAuthOnce = async (options = {}) => {
|
|
@@ -104,18 +118,24 @@ export const redeemPendingAuthOnce = async (options = {}) => {
|
|
|
104
118
|
}
|
|
105
119
|
return prepareAuthOnboardingLink(options);
|
|
106
120
|
}
|
|
107
|
-
const fetchImpl =
|
|
121
|
+
const fetchImpl = options.fetch ?? fetch;
|
|
108
122
|
let result;
|
|
109
123
|
try {
|
|
110
124
|
result = await pollTwelveUiDeviceOnce({
|
|
111
125
|
authorization: pending,
|
|
112
126
|
loginOrigin: pending.loginOrigin,
|
|
127
|
+
connectOrigin: pending.connectOrigin,
|
|
113
128
|
requiredScopes: pending.scopes,
|
|
114
129
|
fetch: fetchImpl,
|
|
130
|
+
requestTimeoutMs: options.requestTimeoutMs ?? AUTH_REQUEST_TIMEOUT_MS,
|
|
115
131
|
});
|
|
116
132
|
}
|
|
117
|
-
catch {
|
|
118
|
-
return {
|
|
133
|
+
catch (error) {
|
|
134
|
+
return {
|
|
135
|
+
approvalUrl: approvalUrlFor(pending),
|
|
136
|
+
source: 'reused',
|
|
137
|
+
failure: authFailure('device_token_redemption', error),
|
|
138
|
+
};
|
|
119
139
|
}
|
|
120
140
|
if (result.status === 'pending') {
|
|
121
141
|
return { approvalUrl: approvalUrlFor(pending), source: 'reused' };
|
|
@@ -155,6 +175,10 @@ export const runWithPendingAuthRedemption = async (operation, options = {}) => {
|
|
|
155
175
|
const redemption = await redeemPendingAuthOnce(options);
|
|
156
176
|
if ('authenticated' in redemption)
|
|
157
177
|
return operation();
|
|
158
|
-
throw new MissingTwelveUiCredentialError(
|
|
178
|
+
throw new MissingTwelveUiCredentialError({
|
|
179
|
+
approvalUrl: redemption.approvalUrl,
|
|
180
|
+
failure: redemption.failure,
|
|
181
|
+
staticFallback: redemption.source === 'static',
|
|
182
|
+
});
|
|
159
183
|
};
|
|
160
184
|
//# sourceMappingURL=cli-pending-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-pending-auth.js","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-pending-auth.js","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-persistence-report.d.ts","sourceRoot":"","sources":["../src/cli-persistence-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,oBAAoB,EACjC,UAAS;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,KACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-persistence-report.d.ts","sourceRoot":"","sources":["../src/cli-persistence-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,oBAAoB,EACjC,UAAS;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,KACzC,MAAM,EAiCR,CAAC"}
|
|
@@ -20,6 +20,12 @@ export const cliPersistenceLines = (persistence, options = {}) => {
|
|
|
20
20
|
+ ` ${persistence.retiredLegacyNpmGlobalCli.removed.packageRoot}`, 'Recoverable retired npm-global legacy 12ui bytes:'
|
|
21
21
|
+ ` ${persistence.retiredLegacyNpmGlobalCli.recovery.root}`);
|
|
22
22
|
}
|
|
23
|
+
if (persistence.usedWritableFallback) {
|
|
24
|
+
lines.push('The configured install directories were not writable, so 12ui used a private session install root.');
|
|
25
|
+
}
|
|
26
|
+
if (persistence.pathEntryRequired) {
|
|
27
|
+
lines.push(`Add 12ui to PATH: export PATH="${persistence.pathEntryRequired}:$PATH"`);
|
|
28
|
+
}
|
|
23
29
|
return lines;
|
|
24
30
|
};
|
|
25
31
|
//# sourceMappingURL=cli-persistence-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-persistence-report.js","sourceRoot":"","sources":["../src/cli-persistence-report.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAiC,EACjC,UAAwC,EAAE,EAChC,EAAE;IACZ,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,cAAc;YACpB,CAAC,CAAC,gBAAgB,WAAW,CAAC,OAAO,0BAA0B,WAAW,CAAC,MAAM,EAAE;kBAC/E,OAAO,WAAW,CAAC,QAAQ,cAAc,WAAW,CAAC,QAAQ,GAAG;YACpE,CAAC,CAAC,uBAAuB,WAAW,CAAC,OAAO,QAAQ,WAAW,CAAC,MAAM,EAAE;kBACpE,OAAO,WAAW,CAAC,QAAQ,cAAc,WAAW,CAAC,QAAQ,GAAG;KACvE,CAAC;IACF,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,uCAAuC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAC7E,8CAA8C,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,yBAAyB,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CACR,qDAAqD;cACnD,IAAI,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAC9D,oDAAoD;cAClD,IAAI,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,EACjE,mDAAmD;cACjD,IAAI,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli-persistence-report.js","sourceRoot":"","sources":["../src/cli-persistence-report.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAiC,EACjC,UAAwC,EAAE,EAChC,EAAE;IACZ,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,cAAc;YACpB,CAAC,CAAC,gBAAgB,WAAW,CAAC,OAAO,0BAA0B,WAAW,CAAC,MAAM,EAAE;kBAC/E,OAAO,WAAW,CAAC,QAAQ,cAAc,WAAW,CAAC,QAAQ,GAAG;YACpE,CAAC,CAAC,uBAAuB,WAAW,CAAC,OAAO,QAAQ,WAAW,CAAC,MAAM,EAAE;kBACpE,OAAO,WAAW,CAAC,QAAQ,cAAc,WAAW,CAAC,QAAQ,GAAG;KACvE,CAAC;IACF,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,uCAAuC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAC7E,8CAA8C,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,yBAAyB,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CACR,qDAAqD;cACnD,IAAI,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAC9D,oDAAoD;cAClD,IAAI,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,EACjE,mDAAmD;cACjD,IAAI,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,kCAAkC,WAAW,CAAC,iBAAiB,SAAS,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|