latchkey 3.18.2 → 3.19.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/README.md +3 -0
- package/dist/src/apiCredentials/base.d.ts +16 -1
- package/dist/src/apiCredentials/base.d.ts.map +1 -1
- package/dist/src/apiCredentials/base.js +14 -3
- package/dist/src/apiCredentials/base.js.map +1 -1
- package/dist/src/apiCredentials/utils.d.ts +4 -0
- package/dist/src/apiCredentials/utils.d.ts.map +1 -1
- package/dist/src/apiCredentials/utils.js +33 -5
- package/dist/src/apiCredentials/utils.js.map +1 -1
- package/dist/src/browserStateImport.d.ts +9 -0
- package/dist/src/browserStateImport.d.ts.map +1 -1
- package/dist/src/browserStateImport.js +47 -10
- package/dist/src/browserStateImport.js.map +1 -1
- package/dist/src/cliCommands.d.ts.map +1 -1
- package/dist/src/cliCommands.js +5 -1
- package/dist/src/cliCommands.js.map +1 -1
- package/dist/src/errorMessages.d.ts +26 -2
- package/dist/src/errorMessages.d.ts.map +1 -1
- package/dist/src/errorMessages.js +30 -2
- package/dist/src/errorMessages.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/github.d.ts.map +1 -1
- package/dist/src/services/github.js +5 -1
- package/dist/src/services/github.js.map +1 -1
- package/dist/src/sharedOperations.d.ts +6 -0
- package/dist/src/sharedOperations.d.ts.map +1 -1
- package/dist/src/sharedOperations.js +9 -1
- package/dist/src/sharedOperations.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tests/apiCredentials.test.js +20 -0
- package/dist/tests/apiCredentials.test.js.map +1 -1
- package/dist/tests/apiCredentialsUtils.test.js +76 -0
- package/dist/tests/apiCredentialsUtils.test.js.map +1 -1
- package/dist/tests/browserStateImport.test.js +46 -2
- package/dist/tests/browserStateImport.test.js.map +1 -1
- package/dist/tests/cli.test.js +20 -1
- package/dist/tests/cli.test.js.map +1 -1
- package/dist/tests/sharedOperations.test.js +41 -1
- package/dist/tests/sharedOperations.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -280,6 +280,9 @@ Each entry reports a credentials status of:
|
|
|
280
280
|
- `valid`
|
|
281
281
|
- `unknown` (for user-registered services)
|
|
282
282
|
|
|
283
|
+
When it is known that the credentials stop working after some
|
|
284
|
+
date the entry also carries a `validUntil` timestamp.
|
|
285
|
+
|
|
283
286
|
A service with no stored credentials shows an empty `credentials`
|
|
284
287
|
object.
|
|
285
288
|
|
|
@@ -42,6 +42,13 @@ export interface ApiCredentials {
|
|
|
42
42
|
* Returns true if expired, false if valid, or undefined if expiration is unknown.
|
|
43
43
|
*/
|
|
44
44
|
isExpired(): boolean | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* The ISO 8601 timestamp after which the credentials stop working for good,
|
|
47
|
+
* when known. Unlike `isExpired()`, which also covers access tokens that a
|
|
48
|
+
* refresh brings back, this is a hard limit: only a new login helps past it.
|
|
49
|
+
* Refreshable credentials leave it out.
|
|
50
|
+
*/
|
|
51
|
+
readonly validUntil?: string;
|
|
45
52
|
}
|
|
46
53
|
/**
|
|
47
54
|
* How stored credentials of one `objectType` are read back. This is the static
|
|
@@ -60,19 +67,27 @@ export interface ApiCredentialsType {
|
|
|
60
67
|
export declare const AuthorizationBearerSchema: z.ZodObject<{
|
|
61
68
|
objectType: z.ZodLiteral<"authorizationBearer">;
|
|
62
69
|
token: z.ZodString;
|
|
70
|
+
validUntil: z.ZodOptional<z.ZodString>;
|
|
63
71
|
}, "strip", z.ZodTypeAny, {
|
|
64
72
|
objectType: "authorizationBearer";
|
|
65
73
|
token: string;
|
|
74
|
+
validUntil?: string | undefined;
|
|
66
75
|
}, {
|
|
67
76
|
objectType: "authorizationBearer";
|
|
68
77
|
token: string;
|
|
78
|
+
validUntil?: string | undefined;
|
|
69
79
|
}>;
|
|
70
80
|
export type AuthorizationBearerData = z.infer<typeof AuthorizationBearerSchema>;
|
|
71
81
|
export declare class AuthorizationBearer implements ApiCredentials {
|
|
72
82
|
static readonly objectType: "authorizationBearer";
|
|
73
83
|
readonly objectType: "authorizationBearer";
|
|
74
84
|
readonly token: string;
|
|
75
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Set by logins that know how long the token they created lasts; a token
|
|
87
|
+
* supplied by hand has no known lifetime.
|
|
88
|
+
*/
|
|
89
|
+
readonly validUntil?: string;
|
|
90
|
+
constructor(token: string, validUntil?: string);
|
|
76
91
|
injectIntoCurlCall(curlArguments: readonly string[]): Promise<readonly string[]>;
|
|
77
92
|
isExpired(): boolean | undefined;
|
|
78
93
|
toJSON(): AuthorizationBearerData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,IAAI,wBAAwB,CAAC;IACpC;;;;;;;;;OASG;IACH,kBAAkB,CAChB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9B;;;OAGG;IACH,SAAS,IAAI,OAAO,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,29 +15,40 @@ export var ApiCredentialStatus;
|
|
|
15
15
|
export const AuthorizationBearerSchema = z.object({
|
|
16
16
|
objectType: z.literal('authorizationBearer'),
|
|
17
17
|
token: z.string(),
|
|
18
|
+
validUntil: z.string().optional(),
|
|
18
19
|
});
|
|
19
20
|
export class AuthorizationBearer {
|
|
20
21
|
static objectType = 'authorizationBearer';
|
|
21
22
|
objectType = AuthorizationBearer.objectType;
|
|
22
23
|
token;
|
|
23
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Set by logins that know how long the token they created lasts; a token
|
|
26
|
+
* supplied by hand has no known lifetime.
|
|
27
|
+
*/
|
|
28
|
+
validUntil;
|
|
29
|
+
constructor(token, validUntil) {
|
|
24
30
|
this.token = token;
|
|
31
|
+
this.validUntil = validUntil;
|
|
25
32
|
}
|
|
26
33
|
injectIntoCurlCall(curlArguments) {
|
|
27
34
|
return Promise.resolve(['-H', `Authorization: Bearer ${this.token}`, ...curlArguments]);
|
|
28
35
|
}
|
|
29
36
|
isExpired() {
|
|
30
|
-
|
|
37
|
+
if (this.validUntil === undefined) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return Date.now() >= new Date(this.validUntil).getTime();
|
|
31
41
|
}
|
|
32
42
|
toJSON() {
|
|
33
43
|
return {
|
|
34
44
|
objectType: this.objectType,
|
|
35
45
|
token: this.token,
|
|
46
|
+
validUntil: this.validUntil,
|
|
36
47
|
};
|
|
37
48
|
}
|
|
38
49
|
static fromJSON(data) {
|
|
39
50
|
const parsed = AuthorizationBearerSchema.parse(data);
|
|
40
|
-
return new AuthorizationBearer(parsed.token);
|
|
51
|
+
return new AuthorizationBearer(parsed.token, parsed.validUntil);
|
|
41
52
|
}
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/apiCredentials/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACrB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/apiCredentials/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,10 @@ import type { Service } from '../services/core/base.js';
|
|
|
8
8
|
* Try to refresh expired credentials if the service supports it.
|
|
9
9
|
* Returns refreshed credentials if successful, otherwise returns the original credentials.
|
|
10
10
|
*
|
|
11
|
+
* Only one refresh per service and account runs at a time within the process:
|
|
12
|
+
* concurrent callers wait for the refresh already in flight and share its
|
|
13
|
+
* result instead of issuing their own refresh request.
|
|
14
|
+
*
|
|
11
15
|
* When `disableRefresh` is true, the credentials are never refreshed. This is
|
|
12
16
|
* used when the credentials are shared with another machine and refreshing here
|
|
13
17
|
* would otherwise risk exhausting the refresh token.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/apiCredentials/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AA8BxD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,UAAQ,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,cAAc,GAAG,IAAI,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,UAAQ,EACtB,OAAO,UAAQ,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
|
|
@@ -2,10 +2,34 @@
|
|
|
2
2
|
* Shared credential utilities used by both the CLI and the gateway.
|
|
3
3
|
*/
|
|
4
4
|
import { ApiCredentialStatus } from './base.js';
|
|
5
|
+
/**
|
|
6
|
+
* Refreshes currently in flight, keyed by service and account. A long-running
|
|
7
|
+
* process such as the gateway can receive many requests for the same expired
|
|
8
|
+
* credentials at once; without this, each of them would call the service's
|
|
9
|
+
* refresh endpoint with the same refresh token, which risks exhausting it
|
|
10
|
+
* (many providers rotate refresh tokens and invalidate the old one).
|
|
11
|
+
*/
|
|
12
|
+
const inFlightRefreshes = new Map();
|
|
13
|
+
function refreshKey(serviceName, account) {
|
|
14
|
+
// An unspecified account always resolves to the service's single stored
|
|
15
|
+
// account, so it is safe to treat it as its own key.
|
|
16
|
+
return `${serviceName}\u0000${account ?? ''}`;
|
|
17
|
+
}
|
|
18
|
+
async function refreshAndSave(service, apiCredentials, apiCredentialStore, account) {
|
|
19
|
+
const refreshedCredentials = await service.refreshCredentials(apiCredentials);
|
|
20
|
+
if (refreshedCredentials !== null) {
|
|
21
|
+
apiCredentialStore.save(service.name, refreshedCredentials, account);
|
|
22
|
+
}
|
|
23
|
+
return refreshedCredentials;
|
|
24
|
+
}
|
|
5
25
|
/**
|
|
6
26
|
* Try to refresh expired credentials if the service supports it.
|
|
7
27
|
* Returns refreshed credentials if successful, otherwise returns the original credentials.
|
|
8
28
|
*
|
|
29
|
+
* Only one refresh per service and account runs at a time within the process:
|
|
30
|
+
* concurrent callers wait for the refresh already in flight and share its
|
|
31
|
+
* result instead of issuing their own refresh request.
|
|
32
|
+
*
|
|
9
33
|
* When `disableRefresh` is true, the credentials are never refreshed. This is
|
|
10
34
|
* used when the credentials are shared with another machine and refreshing here
|
|
11
35
|
* would otherwise risk exhausting the refresh token.
|
|
@@ -14,12 +38,16 @@ export async function maybeRefreshCredentials(service, apiCredentials, apiCreden
|
|
|
14
38
|
if (disableRefresh || apiCredentials.isExpired() !== true || !service.refreshCredentials) {
|
|
15
39
|
return apiCredentials;
|
|
16
40
|
}
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
41
|
+
const key = refreshKey(service.name, account);
|
|
42
|
+
let refresh = inFlightRefreshes.get(key);
|
|
43
|
+
if (refresh === undefined) {
|
|
44
|
+
refresh = refreshAndSave(service, apiCredentials, apiCredentialStore, account).finally(() => {
|
|
45
|
+
inFlightRefreshes.delete(key);
|
|
46
|
+
});
|
|
47
|
+
inFlightRefreshes.set(key, refresh);
|
|
21
48
|
}
|
|
22
|
-
|
|
49
|
+
const refreshedCredentials = await refresh;
|
|
50
|
+
return refreshedCredentials ?? apiCredentials;
|
|
23
51
|
}
|
|
24
52
|
export async function getCredentialStatus(service, credentials, apiCredentialStore, disableRefresh = false, offline = false, account) {
|
|
25
53
|
if (credentials === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/apiCredentials/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAuB,MAAM,WAAW,CAAC;AAIrE
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/apiCredentials/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAuB,MAAM,WAAW,CAAC;AAIrE;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA0C,CAAC;AAE5E,SAAS,UAAU,CAAC,WAAmB,EAAE,OAA2B;IAClE,wEAAwE;IACxE,qDAAqD;IACrD,OAAO,GAAG,WAAW,SAAS,OAAO,IAAI,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAgB,EAChB,cAA8B,EAC9B,kBAAsC,EACtC,OAA2B;IAE3B,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,kBAAmB,CAAC,cAAc,CAAC,CAAC;IAC/E,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAClC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAgB,EAChB,cAA8B,EAC9B,kBAAsC,EACtC,cAAc,GAAG,KAAK,EACtB,OAAgB;IAEhB,IAAI,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACzF,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1F,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC;IAC3C,OAAO,oBAAoB,IAAI,cAAc,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,WAAkC,EAClC,kBAAsC,EACtC,cAAc,GAAG,KAAK,EACtB,OAAO,GAAG,KAAK,EACf,OAAgB;IAEhB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,mBAAmB,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAC7C,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,OAAO,CACR,CAAC;IACF,OAAO,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { BrowserContext } from 'playwright';
|
|
12
12
|
import type { EncryptedStorage } from './encryptedStorage.js';
|
|
13
|
+
import { CodedError } from './errorMessages.js';
|
|
13
14
|
import type { Service } from './services/index.js';
|
|
14
15
|
export declare class ChromeNotFoundError extends Error {
|
|
15
16
|
constructor();
|
|
@@ -20,6 +21,9 @@ export declare class ChromeProfileNotFoundError extends Error {
|
|
|
20
21
|
export declare class ChromeProfileTooLargeError extends Error {
|
|
21
22
|
constructor(sizeInBytes: number, limitInBytes: number);
|
|
22
23
|
}
|
|
24
|
+
export declare class ChromeProfileNotReadableError extends CodedError {
|
|
25
|
+
constructor(profilePath: string, cause: Error);
|
|
26
|
+
}
|
|
23
27
|
export declare class InvalidBrowserStateError extends Error {
|
|
24
28
|
constructor(message: string);
|
|
25
29
|
}
|
|
@@ -36,6 +40,11 @@ export declare function mergeBrowserStorageStates(existing: BrowserStorageState,
|
|
|
36
40
|
export declare function parseBrowserStorageState(content: string): BrowserStorageState;
|
|
37
41
|
/** Total size of what {@link copyDefaultProfile} would copy. */
|
|
38
42
|
export declare function measureCopiedUserDataSizeInBytes(chromeUserDataDirectory: string): number;
|
|
43
|
+
/**
|
|
44
|
+
* Copy the cookies and localStorage of the default profile into a fresh user
|
|
45
|
+
* data directory and return its path.
|
|
46
|
+
*/
|
|
47
|
+
export declare function copyDefaultProfile(chromeUserDataDirectory: string): string;
|
|
39
48
|
export interface BrowserStateImportResult {
|
|
40
49
|
readonly importedCookieCount: number;
|
|
41
50
|
/** Origins (among those asked for) that had localStorage to import. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserStateImport.d.ts","sourceRoot":"","sources":["../../src/browserStateImport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"browserStateImport.d.ts","sourceRoot":"","sources":["../../src/browserStateImport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAc,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,WAAW,EAAE,MAAM;CAIhC;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAQtD;AAmBD,qBAAa,6BAA8B,SAAQ,UAAU;gBAC/C,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAI9C;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AA+CtF,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAmBnD;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAOnF;AAMD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,mBAAmB,GAC5B,mBAAmB,CAUrB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAe7E;AAkBD,gEAAgE;AAChE,wBAAgB,gCAAgC,CAAC,uBAAuB,EAAE,MAAM,GAAG,MAAM,CAKxF;AAeD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,uBAAuB,EAAE,MAAM,GAAG,MAAM,CAwB1E;AA6DD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,uEAAuE;IACvE,QAAQ,CAAC,2BAA2B,EAAE,SAAS,MAAM,EAAE,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,OAAO,CAAC,wBAAwB,CAAC,CA+BnC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { cpSync, existsSync, mkdtempSync, readdirSync, rmSync, statSync } from 'node:fs';
|
|
12
12
|
import { homedir, platform, tmpdir } from 'node:os';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
|
+
import { CodedError, ErrorCodes } from './errorMessages.js';
|
|
14
15
|
import { loadPlaywright } from './playwrightLoader.js';
|
|
15
16
|
export class ChromeNotFoundError extends Error {
|
|
16
17
|
constructor() {
|
|
@@ -32,6 +33,24 @@ export class ChromeProfileTooLargeError extends Error {
|
|
|
32
33
|
this.name = 'ChromeProfileTooLargeError';
|
|
33
34
|
}
|
|
34
35
|
}
|
|
36
|
+
/** Opens System Settings on the list of applications with Full Disk Access. */
|
|
37
|
+
const MACOS_FULL_DISK_ACCESS_SETTINGS_URL = 'x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles';
|
|
38
|
+
function describeUnreadableProfile(profilePath, cause) {
|
|
39
|
+
const base = `The Google Chrome profile at ${profilePath} could not be read: ${cause.message}.`;
|
|
40
|
+
if (platform() !== 'darwin') {
|
|
41
|
+
return base;
|
|
42
|
+
}
|
|
43
|
+
return (`${base} On macOS this means that the application running Latchkey (your terminal, ` +
|
|
44
|
+
'or the application that invoked it) does not have Full Disk Access. Grant it under ' +
|
|
45
|
+
'System Settings > Privacy & Security > Full Disk Access (or open ' +
|
|
46
|
+
`${MACOS_FULL_DISK_ACCESS_SETTINGS_URL} ), then restart that application and try again.`);
|
|
47
|
+
}
|
|
48
|
+
export class ChromeProfileNotReadableError extends CodedError {
|
|
49
|
+
constructor(profilePath, cause) {
|
|
50
|
+
super(ErrorCodes.chromeProfileNotReadable, describeUnreadableProfile(profilePath, cause));
|
|
51
|
+
this.name = 'ChromeProfileNotReadableError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
35
54
|
export class InvalidBrowserStateError extends Error {
|
|
36
55
|
constructor(message) {
|
|
37
56
|
super(message);
|
|
@@ -156,27 +175,45 @@ export function measureCopiedUserDataSizeInBytes(chromeUserDataDirectory) {
|
|
|
156
175
|
.map(measureSizeInBytes)
|
|
157
176
|
.reduce((total, size) => total + size, 0);
|
|
158
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Whether the error is the operating system refusing access to a file. On
|
|
180
|
+
* macOS, privacy protection (the lack of Full Disk Access) shows up as EPERM
|
|
181
|
+
* even though `stat` on the same path succeeds.
|
|
182
|
+
*/
|
|
183
|
+
function isPermissionDeniedError(error) {
|
|
184
|
+
return (error instanceof Error &&
|
|
185
|
+
(error.code === 'EPERM' ||
|
|
186
|
+
error.code === 'EACCES'));
|
|
187
|
+
}
|
|
159
188
|
/**
|
|
160
189
|
* Copy the cookies and localStorage of the default profile into a fresh user
|
|
161
190
|
* data directory and return its path.
|
|
162
191
|
*/
|
|
163
|
-
function copyDefaultProfile(chromeUserDataDirectory) {
|
|
192
|
+
export function copyDefaultProfile(chromeUserDataDirectory) {
|
|
164
193
|
const profileDirectory = join(chromeUserDataDirectory, DEFAULT_PROFILE_DIRECTORY_NAME);
|
|
165
194
|
if (!existsSync(profileDirectory)) {
|
|
166
195
|
throw new ChromeProfileNotFoundError(profileDirectory);
|
|
167
196
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
197
|
+
try {
|
|
198
|
+
const copySizeInBytes = measureCopiedUserDataSizeInBytes(chromeUserDataDirectory);
|
|
199
|
+
if (copySizeInBytes > MAXIMUM_COPY_SIZE_IN_BYTES) {
|
|
200
|
+
throw new ChromeProfileTooLargeError(copySizeInBytes, MAXIMUM_COPY_SIZE_IN_BYTES);
|
|
201
|
+
}
|
|
202
|
+
const temporaryUserDataDirectory = mkdtempSync(join(tmpdir(), 'latchkey-chrome-profile-'));
|
|
203
|
+
for (const relativePath of COPIED_USER_DATA_PATHS) {
|
|
204
|
+
const source = join(chromeUserDataDirectory, relativePath);
|
|
205
|
+
if (existsSync(source)) {
|
|
206
|
+
cpSync(source, join(temporaryUserDataDirectory, relativePath), { recursive: true });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return temporaryUserDataDirectory;
|
|
171
210
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (existsSync(source)) {
|
|
176
|
-
cpSync(source, join(temporaryUserDataDirectory, relativePath), { recursive: true });
|
|
211
|
+
catch (error) {
|
|
212
|
+
if (isPermissionDeniedError(error)) {
|
|
213
|
+
throw new ChromeProfileNotReadableError(profileDirectory, error);
|
|
177
214
|
}
|
|
215
|
+
throw error;
|
|
178
216
|
}
|
|
179
|
-
return temporaryUserDataDirectory;
|
|
180
217
|
}
|
|
181
218
|
/**
|
|
182
219
|
* Read the localStorage of the given origins. Every request is answered with an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserStateImport.js","sourceRoot":"","sources":["../../src/browserStateImport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browserStateImport.js","sourceRoot":"","sources":["../../src/browserStateImport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliCommands.d.ts","sourceRoot":"","sources":["../../src/cliCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,EAEL,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AA0BlC,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAKL,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EASL,OAAO,EAIR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,QAAQ,IAAI,YAAY,EACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAqC1B;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,UAAU,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,OAAO,YAAY,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,OAAO,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgC1E;AAqQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"cliCommands.d.ts","sourceRoot":"","sources":["../../src/cliCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,EAEL,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AA0BlC,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAKL,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EASL,OAAO,EAIR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,QAAQ,IAAI,YAAY,EACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAqC1B;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,UAAU,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,OAAO,YAAY,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,OAAO,EAC/B,QAAQ,CAAC,EAAE,uBAAuB,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,eAAe,CAAC,CAgC1E;AAqQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAupC9E"}
|
package/dist/src/cliCommands.js
CHANGED
|
@@ -23,7 +23,7 @@ import { createLatchkeySdk } from './pluginSdk.js';
|
|
|
23
23
|
import { LOGIN_FLOWS, LoginCancelledError, LoginFailedError, LoginFlowParamsInvalidError, NoCurlCredentialsNotSupportedError, PrepareInputInvalidError, PrepareNotSupportedError, resolveLoginFlow, UnknownLoginFlowError, formatLoginFlowsHelp, } from './services/index.js';
|
|
24
24
|
import { CurlParseError, extractUrlFromCurlArguments, run as curlRun, runAsync as curlRunAsync, } from './curl.js';
|
|
25
25
|
import { checkPermission, PermissionCheckError, } from './permissions.js';
|
|
26
|
-
import { ErrorMessages } from './errorMessages.js';
|
|
26
|
+
import { CodedError, ErrorMessages, formatCodedErrorAsJson } from './errorMessages.js';
|
|
27
27
|
import { LATEST_VERSION, MigrationError, readDataFormatVersionOfDirectory, writeDataFormatVersionOfDirectory, } from './migrations.js';
|
|
28
28
|
import { getSkillMdContent } from './skillMd.js';
|
|
29
29
|
import { startGateway } from './gateway/server.js';
|
|
@@ -785,6 +785,10 @@ export function registerCommands(program, deps) {
|
|
|
785
785
|
}
|
|
786
786
|
}
|
|
787
787
|
catch (error) {
|
|
788
|
+
if (error instanceof CodedError) {
|
|
789
|
+
deps.errorLog(formatCodedErrorAsJson(error));
|
|
790
|
+
deps.exit(1);
|
|
791
|
+
}
|
|
788
792
|
if (error instanceof ChromeNotFoundError ||
|
|
789
793
|
error instanceof ChromeProfileNotFoundError ||
|
|
790
794
|
error instanceof ChromeProfileTooLargeError ||
|