latchkey 3.17.0 → 3.18.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 +4 -1
- package/dist/src/services/core/loginFlows/cookieCapture.d.ts +2 -1
- package/dist/src/services/core/loginFlows/cookieCapture.d.ts.map +1 -1
- package/dist/src/services/core/loginFlows/cookieCapture.js +94 -5
- package/dist/src/services/core/loginFlows/cookieCapture.js.map +1 -1
- package/dist/src/sharedOperations.d.ts +10 -1
- package/dist/src/sharedOperations.d.ts.map +1 -1
- package/dist/src/sharedOperations.js +13 -10
- 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/cli.test.js +1 -0
- package/dist/tests/cli.test.js.map +1 -1
- package/dist/tests/cookieCapture.test.js +140 -8
- package/dist/tests/cookieCapture.test.js.map +1 -1
- package/dist/tests/sharedOperations.test.js +10 -0
- package/dist/tests/sharedOperations.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -193,7 +193,9 @@ The only exceptions are services that cannot determine the
|
|
|
193
193
|
account for the completed browser login. For those, `--account`
|
|
194
194
|
also names the account the new credentials are stored under. All
|
|
195
195
|
services registered at runtime (see "Entirely new services"
|
|
196
|
-
below) fall into this category.
|
|
196
|
+
below) fall into this category. Whether a service falls into
|
|
197
|
+
this category is indicated by the `detectsLoginAccount`
|
|
198
|
+
capability flag in the output of `latchkey services info`.
|
|
197
199
|
|
|
198
200
|
### Self-hosted services
|
|
199
201
|
|
|
@@ -281,6 +283,7 @@ Each entry reports a credentials status of:
|
|
|
281
283
|
A service with no stored credentials shows an empty `credentials`
|
|
282
284
|
object.
|
|
283
285
|
|
|
286
|
+
|
|
284
287
|
### Clearing credentials
|
|
285
288
|
|
|
286
289
|
Remembered API credentials can expire. The caller of `latchkey
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A generic browser login that works for any cookie-authenticated service:
|
|
3
3
|
* open a URL, watch the `Set-Cookie` headers of the responses that follow, and
|
|
4
|
-
* capture named cookies as the credentials
|
|
4
|
+
* capture named cookies as the credentials — or, when the browser was already
|
|
5
|
+
* signed in, take them from the browser once the page shows it.
|
|
5
6
|
*
|
|
6
7
|
* The cookie mechanics — reading `Set-Cookie`, deciding where a cookie applies,
|
|
7
8
|
* writing a `Cookie` header — are RFC 6265 and not specific to this flow, but
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookieCapture.d.ts","sourceRoot":"","sources":["../../../../../src/services/core/loginFlows/cookieCapture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cookieCapture.d.ts","sourceRoot":"","sources":["../../../../../src/services/core/loginFlows/cookieCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAwB,KAAK,SAAS,EAAuB,MAAM,WAAW,CAAC;AAiUtF;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,SAAS;IACtD,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,oBAAoB;IAE5C,MAAM,CAAC,QAAQ,CAAC,OAAO,2EAA2E;IAElG,MAAM,CAAC,QAAQ,CAAC,OAAO,SAuBV;IAEb,MAAM,CAAC,QAAQ,CAAC,YAAY;QA7L1B,2EAA2E;;QAE3E;;;WAGG;;;;;;;;OAwLoD;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,SAAS,EAAE,OAAO;IAI9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQlC;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,cAAc;CAQvE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A generic browser login that works for any cookie-authenticated service:
|
|
3
3
|
* open a URL, watch the `Set-Cookie` headers of the responses that follow, and
|
|
4
|
-
* capture named cookies as the credentials
|
|
4
|
+
* capture named cookies as the credentials — or, when the browser was already
|
|
5
|
+
* signed in, take them from the browser once the page shows it.
|
|
5
6
|
*
|
|
6
7
|
* The cookie mechanics — reading `Set-Cookie`, deciding where a cookie applies,
|
|
7
8
|
* writing a `Cookie` header — are RFC 6265 and not specific to this flow, but
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
* registered the service, as the parameters of the `cookie-capture` login flow.
|
|
17
18
|
*/
|
|
18
19
|
import { z } from 'zod';
|
|
19
|
-
import { RawCurlCredentials } from '../../../apiCredentials/base.js';
|
|
20
|
+
import { ApiCredentialStatus, RawCurlCredentials, } from '../../../apiCredentials/base.js';
|
|
20
21
|
import { SimpleServiceSession } from '../base.js';
|
|
21
22
|
import { parseLoginFlowParams } from './base.js';
|
|
22
23
|
/**
|
|
@@ -169,17 +170,33 @@ function setCookieHeaderValues(headers) {
|
|
|
169
170
|
.filter((header) => header.name.toLowerCase() === 'set-cookie')
|
|
170
171
|
.map((header) => header.value);
|
|
171
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* How often the browser's own cookies are looked at while waiting. Cheap to
|
|
175
|
+
* read, but a service with a credential check pays a request for each look.
|
|
176
|
+
*/
|
|
177
|
+
const EXISTING_COOKIE_CHECK_INTERVAL_MS = 1_000;
|
|
178
|
+
/** Identity of a page for telling the login page apart: origin and path. */
|
|
179
|
+
function pageIdentity(url) {
|
|
180
|
+
return `${url.origin}${url.pathname}`;
|
|
181
|
+
}
|
|
172
182
|
/**
|
|
173
183
|
* One run of the flow. A jar remembers the cookies as responses arrive; all
|
|
174
184
|
* this adds is which names the service asked for, and the rule that the login
|
|
175
185
|
* is done once every one of them has turned up.
|
|
186
|
+
*
|
|
187
|
+
* A browser that opens already signed in — restored from saved browser state,
|
|
188
|
+
* or imported from Chrome — never sees those cookies set, so the session also
|
|
189
|
+
* takes them from the browser itself once the page shows a signed-in session.
|
|
176
190
|
*/
|
|
177
191
|
class CookieCaptureSession extends SimpleServiceSession {
|
|
178
192
|
jar;
|
|
193
|
+
cookieUrl;
|
|
179
194
|
cookieKeys;
|
|
195
|
+
lastExistingCookieCheckAt = 0;
|
|
180
196
|
constructor(service, appNamePrefix, cookieUrl, cookieKeys) {
|
|
181
197
|
super(service, appNamePrefix);
|
|
182
198
|
this.jar = new CookieJar(cookieUrl);
|
|
199
|
+
this.cookieUrl = cookieUrl;
|
|
183
200
|
this.cookieKeys = cookieKeys;
|
|
184
201
|
}
|
|
185
202
|
async getApiCredentialsFromResponse(response) {
|
|
@@ -189,6 +206,75 @@ class CookieCaptureSession extends SimpleServiceSession {
|
|
|
189
206
|
}
|
|
190
207
|
return buildCookieCredentials(this.jar.cookiesNamed(this.cookieKeys));
|
|
191
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Whether the page shows a session that is already signed in: it is back on
|
|
211
|
+
* the service, and not on the login page.
|
|
212
|
+
*
|
|
213
|
+
* A cookie the browser started out with can be stale server-side, and taking
|
|
214
|
+
* it the moment the page opens would store a dead credential without the
|
|
215
|
+
* user ever seeing a login page. An established session redirects away from
|
|
216
|
+
* the login page; a stale one stays there, the user signs in, and the fresh
|
|
217
|
+
* cookie arrives through `Set-Cookie` as usual. Off the service altogether
|
|
218
|
+
* the browser is commonly on an identity provider, mid-login.
|
|
219
|
+
*/
|
|
220
|
+
hasLeftLoginPageForService(page) {
|
|
221
|
+
let pageUrl;
|
|
222
|
+
try {
|
|
223
|
+
pageUrl = new URL(page.url());
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
const loginUrl = new URL(this.service.loginUrl);
|
|
229
|
+
if (pageUrl.origin !== loginUrl.origin && pageUrl.origin !== this.cookieUrl.origin) {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
return pageIdentity(pageUrl) !== pageIdentity(loginUrl);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Take the cookies the browser already holds, for a session that was signed
|
|
236
|
+
* in before the login started and so never has them set again.
|
|
237
|
+
*
|
|
238
|
+
* The browser's cookie store is read rather than `document.cookie`, because
|
|
239
|
+
* session cookies are commonly HttpOnly. It already reflects every
|
|
240
|
+
* `Set-Cookie` of this login, deletions included, and only holds cookies
|
|
241
|
+
* that apply to the cookie URL — the same rules the jar follows.
|
|
242
|
+
*/
|
|
243
|
+
async whileWaitingForLogin(page) {
|
|
244
|
+
if (this.apiCredentials !== null ||
|
|
245
|
+
Date.now() - this.lastExistingCookieCheckAt < EXISTING_COOKIE_CHECK_INTERVAL_MS ||
|
|
246
|
+
!this.hasLeftLoginPageForService(page)) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
this.lastExistingCookieCheckAt = Date.now();
|
|
250
|
+
let browserCookies;
|
|
251
|
+
try {
|
|
252
|
+
browserCookies = await page.context().cookies(this.cookieUrl.href);
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// The browser is going away; the wait loop notices that by itself.
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
const namedCookies = browserCookies.filter((cookie) => this.cookieKeys.includes(cookie.name) && cookie.value !== '');
|
|
259
|
+
if (!this.cookieKeys.every((cookieKey) => namedCookies.some((cookie) => cookie.name === cookieKey))) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const credentials = buildCookieCredentials(namedCookies.map(({ name, value }) => ({ name, value })));
|
|
263
|
+
// A service that can check credentials gets to turn down a stale session
|
|
264
|
+
// the page did not give away. Most cannot, and say Unknown.
|
|
265
|
+
let status;
|
|
266
|
+
try {
|
|
267
|
+
status = await this.service.checkApiCredentials(credentials);
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
if (status === ApiCredentialStatus.Invalid) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
// A response may have completed the login while this was being read.
|
|
276
|
+
this.apiCredentials ??= credentials;
|
|
277
|
+
}
|
|
192
278
|
}
|
|
193
279
|
/**
|
|
194
280
|
* The flow. Its statics are the kind of automation — what `--login-flow`
|
|
@@ -209,9 +295,12 @@ export class CookieCaptureLoginFlow {
|
|
|
209
295
|
' on a different host than the API.',
|
|
210
296
|
'',
|
|
211
297
|
'The cookies are read from the Set-Cookie headers of the responses that',
|
|
212
|
-
'arrive while the user signs in
|
|
213
|
-
'
|
|
214
|
-
'again
|
|
298
|
+
'arrive while the user signs in. A browser that opens already signed in',
|
|
299
|
+
'(from saved browser state, or after `latchkey auth import-chrome`) is never',
|
|
300
|
+
'sent them again, so they are also taken from the browser itself once the',
|
|
301
|
+
'page has moved on from the login URL to the service. A service whose login',
|
|
302
|
+
'URL is also where a signed-in user stays should register a login URL that',
|
|
303
|
+
'redirects a signed-in user elsewhere.',
|
|
215
304
|
'',
|
|
216
305
|
'Example:',
|
|
217
306
|
' $ latchkey services register my-intranet \\',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookieCapture.js","sourceRoot":"","sources":["../../../../../src/services/core/loginFlows/cookieCapture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cookieCapture.js","sourceRoot":"","sources":["../../../../../src/services/core/loginFlows/cookieCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export declare class PreparationRequiredError extends Error {
|
|
|
27
27
|
* The message spells out what `--account` does here, because the short version
|
|
28
28
|
* ("no credentials stored for account X") read to users and agents as an
|
|
29
29
|
* instruction to go and create that account — which is the one thing that
|
|
30
|
-
* cannot help, since a service that
|
|
30
|
+
* cannot help, since a service that detects the login account assigns it after
|
|
31
31
|
* the login rather than being told one up front.
|
|
32
32
|
*/
|
|
33
33
|
export declare class AccountNotFoundError extends Error {
|
|
@@ -50,10 +50,19 @@ export interface CredentialStatusEntry {
|
|
|
50
50
|
* keyed by the empty string.
|
|
51
51
|
*/
|
|
52
52
|
export type AccountCredentialStatuses = Record<string, CredentialStatusEntry>;
|
|
53
|
+
/** Per-service traits that callers may need to adapt to. */
|
|
54
|
+
export interface ServiceCapabilities {
|
|
55
|
+
/**
|
|
56
|
+
* Whether a browser login can tell which account the fresh credentials
|
|
57
|
+
* belong to. When false, the user names the account with `--account`.
|
|
58
|
+
*/
|
|
59
|
+
readonly detectsLoginAccount: boolean;
|
|
60
|
+
}
|
|
53
61
|
export interface ServicesInfoResult {
|
|
54
62
|
readonly type: 'built-in' | 'user-registered';
|
|
55
63
|
readonly baseApiUrls: readonly string[];
|
|
56
64
|
readonly authOptions: readonly string[];
|
|
65
|
+
readonly capabilities: ServiceCapabilities;
|
|
57
66
|
readonly credentials: AccountCredentialStatuses;
|
|
58
67
|
readonly setCredentialsExample: string;
|
|
59
68
|
readonly developerNotes: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedOperations.d.ts","sourceRoot":"","sources":["../../src/sharedOperations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAuB,MAAM,0BAA0B,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,yBAAyB,CAAC;AAMjC,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,WAAW,EAAE,MAAM;CAMhC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;;CAKnD;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,WAAW,EAAE,MAAM;CAQhC;AA+BD;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE;CAIpF;AAoCD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,SAAS,MAAM,EAAE,CAoBnB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AA0C9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"sharedOperations.d.ts","sourceRoot":"","sources":["../../src/sharedOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ function buildAccountNotFoundMessage(serviceName, account, storedAccounts) {
|
|
|
60
60
|
* The message spells out what `--account` does here, because the short version
|
|
61
61
|
* ("no credentials stored for account X") read to users and agents as an
|
|
62
62
|
* instruction to go and create that account — which is the one thing that
|
|
63
|
-
* cannot help, since a service that
|
|
63
|
+
* cannot help, since a service that detects the login account assigns it after
|
|
64
64
|
* the login rather than being told one up front.
|
|
65
65
|
*/
|
|
66
66
|
export class AccountNotFoundError extends Error {
|
|
@@ -134,6 +134,13 @@ async function computeAccountStatuses(registry, apiCredentialStore, config, serv
|
|
|
134
134
|
function formatBaseApiUrl(baseApiUrl) {
|
|
135
135
|
return typeof baseApiUrl === 'string' ? baseApiUrl : String(baseApiUrl);
|
|
136
136
|
}
|
|
137
|
+
// A service that implements getAccount detects who a browser login signed in
|
|
138
|
+
// as, and that is where the credentials go. A service that does not has no
|
|
139
|
+
// identity to report, so the user names the account with --account — which is
|
|
140
|
+
// what lets such a service hold more than one set of credentials.
|
|
141
|
+
function detectsLoginAccount(service) {
|
|
142
|
+
return service.getAccount !== undefined;
|
|
143
|
+
}
|
|
137
144
|
export async function servicesInfo(registry, apiCredentialStore, config, serviceName, offline = false) {
|
|
138
145
|
const service = lookupService(registry, serviceName);
|
|
139
146
|
const supportsBrowser = service.getSession !== undefined && !config.browserDisabled;
|
|
@@ -145,6 +152,7 @@ export async function servicesInfo(registry, apiCredentialStore, config, service
|
|
|
145
152
|
type: serviceType,
|
|
146
153
|
baseApiUrls: service.baseApiUrls.map(formatBaseApiUrl),
|
|
147
154
|
authOptions,
|
|
155
|
+
capabilities: { detectsLoginAccount: detectsLoginAccount(service) },
|
|
148
156
|
credentials,
|
|
149
157
|
setCredentialsExample: service.setCredentialsExample(serviceName),
|
|
150
158
|
developerNotes: service.info,
|
|
@@ -166,12 +174,7 @@ export async function authBrowser(registry, apiCredentialStore, encryptedStorage
|
|
|
166
174
|
if (!session) {
|
|
167
175
|
throw new BrowserFlowsNotSupportedError(serviceName);
|
|
168
176
|
}
|
|
169
|
-
|
|
170
|
-
// reports who the user signed in as, and that is where the credentials go.
|
|
171
|
-
// A service that does not has no identity to report, so the user names the
|
|
172
|
-
// account with --account — which is what lets such a service hold more than
|
|
173
|
-
// one set of credentials.
|
|
174
|
-
const namesItsOwnAccounts = service.getAccount !== undefined;
|
|
177
|
+
const serviceDetectsLoginAccount = detectsLoginAccount(service);
|
|
175
178
|
// Login reuses previously stored credentials only for service-level
|
|
176
179
|
// artifacts (e.g. an OAuth client), which all of a service's accounts can
|
|
177
180
|
// share. By default the service's preparation (created by `auth prepare` or
|
|
@@ -183,7 +186,7 @@ export async function authBrowser(registry, apiCredentialStore, encryptedStorage
|
|
|
183
186
|
// When the user names the account, naming one that does not exist yet is
|
|
184
187
|
// how a second account is created, so the client falls back to the
|
|
185
188
|
// preparation below instead of being an error.
|
|
186
|
-
if (oldCredentials === null &&
|
|
189
|
+
if (oldCredentials === null && serviceDetectsLoginAccount) {
|
|
187
190
|
throw new AccountNotFoundError(serviceName, account, apiCredentialStore.listAccounts(service.name));
|
|
188
191
|
}
|
|
189
192
|
}
|
|
@@ -193,13 +196,13 @@ export async function authBrowser(registry, apiCredentialStore, encryptedStorage
|
|
|
193
196
|
}
|
|
194
197
|
const launchOptions = getBrowserLaunchOptions(config);
|
|
195
198
|
const { credentials, account: loggedInAccount } = await session.login(encryptedStorage, launchOptions, oldCredentials ?? undefined, loginOptions);
|
|
196
|
-
// A service that
|
|
199
|
+
// A service that detects the login account decides where the login goes. For
|
|
197
200
|
// one that does not, the account the login reported means nothing: a
|
|
198
201
|
// registered service built on a family runs the family's session, so the
|
|
199
202
|
// name comes from the family's own public API host rather than from the
|
|
200
203
|
// instance that was actually logged into. So the user's --account decides,
|
|
201
204
|
// and without one the credentials go to the default account.
|
|
202
|
-
const targetAccount =
|
|
205
|
+
const targetAccount = serviceDetectsLoginAccount ? loggedInAccount : (account ?? DEFAULT_ACCOUNT);
|
|
203
206
|
apiCredentialStore.save(service.name, credentials, targetAccount);
|
|
204
207
|
return { account: targetAccount };
|
|
205
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedOperations.js","sourceRoot":"","sources":["../../src/sharedOperations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sharedOperations.js","sourceRoot":"","sources":["../../src/sharedOperations.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.18.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
package/dist/tests/cli.test.js
CHANGED
|
@@ -639,6 +639,7 @@ describe('CLI commands with dependency injection', () => {
|
|
|
639
639
|
expect(info.type).toBe('built-in');
|
|
640
640
|
expect(info.baseApiUrls).toEqual(['https://slack.com/api/']);
|
|
641
641
|
expect(info.authOptions).toEqual(['browser', 'set']);
|
|
642
|
+
expect(info.capabilities).toEqual({ detectsLoginAccount: true });
|
|
642
643
|
expect(info.credentials).toEqual({});
|
|
643
644
|
expect(info.setCredentialsExample).toBe('latchkey auth set slack -H "Authorization: Bearer xoxb-your-token"');
|
|
644
645
|
expect(info.developerNotes).toBe('Test info for Slack service.');
|