latchkey 3.4.0 → 3.5.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/dist/skills/generic/latchkey/SKILL.md +2 -2
- package/dist/skills/openclaw/latchkey/SKILL.md +2 -2
- package/dist/src/serviceRegistry.d.ts.map +1 -1
- package/dist/src/serviceRegistry.js +3 -1
- package/dist/src/serviceRegistry.js.map +1 -1
- package/dist/src/services/huggingface.d.ts +40 -0
- package/dist/src/services/huggingface.d.ts.map +1 -0
- package/dist/src/services/huggingface.js +146 -0
- package/dist/src/services/huggingface.js.map +1 -0
- package/dist/src/services/index.d.ts +2 -0
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +2 -0
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/openrouter.d.ts +37 -0
- package/dist/src/services/openrouter.d.ts.map +1 -0
- package/dist/src/services/openrouter.js +142 -0
- package/dist/src/services/openrouter.js.map +1 -0
- package/dist/src/services/zoom.d.ts +8 -8
- package/dist/src/services/zoom.d.ts.map +1 -1
- package/dist/src/services/zoom.js +17 -16
- package/dist/src/services/zoom.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tests/huggingface.test.d.ts +2 -0
- package/dist/tests/huggingface.test.d.ts.map +1 -0
- package/dist/tests/huggingface.test.js +36 -0
- package/dist/tests/huggingface.test.js.map +1 -0
- package/dist/tests/servicesAgainstRecordings.test.js +3 -3
- package/dist/tests/servicesAgainstRecordings.test.js.map +1 -1
- package/dist/tests/zoom.test.js +16 -12
- package/dist/tests/zoom.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -126,8 +126,8 @@ in the key means "unknown account".
|
|
|
126
126
|
|
|
127
127
|
Latchkey currently offers varying levels of support for the
|
|
128
128
|
following services: AWS, Calendly, Coolify, Discord, Dropbox, Figma, GitHub, GitLab,
|
|
129
|
-
Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets,
|
|
130
|
-
Linear, Mailchimp, ngrok, Notion, Ramp, Sentry, Slack, Stripe, Telegram, Todoist, Umami, Yelp, Zoom, and more.
|
|
129
|
+
Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets, Hugging Face,
|
|
130
|
+
Linear, Mailchimp, ngrok, Notion, OpenRouter, Ramp, Sentry, Slack, Stripe, Telegram, Todoist, Umami, Yelp, Zoom, and more.
|
|
131
131
|
|
|
132
132
|
### User-registered services
|
|
133
133
|
|
|
@@ -118,8 +118,8 @@ in the key means "unknown account".
|
|
|
118
118
|
|
|
119
119
|
Latchkey currently offers varying levels of support for the
|
|
120
120
|
following services: AWS, Calendly, Coolify, Discord, Dropbox, Figma, GitHub, GitLab,
|
|
121
|
-
Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets,
|
|
122
|
-
Linear, Mailchimp, ngrok, Notion, Ramp, Sentry, Slack, Stripe, Telegram, Todoist, Umami, Yelp, Zoom, and more.
|
|
121
|
+
Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets, Hugging Face,
|
|
122
|
+
Linear, Mailchimp, ngrok, Notion, OpenRouter, Ramp, Sentry, Slack, Stripe, Telegram, Todoist, Umami, Yelp, Zoom, and more.
|
|
123
123
|
|
|
124
124
|
### User-registered services
|
|
125
125
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceRegistry.d.ts","sourceRoot":"","sources":["../../src/serviceRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"serviceRegistry.d.ts","sourceRoot":"","sources":["../../src/serviceRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EACL,OAAO,EAkCR,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,IAAI,EAAE,MAAM;CAMzB;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,QAAQ,EAAE,SAAS,OAAO,EAAE;IAIxC,IAAI,QAAQ,IAAI,SAAS,OAAO,EAAE,CAEjC;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOlC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IASvC,OAAO,CAAC,UAAU;IAelB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE;IAInD;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAGtC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,IAAI,CAIN;AAyBD,wBAAgB,yCAAyC,CACvD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAwBN;AAED,eAAO,MAAM,gBAAgB,iBAkC3B,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { loadRegisteredServices } from './configDataStore.js';
|
|
|
5
5
|
import { buildRegisteredServiceOptions, RegisteredService } from './services/core/registered.js';
|
|
6
6
|
import { resolveLoginFlow, UnknownLoginFlowError } from './services/core/loginFlows/registry.js';
|
|
7
7
|
import { LoginFlowParamsInvalidError } from './services/core/loginFlows/base.js';
|
|
8
|
-
import { SLACK, DISCORD, DROPBOX, GITHUB, LINEAR, NOTION, NOTION_MCP, GOOGLE_GMAIL, GOOGLE_CALENDAR, GOOGLE_DRIVE, GOOGLE_SHEETS, GOOGLE_DOCS, GOOGLE_SLIDES, GOOGLE_PEOPLE, MAILCHIMP, GITLAB, ZOOM, SENTRY, STRIPE, FIGMA, GOOGLE_ANALYTICS, CALENDLY, YELP, TELEGRAM, AWS, GOOGLE_DIRECTIONS, COOLIFY, UMAMI, RAMP, TODOIST, NGROK, } from './services/index.js';
|
|
8
|
+
import { SLACK, DISCORD, DROPBOX, GITHUB, LINEAR, NOTION, NOTION_MCP, GOOGLE_GMAIL, GOOGLE_CALENDAR, GOOGLE_DRIVE, GOOGLE_SHEETS, GOOGLE_DOCS, GOOGLE_SLIDES, GOOGLE_PEOPLE, MAILCHIMP, GITLAB, ZOOM, SENTRY, STRIPE, FIGMA, GOOGLE_ANALYTICS, CALENDLY, YELP, TELEGRAM, AWS, GOOGLE_DIRECTIONS, COOLIFY, UMAMI, RAMP, TODOIST, NGROK, HUGGINGFACE, OPENROUTER, } from './services/index.js';
|
|
9
9
|
export class DuplicateServiceNameError extends Error {
|
|
10
10
|
constructor(name) {
|
|
11
11
|
super(`A service with the name '${name}' already exists.`);
|
|
@@ -172,5 +172,7 @@ export const SERVICE_REGISTRY = new ServiceRegistry([
|
|
|
172
172
|
RAMP,
|
|
173
173
|
TODOIST,
|
|
174
174
|
NGROK,
|
|
175
|
+
HUGGINGFACE,
|
|
176
|
+
OPENROUTER,
|
|
175
177
|
]);
|
|
176
178
|
//# sourceMappingURL=serviceRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceRegistry.js","sourceRoot":"","sources":["../../src/serviceRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAA+B,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAkB,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAEL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,iBAAiB,EACjB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,
|
|
1
|
+
{"version":3,"file":"serviceRegistry.js","sourceRoot":"","sources":["../../src/serviceRegistry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAA+B,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAkB,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAEL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,iBAAiB,EACjB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,IAAY;QACtB,KAAK,CAAC,4BAA4B,IAAI,mBAAmB,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,IAAY;QACtB,KAAK,CACH,yBAAyB,IAAI,iFAAiF,CAC/G,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,OAAO,eAAe;IACT,SAAS,CAAY;IAEtC,YAAY,QAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,GAAW;QAC9C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,kBAAkB,CAAC,GAAW;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAyB,EACzB,YAA+B;IAE/B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,eAAoD;IAEpD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;YAC3F,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yCAAyC,CACvD,UAAkB,EAClB,QAAyB;IAEzB,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,aAAkC,CAAC;QACvC,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;YACrE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,EACJ,KAAK,CAAC,UAAU,EAChB,6BAA6B,CAC3B,aAAa,EACb,KAAK,CAAC,QAAQ,EACd,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CACxC,CACF,CAAC;QACF,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,eAAe,CAAC;IAClD,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,WAAW;IACX,aAAa;IACb,aAAa;IACb,SAAS;IACT,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,gBAAgB;IAChB,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,GAAG;IACH,iBAAiB;IACjB,OAAO;IACP,KAAK;IACL,IAAI;IACJ,OAAO;IACP,KAAK;IACL,WAAW;IACX,UAAU;CACX,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hugging Face service implementation.
|
|
3
|
+
*
|
|
4
|
+
* Hugging Face issues personal User Access Tokens from the account settings,
|
|
5
|
+
* and a token's value is revealed exactly once at creation time (like Linear).
|
|
6
|
+
* We sign the user into huggingface.co, create a fresh token on their behalf,
|
|
7
|
+
* and read its value from the one-time reveal dialog.
|
|
8
|
+
*
|
|
9
|
+
* A classic `write` token grants read and write access to the user's
|
|
10
|
+
* repositories and also serves as a bearer token for the Inference Providers
|
|
11
|
+
* router, so one minted token is capable of everything an agent might do
|
|
12
|
+
* through this service (download, upload, run inference). Requests to the Hub
|
|
13
|
+
* API and the Inference router authenticate with a single
|
|
14
|
+
* `Authorization: Bearer hf_...` header, so we store an AuthorizationBearer
|
|
15
|
+
* credential and let it inject that header into every matching request.
|
|
16
|
+
*/
|
|
17
|
+
import type { Response, BrowserContext } from 'playwright';
|
|
18
|
+
import { ApiCredentials } from '../apiCredentials/base.js';
|
|
19
|
+
import { Service, BrowserFollowupServiceSession, FollowupWork } from './core/base.js';
|
|
20
|
+
declare class HuggingfaceServiceSession extends BrowserFollowupServiceSession {
|
|
21
|
+
protected readonly followupWork = FollowupWork.CreateApiToken;
|
|
22
|
+
private isLoggedIn;
|
|
23
|
+
onResponse(response: Response): void;
|
|
24
|
+
protected isLoginComplete(): boolean;
|
|
25
|
+
protected performBrowserFollowup(context: BrowserContext, _oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
26
|
+
}
|
|
27
|
+
export declare class Huggingface extends Service {
|
|
28
|
+
readonly name = "huggingface";
|
|
29
|
+
readonly displayName = "Hugging Face";
|
|
30
|
+
readonly baseApiUrls: readonly ["https://huggingface.co/", "https://hf.co/", "https://router.huggingface.co/", "https://datasets-server.huggingface.co/"];
|
|
31
|
+
readonly loginUrl = "https://huggingface.co/login";
|
|
32
|
+
readonly info: string;
|
|
33
|
+
readonly credentialCheckCurlArguments: readonly ["https://huggingface.co/api/whoami-v2"];
|
|
34
|
+
setCredentialsExample(serviceName: string): string;
|
|
35
|
+
getAccount(apiCredentials: ApiCredentials): Promise<string | null>;
|
|
36
|
+
getSession(appNamePrefix: string): HuggingfaceServiceSession;
|
|
37
|
+
}
|
|
38
|
+
export declare const HUGGINGFACE: Huggingface;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=huggingface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huggingface.d.ts","sourceRoot":"","sources":["../../../src/services/huggingface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAuB,MAAM,2BAA2B,CAAC;AAGhF,OAAO,EACL,OAAO,EACP,6BAA6B,EAC7B,YAAY,EAEb,MAAM,gBAAgB,CAAC;AA4CxB,cAAM,yBAA0B,SAAQ,6BAA6B;IACnE,SAAS,CAAC,QAAQ,CAAC,YAAY,+BAA+B;IAC9D,OAAO,CAAC,UAAU,CAAS;IAE3B,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAwBpC,SAAS,CAAC,eAAe,IAAI,OAAO;cAIpB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,cAAc,GAC/B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAmClC;AAED,qBAAa,WAAY,SAAQ,OAAO;IACtC,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,kBAAkB;IACtC,QAAQ,CAAC,WAAW,sIAKT;IACX,QAAQ,CAAC,QAAQ,kCAAgB;IACjC,QAAQ,CAAC,IAAI,SAE8E;IAI3F,QAAQ,CAAC,4BAA4B,oDAA4B;IAEjE,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIzC,UAAU,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWlE,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,yBAAyB;CAGtE;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hugging Face service implementation.
|
|
3
|
+
*
|
|
4
|
+
* Hugging Face issues personal User Access Tokens from the account settings,
|
|
5
|
+
* and a token's value is revealed exactly once at creation time (like Linear).
|
|
6
|
+
* We sign the user into huggingface.co, create a fresh token on their behalf,
|
|
7
|
+
* and read its value from the one-time reveal dialog.
|
|
8
|
+
*
|
|
9
|
+
* A classic `write` token grants read and write access to the user's
|
|
10
|
+
* repositories and also serves as a bearer token for the Inference Providers
|
|
11
|
+
* router, so one minted token is capable of everything an agent might do
|
|
12
|
+
* through this service (download, upload, run inference). Requests to the Hub
|
|
13
|
+
* API and the Inference router authenticate with a single
|
|
14
|
+
* `Authorization: Bearer hf_...` header, so we store an AuthorizationBearer
|
|
15
|
+
* credential and let it inject that header into every matching request.
|
|
16
|
+
*/
|
|
17
|
+
import { AuthorizationBearer } from '../apiCredentials/base.js';
|
|
18
|
+
import { fetchAccountFromEndpoint, tryParseJson } from '../apiCredentials/account.js';
|
|
19
|
+
import { typeLikeHuman } from '../playwrightUtils.js';
|
|
20
|
+
import { Service, BrowserFollowupServiceSession, FollowupWork, LoginFailedError, } from './core/base.js';
|
|
21
|
+
// Token creation can lag behind a slow sign-in or an extra confirmation step
|
|
22
|
+
// (a write token sometimes prompts before revealing), so this is more generous
|
|
23
|
+
// than the 8s default other services use for quick form interactions.
|
|
24
|
+
const DEFAULT_TIMEOUT_MS = 30000;
|
|
25
|
+
// Hub API + Inference router. The Hub API, repository file and git transfers and
|
|
26
|
+
// the whoami check live under huggingface.co (hf.co is an alias for the same
|
|
27
|
+
// host); hosted inference goes through the router, and the dataset viewer has
|
|
28
|
+
// its own host.
|
|
29
|
+
const HF_HUB_BASE_URL = 'https://huggingface.co/';
|
|
30
|
+
const HF_HUB_ALIAS_BASE_URL = 'https://hf.co/';
|
|
31
|
+
const HF_ROUTER_BASE_URL = 'https://router.huggingface.co/';
|
|
32
|
+
const HF_DATASETS_SERVER_BASE_URL = 'https://datasets-server.huggingface.co/';
|
|
33
|
+
// Deliberately not covered: the storage hosts that file transfers are redirected
|
|
34
|
+
// to (*.cdn.hf.co, cdn-lfs*.hf.co and the Xet hosts). They authenticate through
|
|
35
|
+
// the URL itself -- a signed CDN URL, or a repository-scoped Xet token the caller
|
|
36
|
+
// fetches from the hub -- so there is nothing for this service to contribute, and
|
|
37
|
+
// adding a bearer header there is at best ignored and at worst fatal (the Xet CAS
|
|
38
|
+
// server answers 400 once a second Authorization header shows up). Such requests
|
|
39
|
+
// need no credentials, so callers can make them directly.
|
|
40
|
+
const HF_LOGIN_URL = 'https://huggingface.co/login';
|
|
41
|
+
// Navigating here opens the "Create new Access Token" form preset to a classic
|
|
42
|
+
// write token (read + write, and a valid bearer for inference); the value is
|
|
43
|
+
// shown once in a dialog after creation. The settings page can trigger HF's
|
|
44
|
+
// "sudo" re-authentication, so we bring the page to the front first (see
|
|
45
|
+
// performBrowserFollowup) so the password prompt doesn't land on a tab the
|
|
46
|
+
// user isn't looking at.
|
|
47
|
+
const HF_NEW_TOKEN_URL = 'https://huggingface.co/settings/tokens/new?tokenType=write';
|
|
48
|
+
// Endpoint that returns the signed-in identity; also used as the credential check.
|
|
49
|
+
const HF_WHOAMI_URL = 'https://huggingface.co/api/whoami-v2';
|
|
50
|
+
// Hub host, and the path prefixes served before the user is signed in. A
|
|
51
|
+
// document response to the hub host on any *other* path only happens once login
|
|
52
|
+
// has succeeded, so we use it as the login-complete signal (works the same for
|
|
53
|
+
// a password or SSO sign-in, since the final redirect target is a hub page).
|
|
54
|
+
const HF_HUB_HOST = 'huggingface.co';
|
|
55
|
+
const HF_PRE_LOGIN_PATH_PATTERN = /^\/(login|join|signup|oauth|sso|auth|logout)/i;
|
|
56
|
+
class HuggingfaceServiceSession extends BrowserFollowupServiceSession {
|
|
57
|
+
followupWork = FollowupWork.CreateApiToken;
|
|
58
|
+
isLoggedIn = false;
|
|
59
|
+
onResponse(response) {
|
|
60
|
+
if (this.isLoggedIn) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (response.request().resourceType() !== 'document') {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
let url;
|
|
67
|
+
try {
|
|
68
|
+
url = new URL(response.url());
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (url.hostname !== HF_HUB_HOST) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (HF_PRE_LOGIN_PATH_PATTERN.test(url.pathname)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (response.status() >= 200 && response.status() < 400) {
|
|
80
|
+
this.isLoggedIn = true;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
isLoginComplete() {
|
|
84
|
+
return this.isLoggedIn;
|
|
85
|
+
}
|
|
86
|
+
async performBrowserFollowup(context, _oldCredentials) {
|
|
87
|
+
const page = context.pages()[0];
|
|
88
|
+
if (!page) {
|
|
89
|
+
throw new LoginFailedError('No page available in browser context.');
|
|
90
|
+
}
|
|
91
|
+
// The token settings page can trigger HF's "sudo" re-authentication; focus the
|
|
92
|
+
// page first so the password prompt surfaces on the tab the user is looking
|
|
93
|
+
// at, not a background one.
|
|
94
|
+
await page.bringToFront();
|
|
95
|
+
await page.goto(HF_NEW_TOKEN_URL);
|
|
96
|
+
// Give the token a recognizable name so the user can find and revoke it.
|
|
97
|
+
const tokenName = this.generateAppName();
|
|
98
|
+
const nameInput = page.locator('input[name="displayName"]');
|
|
99
|
+
await nameInput.waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
100
|
+
await typeLikeHuman(page, nameInput, tokenName);
|
|
101
|
+
// Locale-independent: the create button is the submit inside the token-name form.
|
|
102
|
+
const createButton = page.locator('form:has(input[name="displayName"]) button[type="submit"]');
|
|
103
|
+
await createButton.waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
104
|
+
await createButton.click();
|
|
105
|
+
// The new token is revealed exactly once, inside the success dialog. Its
|
|
106
|
+
// value sits in a text input; Hugging Face tokens are prefixed `hf_`.
|
|
107
|
+
const tokenInput = page.locator('dialog input').first();
|
|
108
|
+
await tokenInput.waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
109
|
+
const token = (await tokenInput.inputValue()).trim();
|
|
110
|
+
if (token === '' || !token.startsWith('hf_')) {
|
|
111
|
+
throw new LoginFailedError('Failed to extract access token from Hugging Face.');
|
|
112
|
+
}
|
|
113
|
+
await page.close();
|
|
114
|
+
return new AuthorizationBearer(token);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class Huggingface extends Service {
|
|
118
|
+
name = 'huggingface';
|
|
119
|
+
displayName = 'Hugging Face';
|
|
120
|
+
baseApiUrls = [
|
|
121
|
+
HF_HUB_BASE_URL,
|
|
122
|
+
HF_HUB_ALIAS_BASE_URL,
|
|
123
|
+
HF_ROUTER_BASE_URL,
|
|
124
|
+
HF_DATASETS_SERVER_BASE_URL,
|
|
125
|
+
];
|
|
126
|
+
loginUrl = HF_LOGIN_URL;
|
|
127
|
+
info = 'Hugging Face Hub + Inference: download models and datasets, manage ' +
|
|
128
|
+
'repositories, and run hosted inference. Docs: https://huggingface.co/docs/hub/llms.txt';
|
|
129
|
+
// whoami-v2 returns 200 for any valid token; the stored bearer header is
|
|
130
|
+
// added by the credential before the request is sent.
|
|
131
|
+
credentialCheckCurlArguments = [HF_WHOAMI_URL];
|
|
132
|
+
setCredentialsExample(serviceName) {
|
|
133
|
+
return `latchkey auth set ${serviceName} -H "Authorization: Bearer <token>"`;
|
|
134
|
+
}
|
|
135
|
+
getAccount(apiCredentials) {
|
|
136
|
+
return fetchAccountFromEndpoint(apiCredentials, this.credentialCheckCurlArguments, (responseBody) => {
|
|
137
|
+
const data = tryParseJson(responseBody);
|
|
138
|
+
return data?.name ?? data?.email ?? null;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
getSession(appNamePrefix) {
|
|
142
|
+
return new HuggingfaceServiceSession(this, appNamePrefix);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export const HUGGINGFACE = new Huggingface();
|
|
146
|
+
//# sourceMappingURL=huggingface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huggingface.js","sourceRoot":"","sources":["../../../src/services/huggingface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,OAAO,EACP,6BAA6B,EAC7B,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,6EAA6E;AAC7E,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,iFAAiF;AACjF,6EAA6E;AAC7E,8EAA8E;AAC9E,gBAAgB;AAChB,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,2BAA2B,GAAG,yCAAyC,CAAC;AAE9E,iFAAiF;AACjF,gFAAgF;AAChF,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,0DAA0D;AAE1D,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,yBAAyB;AACzB,MAAM,gBAAgB,GAAG,4DAA4D,CAAC;AAEtF,mFAAmF;AACnF,MAAM,aAAa,GAAG,sCAAsC,CAAC;AAE7D,yEAAyE;AACzE,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,yBAAyB,GAAG,+CAA+C,CAAC;AAElF,MAAM,yBAA0B,SAAQ,6BAA6B;IAChD,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC;IACtD,UAAU,GAAG,KAAK,CAAC;IAE3B,UAAU,CAAC,QAAkB;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAES,eAAe;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,sBAAsB,CACpC,OAAuB,EACvB,eAAgC;QAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,gBAAgB,CAAC,uCAAuC,CAAC,CAAC;QACtE,CAAC;QAED,+EAA+E;QAC/E,4EAA4E;QAC5E,4BAA4B;QAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAElC,yEAAyE;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACzD,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEhD,kFAAkF;QAClF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;QAC/F,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5D,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAE3B,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,gBAAgB,CAAC,mDAAmD,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC7B,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,cAAc,CAAC;IAC7B,WAAW,GAAG;QACrB,eAAe;QACf,qBAAqB;QACrB,kBAAkB;QAClB,2BAA2B;KACnB,CAAC;IACF,QAAQ,GAAG,YAAY,CAAC;IACxB,IAAI,GACX,qEAAqE;QACrE,wFAAwF,CAAC;IAE3F,yEAAyE;IACzE,sDAAsD;IAC7C,4BAA4B,GAAG,CAAC,aAAa,CAAU,CAAC;IAEjE,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,WAAW,qCAAqC,CAAC;IAC/E,CAAC;IAEQ,UAAU,CAAC,cAA8B;QAChD,OAAO,wBAAwB,CAC7B,cAAc,EACd,IAAI,CAAC,4BAA4B,EACjC,CAAC,YAAY,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAA6C,CAAC;YACpF,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;QAC3C,CAAC,CACF,CAAC;IACJ,CAAC;IAEQ,UAAU,CAAC,aAAqB;QACvC,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -39,4 +39,6 @@ export { Umami, UMAMI } from './umami.js';
|
|
|
39
39
|
export { Ramp, RAMP } from './ramp.js';
|
|
40
40
|
export { Todoist, TODOIST } from './todoist.js';
|
|
41
41
|
export { Ngrok, NGROK } from './ngrok.js';
|
|
42
|
+
export { Huggingface, HUGGINGFACE } from './huggingface.js';
|
|
43
|
+
export { Openrouter, OPENROUTER } from './openrouter.js';
|
|
42
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,YAAY,EACZ,2BAA2B,EAC3B,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,YAAY,EACZ,2BAA2B,EAC3B,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -39,4 +39,6 @@ export { Umami, UMAMI } from './umami.js';
|
|
|
39
39
|
export { Ramp, RAMP } from './ramp.js';
|
|
40
40
|
export { Todoist, TODOIST } from './todoist.js';
|
|
41
41
|
export { Ngrok, NGROK } from './ngrok.js';
|
|
42
|
+
export { Huggingface, HUGGINGFACE } from './huggingface.js';
|
|
43
|
+
export { Openrouter, OPENROUTER } from './openrouter.js';
|
|
42
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,YAAY,EACZ,2BAA2B,GAE5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter service implementation.
|
|
3
|
+
*
|
|
4
|
+
* OpenRouter issues personal API keys from the dashboard, and a key's value is
|
|
5
|
+
* revealed exactly once at creation time (like Linear). We sign the user into
|
|
6
|
+
* openrouter.ai, create a fresh API key on their behalf, and read its value from
|
|
7
|
+
* the one-time reveal dialog.
|
|
8
|
+
*
|
|
9
|
+
* The OpenRouter API is OpenAI-compatible: every request authenticates with a
|
|
10
|
+
* single `Authorization: Bearer sk-or-v1-...` header, so we store an
|
|
11
|
+
* AuthorizationBearer credential and let it inject that header into every
|
|
12
|
+
* matching request.
|
|
13
|
+
*/
|
|
14
|
+
import type { Response, BrowserContext } from 'playwright';
|
|
15
|
+
import { ApiCredentials } from '../apiCredentials/base.js';
|
|
16
|
+
import { Service, BrowserFollowupServiceSession, FollowupWork } from './core/base.js';
|
|
17
|
+
declare class OpenrouterServiceSession extends BrowserFollowupServiceSession {
|
|
18
|
+
protected readonly followupWork = FollowupWork.CreateApiToken;
|
|
19
|
+
private isLoggedIn;
|
|
20
|
+
onResponse(response: Response): void;
|
|
21
|
+
protected isLoginComplete(): boolean;
|
|
22
|
+
protected performBrowserFollowup(context: BrowserContext, _oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
23
|
+
}
|
|
24
|
+
export declare class Openrouter extends Service {
|
|
25
|
+
readonly name = "openrouter";
|
|
26
|
+
readonly displayName = "OpenRouter";
|
|
27
|
+
readonly baseApiUrls: readonly ["https://openrouter.ai/api/v1/"];
|
|
28
|
+
readonly loginUrl = "https://openrouter.ai/sign-in";
|
|
29
|
+
readonly info = "OpenRouter unified LLM API (OpenAI-compatible). Docs: https://openrouter.ai/docs/llms.txt";
|
|
30
|
+
readonly credentialCheckCurlArguments: readonly ["https://openrouter.ai/api/v1/key"];
|
|
31
|
+
setCredentialsExample(serviceName: string): string;
|
|
32
|
+
getAccount(_apiCredentials: ApiCredentials): Promise<string | null>;
|
|
33
|
+
getSession(appNamePrefix: string): OpenrouterServiceSession;
|
|
34
|
+
}
|
|
35
|
+
export declare const OPENROUTER: Openrouter;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=openrouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAuB,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EACL,OAAO,EACP,6BAA6B,EAC7B,YAAY,EAEb,MAAM,gBAAgB,CAAC;AA8BxB,cAAM,wBAAyB,SAAQ,6BAA6B;IAClE,SAAS,CAAC,QAAQ,CAAC,YAAY,+BAA+B;IAC9D,OAAO,CAAC,UAAU,CAAS;IAE3B,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAwBpC,SAAS,CAAC,eAAe,IAAI,OAAO;cAIpB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,cAAc,GAC/B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAwDlC;AAED,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,gBAAgB;IACpC,QAAQ,CAAC,WAAW,6CAAsC;IAC1D,QAAQ,CAAC,QAAQ,mCAAwB;IACzC,QAAQ,CAAC,IAAI,+FACiF;IAI9F,QAAQ,CAAC,4BAA4B,gDAAsC;IAE3E,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAMzC,UAAU,CAAC,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInE,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,wBAAwB;CAGrE;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter service implementation.
|
|
3
|
+
*
|
|
4
|
+
* OpenRouter issues personal API keys from the dashboard, and a key's value is
|
|
5
|
+
* revealed exactly once at creation time (like Linear). We sign the user into
|
|
6
|
+
* openrouter.ai, create a fresh API key on their behalf, and read its value from
|
|
7
|
+
* the one-time reveal dialog.
|
|
8
|
+
*
|
|
9
|
+
* The OpenRouter API is OpenAI-compatible: every request authenticates with a
|
|
10
|
+
* single `Authorization: Bearer sk-or-v1-...` header, so we store an
|
|
11
|
+
* AuthorizationBearer credential and let it inject that header into every
|
|
12
|
+
* matching request.
|
|
13
|
+
*/
|
|
14
|
+
import { AuthorizationBearer } from '../apiCredentials/base.js';
|
|
15
|
+
import { typeLikeHuman } from '../playwrightUtils.js';
|
|
16
|
+
import { Service, BrowserFollowupServiceSession, FollowupWork, LoginFailedError, } from './core/base.js';
|
|
17
|
+
const DEFAULT_TIMEOUT_MS = 12000;
|
|
18
|
+
// The OpenRouter REST API (OpenAI-compatible), served under /api/v1.
|
|
19
|
+
const OPENROUTER_API_BASE_URL = 'https://openrouter.ai/api/v1/';
|
|
20
|
+
const OPENROUTER_LOGIN_URL = 'https://openrouter.ai/sign-in';
|
|
21
|
+
// The dashboard's API-keys page. It redirects to the workspace-scoped keys page
|
|
22
|
+
// (/workspaces/<workspace>/keys); a plain goto follows that redirect.
|
|
23
|
+
const OPENROUTER_KEYS_URL = 'https://openrouter.ai/keys';
|
|
24
|
+
// GET /api/v1/key returns the calling key's metadata (label, usage, limit) and
|
|
25
|
+
// answers 200 for any valid key, so it doubles as the credential check.
|
|
26
|
+
const OPENROUTER_KEY_INFO_URL = 'https://openrouter.ai/api/v1/key';
|
|
27
|
+
// Dashboard host, and the path prefixes served before the user is signed in. A
|
|
28
|
+
// dashboard document response on any *other* path only happens once login has
|
|
29
|
+
// succeeded, so we use it as the login-complete signal (works the same whether
|
|
30
|
+
// the user signs in with a password or an SSO provider, since the final redirect
|
|
31
|
+
// target is always a dashboard page). A new device also gets an email one-time
|
|
32
|
+
// code under /sign-in, which this pattern keeps waiting through.
|
|
33
|
+
const OPENROUTER_HOST = 'openrouter.ai';
|
|
34
|
+
const OPENROUTER_PRE_LOGIN_PATH_PATTERN = /^\/(sign-in|sign-up|signin|signup|sso|oauth|auth)/i;
|
|
35
|
+
// OpenRouter keys are prefixed `sk-or-v1-`; the reveal dialog renders the value
|
|
36
|
+
// as plain text (not inside an input), so we extract it from the dialog text.
|
|
37
|
+
const OPENROUTER_KEY_PATTERN = /sk-or-v1-[A-Za-z0-9-]+/;
|
|
38
|
+
class OpenrouterServiceSession extends BrowserFollowupServiceSession {
|
|
39
|
+
followupWork = FollowupWork.CreateApiToken;
|
|
40
|
+
isLoggedIn = false;
|
|
41
|
+
onResponse(response) {
|
|
42
|
+
if (this.isLoggedIn) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (response.request().resourceType() !== 'document') {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
let url;
|
|
49
|
+
try {
|
|
50
|
+
url = new URL(response.url());
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (url.hostname !== OPENROUTER_HOST) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (OPENROUTER_PRE_LOGIN_PATH_PATTERN.test(url.pathname)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (response.status() >= 200 && response.status() < 400) {
|
|
62
|
+
this.isLoggedIn = true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
isLoginComplete() {
|
|
66
|
+
return this.isLoggedIn;
|
|
67
|
+
}
|
|
68
|
+
async performBrowserFollowup(context, _oldCredentials) {
|
|
69
|
+
const page = context.pages()[0];
|
|
70
|
+
if (!page) {
|
|
71
|
+
throw new LoginFailedError('No page available in browser context.');
|
|
72
|
+
}
|
|
73
|
+
await page.goto(OPENROUTER_KEYS_URL, { waitUntil: 'domcontentloaded' });
|
|
74
|
+
// Open the "Create API Key" dialog. The keys page is a heavy client-rendered
|
|
75
|
+
// table, so the New Key button can sit in the DOM before React attaches its
|
|
76
|
+
// click handler; a too-early click is a no-op. Click until the dialog's name
|
|
77
|
+
// field actually appears (guarding against re-clicking an already-open
|
|
78
|
+
// dialog, whose overlay would swallow the click).
|
|
79
|
+
const newKeyButton = page.getByRole('button', { name: 'New Key' });
|
|
80
|
+
await newKeyButton.waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
81
|
+
const nameInput = page.locator('input#name');
|
|
82
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
83
|
+
const alreadyOpen = await nameInput.isVisible().catch(() => false);
|
|
84
|
+
if (!alreadyOpen) {
|
|
85
|
+
await newKeyButton.click().catch(() => undefined);
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
await nameInput.waitFor({ timeout: 3000 });
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
if (attempt === 4) {
|
|
93
|
+
throw new LoginFailedError('OpenRouter "New Key" dialog did not open.');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Give the key a recognizable name so the user can find and revoke it.
|
|
98
|
+
const keyName = this.generateAppName();
|
|
99
|
+
await typeLikeHuman(page, nameInput, keyName);
|
|
100
|
+
// Scope to the named dialog: a bare [role="dialog"] is ambiguous on this page
|
|
101
|
+
// (it also matches a hidden email-verification dialog and a password-manager
|
|
102
|
+
// modal), which makes every locator under it strict-mode-fail. The dialog keeps
|
|
103
|
+
// this title through the reveal step. Its Create button stays disabled until the
|
|
104
|
+
// name is non-empty.
|
|
105
|
+
const dialog = page.getByRole('dialog', { name: 'Create API Key' });
|
|
106
|
+
const createButton = dialog.getByRole('button', { name: 'Create', exact: true });
|
|
107
|
+
await createButton.waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
108
|
+
await createButton.click();
|
|
109
|
+
// The same dialog then reveals the new key exactly once, as plain text.
|
|
110
|
+
await dialog.getByText('Your new key:').waitFor({ timeout: DEFAULT_TIMEOUT_MS });
|
|
111
|
+
const dialogText = await dialog.innerText();
|
|
112
|
+
const match = OPENROUTER_KEY_PATTERN.exec(dialogText);
|
|
113
|
+
if (!match) {
|
|
114
|
+
throw new LoginFailedError('Failed to extract API key from OpenRouter.');
|
|
115
|
+
}
|
|
116
|
+
await page.close();
|
|
117
|
+
return new AuthorizationBearer(match[0]);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export class Openrouter extends Service {
|
|
121
|
+
name = 'openrouter';
|
|
122
|
+
displayName = 'OpenRouter';
|
|
123
|
+
baseApiUrls = [OPENROUTER_API_BASE_URL];
|
|
124
|
+
loginUrl = OPENROUTER_LOGIN_URL;
|
|
125
|
+
info = 'OpenRouter unified LLM API (OpenAI-compatible). Docs: https://openrouter.ai/docs/llms.txt';
|
|
126
|
+
// GET /api/v1/key returns 200 for any valid key; the stored bearer header is
|
|
127
|
+
// added by the credential before the request is sent.
|
|
128
|
+
credentialCheckCurlArguments = [OPENROUTER_KEY_INFO_URL];
|
|
129
|
+
setCredentialsExample(serviceName) {
|
|
130
|
+
return `latchkey auth set ${serviceName} -H "Authorization: Bearer <token>"`;
|
|
131
|
+
}
|
|
132
|
+
// An OpenRouter API key has no queryable user-identity endpoint, so the account
|
|
133
|
+
// is left as the default rather than guessed.
|
|
134
|
+
getAccount(_apiCredentials) {
|
|
135
|
+
return Promise.resolve(null);
|
|
136
|
+
}
|
|
137
|
+
getSession(appNamePrefix) {
|
|
138
|
+
return new OpenrouterServiceSession(this, appNamePrefix);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export const OPENROUTER = new Openrouter();
|
|
142
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/services/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,10 @@ import { z } from 'zod';
|
|
|
12
12
|
import { ApiCredentials } from '../apiCredentials/base.js';
|
|
13
13
|
import { BrowserFollowupServiceSession, FollowupWork, LoginFailedError, Service } from './core/base.js';
|
|
14
14
|
/**
|
|
15
|
-
* Whether a URL names
|
|
16
|
-
*
|
|
15
|
+
* Whether a URL names a page Zoom lands a user on once they are signed in. Also
|
|
16
|
+
* accepts the bare path, the form a redirect to it may take.
|
|
17
17
|
*/
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function isZoomSignedInLandingUrl(url: string): boolean;
|
|
19
19
|
export declare class ZoomCredentialError extends Error {
|
|
20
20
|
constructor(message: string);
|
|
21
21
|
}
|
|
@@ -77,11 +77,11 @@ declare class ZoomServiceSession extends BrowserFollowupServiceSession {
|
|
|
77
77
|
protected readonly followupWork = FollowupWork.CreateApp;
|
|
78
78
|
private isSignedIn;
|
|
79
79
|
/**
|
|
80
|
-
* Sign-in is over once Zoom sends the user to their home page
|
|
81
|
-
* after the last step of the sign-in (whatever two-factor or
|
|
82
|
-
* came before). Being sent there is enough — waiting for
|
|
83
|
-
* answer, let alone to render, would only cost a round trip, since
|
|
84
|
-
* navigates away from it to the Marketplace anyway.
|
|
80
|
+
* Sign-in is over once Zoom sends the user on to their home page or profile,
|
|
81
|
+
* which it does after the last step of the sign-in (whatever two-factor or
|
|
82
|
+
* consent steps came before). Being sent there is enough — waiting for that
|
|
83
|
+
* page to answer, let alone to render, would only cost a round trip, since
|
|
84
|
+
* the flow navigates away from it to the Marketplace anyway.
|
|
85
85
|
*/
|
|
86
86
|
onResponse(response: Response): void;
|
|
87
87
|
protected isLoginComplete(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/services/zoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA4B,MAAM,2BAA2B,CAAC;AAIrF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EAGZ,gBAAgB,EAChB,OAAO,EACR,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/services/zoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA4B,MAAM,2BAA2B,CAAC;AAIrF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EAGZ,gBAAgB,EAChB,OAAO,EACR,MAAM,gBAAgB,CAAC;AAexB;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7D;AAWD,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,qBAAa,gCAAiC,SAAQ,gBAAgB;;CAQrE;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;EAO9C,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEpG,qBAAa,6BAA8B,YAAW,cAAc;IAClE,QAAQ,CAAC,UAAU,EAAG,oBAAoB,CAAU;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAG7B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,YAAY,CAAC,EAAE,MAAM;IAUvB,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,MAAM,GAC3B,6BAA6B;IAWhC,kBAAkB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAUhF;;;OAGG;IACH,SAAS,IAAI,OAAO;IAQpB,MAAM,IAAI,iCAAiC;IAW3C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iCAAiC,GAAG,6BAA6B;CASxF;AA2gBD,cAAM,kBAAmB,SAAQ,6BAA6B;IAC5D,SAAS,CAAC,QAAQ,CAAC,YAAY,0BAA0B;IACzD,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAgBpC,SAAS,CAAC,eAAe,IAAI,OAAO;IAIpC;;;;;OAKG;YACW,4BAA4B;IAyB1C;;;;OAIG;YACW,iBAAiB;cA4Bf,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,cAAc,GAC/B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA6ClC;AAED,qBAAa,IAAK,SAAQ,OAAO;IAC/B,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,UAAU;IAC9B,QAAQ,CAAC,WAAW,uCAAwC;IAC5D,QAAQ,CAAC,QAAQ,mCAAoB;IACrC,QAAQ,CAAC,IAAI,SAGkC;IAE/C,QAAQ,CAAC,4BAA4B,gGAI1B;IAEX,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIlD;;;OAGG;IACM,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc;IAiBnE,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,kBAAkB;IAI9D;;;;;;OAMG;IACY,UAAU,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBjF;;;OAGG;IACY,kBAAkB,CAC/B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAMlC;AAED,eAAO,MAAM,IAAI,MAAa,CAAC"}
|
|
@@ -17,17 +17,18 @@ const ZOOM_TOKEN_ENDPOINT = 'https://zoom.us/oauth/token';
|
|
|
17
17
|
// Sign-in happens on Zoom itself rather than on the App Marketplace, which
|
|
18
18
|
// bounces visitors through a less predictable chain of pages.
|
|
19
19
|
const ZOOM_SIGN_IN_URL = 'https://zoom.us/signin#/login';
|
|
20
|
-
// Where Zoom
|
|
21
|
-
//
|
|
22
|
-
// possibly with a query or a subpath
|
|
23
|
-
// page either as an absolute URL or as
|
|
24
|
-
|
|
20
|
+
// Where Zoom lands a user once signed in: their home page or their profile,
|
|
21
|
+
// depending on the account, served by whichever regional host runs it
|
|
22
|
+
// (https://us06web.zoom.us/profile, ...) and possibly with a query or a subpath
|
|
23
|
+
// behind it. The redirect there names the page either as an absolute URL or as
|
|
24
|
+
// a path.
|
|
25
|
+
const SIGNED_IN_LANDING_URL_PATTERN = /^(https:\/\/([\w-]+\.)*zoom\.us)?\/(myhome|profile)\b/i;
|
|
25
26
|
/**
|
|
26
|
-
* Whether a URL names
|
|
27
|
-
*
|
|
27
|
+
* Whether a URL names a page Zoom lands a user on once they are signed in. Also
|
|
28
|
+
* accepts the bare path, the form a redirect to it may take.
|
|
28
29
|
*/
|
|
29
|
-
export function
|
|
30
|
-
return
|
|
30
|
+
export function isZoomSignedInLandingUrl(url) {
|
|
31
|
+
return SIGNED_IN_LANDING_URL_PATTERN.test(url);
|
|
31
32
|
}
|
|
32
33
|
// The Marketplace page that lists the user's apps and carries the "Develop"
|
|
33
34
|
// menu the app creation flow starts from.
|
|
@@ -531,11 +532,11 @@ class ZoomServiceSession extends BrowserFollowupServiceSession {
|
|
|
531
532
|
followupWork = FollowupWork.CreateApp;
|
|
532
533
|
isSignedIn = false;
|
|
533
534
|
/**
|
|
534
|
-
* Sign-in is over once Zoom sends the user to their home page
|
|
535
|
-
* after the last step of the sign-in (whatever two-factor or
|
|
536
|
-
* came before). Being sent there is enough — waiting for
|
|
537
|
-
* answer, let alone to render, would only cost a round trip, since
|
|
538
|
-
* navigates away from it to the Marketplace anyway.
|
|
535
|
+
* Sign-in is over once Zoom sends the user on to their home page or profile,
|
|
536
|
+
* which it does after the last step of the sign-in (whatever two-factor or
|
|
537
|
+
* consent steps came before). Being sent there is enough — waiting for that
|
|
538
|
+
* page to answer, let alone to render, would only cost a round trip, since
|
|
539
|
+
* the flow navigates away from it to the Marketplace anyway.
|
|
539
540
|
*/
|
|
540
541
|
onResponse(response) {
|
|
541
542
|
if (this.isSignedIn) {
|
|
@@ -545,8 +546,8 @@ class ZoomServiceSession extends BrowserFollowupServiceSession {
|
|
|
545
546
|
return;
|
|
546
547
|
}
|
|
547
548
|
const redirectTarget = response.headers().location;
|
|
548
|
-
if (
|
|
549
|
-
(redirectTarget !== undefined &&
|
|
549
|
+
if (isZoomSignedInLandingUrl(response.request().url()) ||
|
|
550
|
+
(redirectTarget !== undefined && isZoomSignedInLandingUrl(redirectTarget))) {
|
|
550
551
|
this.isSignedIn = true;
|
|
551
552
|
}
|
|
552
553
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom.js","sourceRoot":"","sources":["../../../src/services/zoom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zoom.js","sourceRoot":"","sources":["../../../src/services/zoom.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.5.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huggingface.test.d.ts","sourceRoot":"","sources":["../../tests/huggingface.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { HUGGINGFACE } from '../src/services/huggingface.js';
|
|
3
|
+
import { SERVICE_REGISTRY } from '../src/serviceRegistry.js';
|
|
4
|
+
function primaryServiceForUrl(url) {
|
|
5
|
+
return SERVICE_REGISTRY.getByUrl(url);
|
|
6
|
+
}
|
|
7
|
+
describe('Hugging Face URL matching', () => {
|
|
8
|
+
it('matches the Hub API on both hub hostnames', () => {
|
|
9
|
+
expect(primaryServiceForUrl('https://huggingface.co/api/whoami-v2')).toBe(HUGGINGFACE);
|
|
10
|
+
expect(primaryServiceForUrl('https://hf.co/api/models?limit=1')).toBe(HUGGINGFACE);
|
|
11
|
+
});
|
|
12
|
+
it('matches repository file transfers and git endpoints', () => {
|
|
13
|
+
expect(primaryServiceForUrl('https://huggingface.co/openai-community/gpt2/resolve/main/config.json')).toBe(HUGGINGFACE);
|
|
14
|
+
expect(primaryServiceForUrl('https://huggingface.co/owner/repo.git/info/refs?service=git-upload-pack')).toBe(HUGGINGFACE);
|
|
15
|
+
});
|
|
16
|
+
it('matches the inference router and the dataset viewer', () => {
|
|
17
|
+
expect(primaryServiceForUrl('https://router.huggingface.co/v1/chat/completions')).toBe(HUGGINGFACE);
|
|
18
|
+
expect(primaryServiceForUrl('https://datasets-server.huggingface.co/rows?dataset=x')).toBe(HUGGINGFACE);
|
|
19
|
+
});
|
|
20
|
+
// Redirected file transfers are authenticated by the URL itself, so the
|
|
21
|
+
// storage hosts are left to the caller: a bearer header would be pointless
|
|
22
|
+
// there, and the Xet CAS server even rejects the request once it sees a
|
|
23
|
+
// second Authorization header.
|
|
24
|
+
it('does not match the storage hosts that transfers are redirected to', () => {
|
|
25
|
+
expect(primaryServiceForUrl('https://us.aws.cdn.hf.co/xet-bridge-us/abc?Expires=1&Signature=x')).toBeNull();
|
|
26
|
+
expect(primaryServiceForUrl('https://cdn-lfs.hf.co/repos/aa/bb/file?Expires=1')).toBeNull();
|
|
27
|
+
expect(primaryServiceForUrl('https://cdn-lfs-us-1.hf.co/repos/aa/bb/file')).toBeNull();
|
|
28
|
+
expect(primaryServiceForUrl('https://cas-server.xethub.hf.co/reconstruction/abc')).toBeNull();
|
|
29
|
+
expect(primaryServiceForUrl('https://transfer.xethub.hf.co/xorbs/default/abc')).toBeNull();
|
|
30
|
+
});
|
|
31
|
+
it('does not match unrelated hosts, including hosted Spaces', () => {
|
|
32
|
+
expect(primaryServiceForUrl('https://myspace.hf.space/api/predict')).toBeNull();
|
|
33
|
+
expect(primaryServiceForUrl('https://hf.co.example.com/api/models')).toBeNull();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=huggingface.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"huggingface.test.js","sourceRoot":"","sources":["../../tests/huggingface.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,oBAAoB,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvF,MAAM,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CACJ,oBAAoB,CAAC,uEAAuE,CAAC,CAC9F,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpB,MAAM,CACJ,oBAAoB,CAClB,yEAAyE,CAC1E,CACF,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,oBAAoB,CAAC,mDAAmD,CAAC,CAAC,CAAC,IAAI,CACpF,WAAW,CACZ,CAAC;QACF,MAAM,CAAC,oBAAoB,CAAC,uDAAuD,CAAC,CAAC,CAAC,IAAI,CACxF,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,+BAA+B;IAC/B,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CACJ,oBAAoB,CAAC,kEAAkE,CAAC,CACzF,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,oBAAoB,CAAC,kDAAkD,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5F,MAAM,CAAC,oBAAoB,CAAC,6CAA6C,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvF,MAAM,CAAC,oBAAoB,CAAC,oDAAoD,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9F,MAAM,CAAC,oBAAoB,CAAC,iDAAiD,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,oBAAoB,CAAC,sCAAsC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChF,MAAM,CAAC,oBAAoB,CAAC,sCAAsC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -32,11 +32,11 @@ const DEFAULT_RECORDING_NAME = 'login_session.json';
|
|
|
32
32
|
// Do not test services that require special followup steps: their credential is
|
|
33
33
|
// minted by an interactive browser action (a BrowserFollowupServiceSession) and
|
|
34
34
|
// is not present in the recorded login network traffic, so replaying a recording
|
|
35
|
-
// cannot reconstruct it. ngrok
|
|
36
|
-
//
|
|
35
|
+
// cannot reconstruct it. ngrok, huggingface and openrouter are such services --
|
|
36
|
+
// their token is created and read from a one-time reveal dialog, exactly like linear.
|
|
37
37
|
// NOTE: todoist is also a BrowserFollowupServiceSession and arguably belongs here
|
|
38
38
|
// too; it predates this list and is left as-is to keep this change scoped.
|
|
39
|
-
const BLACKLIST = new Set(['dropbox', 'github', 'linear', 'ngrok']);
|
|
39
|
+
const BLACKLIST = new Set(['dropbox', 'github', 'linear', 'ngrok', 'huggingface', 'openrouter']);
|
|
40
40
|
class InvalidRecordingError extends Error {
|
|
41
41
|
constructor(message) {
|
|
42
42
|
super(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"servicesAgainstRecordings.test.js","sourceRoot":"","sources":["../../tests/servicesAgainstRecordings.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAW,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,iCAAiC;AACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAE/E,+DAA+D;AAC/D,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"servicesAgainstRecordings.test.js","sourceRoot":"","sources":["../../tests/servicesAgainstRecordings.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAW,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,iCAAiC;AACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;AAE/E,+DAA+D;AAC/D,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAEpD,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,sFAAsF;AACtF,kFAAkF;AAClF,2EAA2E;AAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AAEjG,MAAM,qBAAsB,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,4BAA6B,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAuBD,SAAS,oBAAoB,CAAC,YAAoB;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAwB;IACjD,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO;QAClC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa;QAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI;KACxB,CAAC;IAExB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,YAA0B,EAAE,WAAoB;IAC1E,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;IAErC,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM;QACjC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW;QAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO;QACnC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW;QAC1B,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB,CAAC;IAEzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAAgB,EAChB,kBAA0B;IAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;IAEtE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qBAAqB,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAE5D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,qBAAqB,CAC7B,WAAW,OAAO,CAAC,IAAI,8DAA8D,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC,CAAC,OAAO,YAAY,oBAAoB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,qBAAqB,CAC7B,WAAW,OAAO,CAAC,IAAI,iEAAiE,CACzF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAErE,wEAAwE;QACxE,4EAA4E;QAC5E,wBAAwB;QACxB,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAEnD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,4BAA4B,CACpC,8CAA8C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CACjG,CAAC;AACJ,CAAC;AAOD,SAAS,kBAAkB;IACzB,MAAM,UAAU,GAA0B,EAAE,CAAC;IAE7C,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;YAEjE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC;oBACd,WAAW,EAAE,IAAI,CAAC,IAAI;oBACtB,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,0CAA0C;AAC1C,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC;AAElD,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAClC,8BAA8B;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,oBAAoB,EAAE,CAAC;QAClE,EAAE,CAAC,mCAAmC,WAAW,YAAY,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAExD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,wCAAwC;gBACxC,MAAM,CAAC,IAAI,CAAC,YAAY,WAAW,yBAAyB,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAE9E,mCAAmC;YACnC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/tests/zoom.test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect, afterEach } from 'vitest';
|
|
2
2
|
import { ApiCredentialsUsageError, AuthorizationBearer } from '../src/apiCredentials/base.js';
|
|
3
3
|
import { resetAsyncSubprocessRunner, setAsyncSubprocessRunner } from '../src/curl.js';
|
|
4
|
-
import {
|
|
4
|
+
import { isZoomSignedInLandingUrl, ZOOM, ZoomCredentialError, ZoomServerToServerCredentials, } from '../src/services/zoom.js';
|
|
5
5
|
const APP_CREDENTIALS = new ZoomServerToServerCredentials('account-id', 'client-id', 'client-secret');
|
|
6
6
|
function inOneHour() {
|
|
7
7
|
return new Date(Date.now() + 3600_000).toISOString();
|
|
@@ -69,19 +69,23 @@ describe('Zoom.getCredentialsNoCurl', () => {
|
|
|
69
69
|
expect(() => ZOOM.getCredentialsNoCurl(['account-id', 'client-id'])).toThrow(ZoomCredentialError);
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
|
-
describe('
|
|
73
|
-
it('accepts the
|
|
74
|
-
expect(
|
|
75
|
-
expect(
|
|
76
|
-
expect(
|
|
77
|
-
expect(
|
|
78
|
-
expect(
|
|
72
|
+
describe('isZoomSignedInLandingUrl', () => {
|
|
73
|
+
it('accepts the pages Zoom lands on, on any regional host and as a bare path', () => {
|
|
74
|
+
expect(isZoomSignedInLandingUrl('https://zoom.us/myhome')).toBe(true);
|
|
75
|
+
expect(isZoomSignedInLandingUrl('https://us05web.zoom.us/myhome')).toBe(true);
|
|
76
|
+
expect(isZoomSignedInLandingUrl('https://us05web.zoom.us/myhome?from=signin')).toBe(true);
|
|
77
|
+
expect(isZoomSignedInLandingUrl('https://us05web.zoom.us/myhome/setting')).toBe(true);
|
|
78
|
+
expect(isZoomSignedInLandingUrl('https://us06web.zoom.us/profile')).toBe(true);
|
|
79
|
+
expect(isZoomSignedInLandingUrl('https://us06web.zoom.us/profile/setting')).toBe(true);
|
|
80
|
+
expect(isZoomSignedInLandingUrl('/myhome')).toBe(true);
|
|
81
|
+
expect(isZoomSignedInLandingUrl('/profile')).toBe(true);
|
|
79
82
|
});
|
|
80
83
|
it('rejects other pages, and other hosts borrowing the path', () => {
|
|
81
|
-
expect(
|
|
82
|
-
expect(
|
|
83
|
-
expect(
|
|
84
|
-
expect(
|
|
84
|
+
expect(isZoomSignedInLandingUrl('https://zoom.us/signin#/login')).toBe(false);
|
|
85
|
+
expect(isZoomSignedInLandingUrl('https://us05web.zoom.us/myhomepage')).toBe(false);
|
|
86
|
+
expect(isZoomSignedInLandingUrl('https://us06web.zoom.us/profiles')).toBe(false);
|
|
87
|
+
expect(isZoomSignedInLandingUrl('https://marketplace.zoom.us/user/build')).toBe(false);
|
|
88
|
+
expect(isZoomSignedInLandingUrl('https://not-zoom.example.com/profile')).toBe(false);
|
|
85
89
|
});
|
|
86
90
|
});
|
|
87
91
|
describe('Zoom.getAccount', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom.test.js","sourceRoot":"","sources":["../../tests/zoom.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"zoom.test.js","sourceRoot":"","sources":["../../tests/zoom.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EACL,wBAAwB,EACxB,IAAI,EACJ,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,eAAe,GAAG,IAAI,6BAA6B,CACvD,YAAY,EACZ,WAAW,EACX,eAAe,CAChB,CAAC;AAEF,SAAS,SAAS;IAChB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,0BAA0B,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAChE,IAAI;YACJ,oCAAoC;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,aAAa,GAAG,eAAe,CAAC,eAAe,CACnD,cAAc,EACd,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAC5C,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,IAAI,iBAAiB,GAAsB,EAAE,CAAC;QAC9C,wBAAwB,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,iBAAiB,GAAG,IAAI,CAAC;YACzB,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC;gBACxE,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAEjE,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAE,SAA2C,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtF,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC/D,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,wBAAwB,CAAC,GAAG,EAAE,CAC5B,OAAO,CAAC,OAAO,CAAC;YACd,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC;YACtE,MAAM,EAAE,EAAE;SACX,CAAC,CACH,CAAC;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;QAC5F,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1E,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,CAAC,wBAAwB,CAAC,4CAA4C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,CAAC,wBAAwB,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtF,MAAM,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,wBAAwB,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,CAAC,wBAAwB,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjF,MAAM,CAAC,wBAAwB,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,SAAS,iBAAiB;QACxB,wBAAwB,CAAC,GAAG,EAAE,CAC5B,OAAO,CAAC,OAAO,CAAC;YACd,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC;YACrE,MAAM,EAAE,EAAE;SACX,CAAC,CACH,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,iBAAiB,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,6BAA6B,CACnD,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,SAAS,EAAE,EACX,mBAAmB,CACpB,CAAC;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,iBAAiB,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,WAAW,GAAG,IAAI,6BAA6B,CACnD,YAAY,EACZ,WAAW,EACX,eAAe,EACf,SAAS,EACT,SAAS,EACT,mBAAmB,CACpB,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAChF,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "latchkey",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "A CLI tool that injects API credentials into curl requests to third-party services",
|
|
5
5
|
"author": "Imbue <hynek@imbue.com>",
|
|
6
6
|
"repository": {
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"node": ">=20"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@imbue-ai/detent": "^1.
|
|
61
|
+
"@imbue-ai/detent": "^1.13.0",
|
|
62
62
|
"@napi-rs/keyring": "^1.2.0",
|
|
63
63
|
"commander": "^12.0.0",
|
|
64
64
|
"playwright": "~1.60.0",
|