latchkey 2.0.0 → 2.2.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 +51 -12
- package/dist/integrations/SKILL.md +15 -8
- package/dist/package.json +3 -3
- package/dist/scripts/codegen.js +1 -1
- package/dist/scripts/codegen.js.map +1 -1
- package/dist/src/apiCredentials.d.ts +2 -1
- package/dist/src/apiCredentials.d.ts.map +1 -1
- package/dist/src/apiCredentials.js +1 -0
- package/dist/src/apiCredentials.js.map +1 -1
- package/dist/src/atomicWrite.d.ts +18 -0
- package/dist/src/atomicWrite.d.ts.map +1 -0
- package/dist/src/atomicWrite.js +42 -0
- package/dist/src/atomicWrite.js.map +1 -0
- package/dist/src/browserConfig.d.ts +1 -28
- package/dist/src/browserConfig.d.ts.map +1 -1
- package/dist/src/browserConfig.js +4 -73
- package/dist/src/browserConfig.js.map +1 -1
- package/dist/src/cli.js +2 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/cliCommands.d.ts.map +1 -1
- package/dist/src/cliCommands.js +112 -4
- package/dist/src/cliCommands.js.map +1 -1
- package/dist/src/configDataStore.d.ts +43 -0
- package/dist/src/configDataStore.d.ts.map +1 -0
- package/dist/src/configDataStore.js +109 -0
- package/dist/src/configDataStore.js.map +1 -0
- package/dist/src/encryptedStorage.d.ts.map +1 -1
- package/dist/src/encryptedStorage.js +3 -2
- package/dist/src/encryptedStorage.js.map +1 -1
- package/dist/src/migrations.d.ts.map +1 -1
- package/dist/src/migrations.js +3 -2
- package/dist/src/migrations.js.map +1 -1
- package/dist/src/oauthUtils.js +1 -1
- package/dist/src/oauthUtils.js.map +1 -1
- package/dist/src/registeredService.d.ts +20 -0
- package/dist/src/registeredService.d.ts.map +1 -0
- package/dist/src/registeredService.js +34 -0
- package/dist/src/registeredService.js.map +1 -0
- package/dist/src/registeredServiceStore.d.ts +24 -0
- package/dist/src/registeredServiceStore.d.ts.map +1 -0
- package/dist/src/registeredServiceStore.js +70 -0
- package/dist/src/registeredServiceStore.js.map +1 -0
- package/dist/src/registry.d.ts +11 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +55 -5
- package/dist/src/registry.js.map +1 -1
- package/dist/src/services/aws.d.ts +1 -1
- package/dist/src/services/aws.d.ts.map +1 -1
- package/dist/src/services/aws.js +1 -1
- package/dist/src/services/aws.js.map +1 -1
- package/dist/src/services/calendly.d.ts +1 -1
- package/dist/src/services/calendly.d.ts.map +1 -1
- package/dist/src/services/calendly.js +1 -1
- package/dist/src/services/calendly.js.map +1 -1
- package/dist/src/services/coolify.d.ts +12 -0
- package/dist/src/services/coolify.d.ts.map +1 -0
- package/dist/src/services/coolify.js +14 -0
- package/dist/src/services/coolify.js.map +1 -0
- package/dist/src/services/core/base.d.ts +141 -0
- package/dist/src/services/core/base.d.ts.map +1 -0
- package/dist/src/services/core/base.js +189 -0
- package/dist/src/services/core/base.js.map +1 -0
- package/dist/src/services/core/registered.d.ts +24 -0
- package/dist/src/services/core/registered.d.ts.map +1 -0
- package/dist/src/services/core/registered.js +53 -0
- package/dist/src/services/core/registered.js.map +1 -0
- package/dist/src/services/discord.d.ts +1 -1
- package/dist/src/services/discord.d.ts.map +1 -1
- package/dist/src/services/discord.js +1 -1
- package/dist/src/services/discord.js.map +1 -1
- package/dist/src/services/dropbox.d.ts +1 -1
- package/dist/src/services/dropbox.d.ts.map +1 -1
- package/dist/src/services/dropbox.js +1 -1
- package/dist/src/services/dropbox.js.map +1 -1
- package/dist/src/services/figma.d.ts +1 -1
- package/dist/src/services/figma.d.ts.map +1 -1
- package/dist/src/services/figma.js +1 -1
- package/dist/src/services/figma.js.map +1 -1
- package/dist/src/services/github.d.ts +1 -1
- package/dist/src/services/github.d.ts.map +1 -1
- package/dist/src/services/github.js +1 -1
- package/dist/src/services/github.js.map +1 -1
- package/dist/src/services/gitlab.d.ts +1 -1
- package/dist/src/services/gitlab.d.ts.map +1 -1
- package/dist/src/services/gitlab.js +1 -1
- package/dist/src/services/gitlab.js.map +1 -1
- package/dist/src/services/google/base.d.ts +1 -1
- package/dist/src/services/google/base.d.ts.map +1 -1
- package/dist/src/services/google/base.js +1 -1
- package/dist/src/services/google/base.js.map +1 -1
- package/dist/src/services/google/directions.d.ts +1 -1
- package/dist/src/services/google/directions.d.ts.map +1 -1
- package/dist/src/services/google/directions.js +1 -1
- package/dist/src/services/google/directions.js.map +1 -1
- package/dist/src/services/index.d.ts +5 -2
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +5 -2
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/linear.d.ts +1 -1
- package/dist/src/services/linear.d.ts.map +1 -1
- package/dist/src/services/linear.js +1 -1
- package/dist/src/services/linear.js.map +1 -1
- package/dist/src/services/mailchimp.d.ts +1 -1
- package/dist/src/services/mailchimp.d.ts.map +1 -1
- package/dist/src/services/mailchimp.js +1 -1
- package/dist/src/services/mailchimp.js.map +1 -1
- package/dist/src/services/notion.d.ts +1 -1
- package/dist/src/services/notion.d.ts.map +1 -1
- package/dist/src/services/notion.js +1 -1
- package/dist/src/services/notion.js.map +1 -1
- package/dist/src/services/sentry.d.ts +1 -1
- package/dist/src/services/sentry.d.ts.map +1 -1
- package/dist/src/services/sentry.js +1 -1
- package/dist/src/services/sentry.js.map +1 -1
- package/dist/src/services/slack.d.ts +1 -1
- package/dist/src/services/slack.d.ts.map +1 -1
- package/dist/src/services/slack.js +1 -1
- package/dist/src/services/slack.js.map +1 -1
- package/dist/src/services/stripe.d.ts +1 -1
- package/dist/src/services/stripe.d.ts.map +1 -1
- package/dist/src/services/stripe.js +1 -1
- package/dist/src/services/stripe.js.map +1 -1
- package/dist/src/services/telegram.d.ts +1 -1
- package/dist/src/services/telegram.d.ts.map +1 -1
- package/dist/src/services/telegram.js +1 -1
- package/dist/src/services/telegram.js.map +1 -1
- package/dist/src/services/umami.d.ts +12 -0
- package/dist/src/services/umami.d.ts.map +1 -0
- package/dist/src/services/umami.js +14 -0
- package/dist/src/services/umami.js.map +1 -0
- package/dist/src/services/yelp.d.ts +1 -1
- package/dist/src/services/yelp.d.ts.map +1 -1
- package/dist/src/services/yelp.js +1 -1
- package/dist/src/services/yelp.js.map +1 -1
- package/dist/src/services/zoom.d.ts +1 -1
- package/dist/src/services/zoom.d.ts.map +1 -1
- package/dist/src/services/zoom.js +1 -1
- package/dist/src/services/zoom.js.map +1 -1
- package/dist/tests/atomicWrite.test.d.ts +2 -0
- package/dist/tests/atomicWrite.test.d.ts.map +1 -0
- package/dist/tests/atomicWrite.test.js +95 -0
- package/dist/tests/atomicWrite.test.js.map +1 -0
- package/dist/tests/cli.test.js +693 -2
- package/dist/tests/cli.test.js.map +1 -1
- package/dist/tests/lint.test.js +1 -1
- package/dist/tests/lint.test.js.map +1 -1
- package/dist/tests/registry.test.js +100 -2
- package/dist/tests/registry.test.js.map +1 -1
- package/dist/tests/servicesAgainstRecordings.test.js +1 -1
- package/dist/tests/servicesAgainstRecordings.test.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistence for user-registered services in config.json.
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
|
+
import { dirname } from 'node:path';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { RegisteredService } from './registeredService.js';
|
|
8
|
+
const RegisteredServiceEntrySchema = z.object({
|
|
9
|
+
baseApiUrl: z.string(),
|
|
10
|
+
serviceFamily: z.string(),
|
|
11
|
+
loginUrl: z.string().optional(),
|
|
12
|
+
});
|
|
13
|
+
const RegisteredServicesSchema = z.record(z.string(), RegisteredServiceEntrySchema);
|
|
14
|
+
export function loadRegisteredServices(configPath) {
|
|
15
|
+
if (!existsSync(configPath)) {
|
|
16
|
+
return new Map();
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
20
|
+
const data = JSON.parse(content);
|
|
21
|
+
if (typeof data !== 'object' || data === null) {
|
|
22
|
+
return new Map();
|
|
23
|
+
}
|
|
24
|
+
const record = data;
|
|
25
|
+
const registeredServices = RegisteredServicesSchema.parse(record.registeredServices ?? {});
|
|
26
|
+
return new Map(Object.entries(registeredServices));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return new Map();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function saveRegisteredService(configPath, name, entry) {
|
|
33
|
+
const directory = dirname(configPath);
|
|
34
|
+
if (!existsSync(directory)) {
|
|
35
|
+
mkdirSync(directory, { recursive: true, mode: 0o700 });
|
|
36
|
+
}
|
|
37
|
+
let existingConfig = {};
|
|
38
|
+
if (existsSync(configPath)) {
|
|
39
|
+
try {
|
|
40
|
+
const existingContent = readFileSync(configPath, 'utf-8');
|
|
41
|
+
existingConfig = JSON.parse(existingContent);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Ignore parse errors, start fresh
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const registeredServices = typeof existingConfig.registeredServices === 'object' &&
|
|
48
|
+
existingConfig.registeredServices !== null
|
|
49
|
+
? existingConfig.registeredServices
|
|
50
|
+
: {};
|
|
51
|
+
registeredServices[name] = entry;
|
|
52
|
+
existingConfig.registeredServices = registeredServices;
|
|
53
|
+
const content = JSON.stringify(existingConfig, null, 2);
|
|
54
|
+
writeFileSync(configPath, content, { encoding: 'utf-8' });
|
|
55
|
+
}
|
|
56
|
+
export function loadRegisteredServicesIntoRegistry(configPath, registry) {
|
|
57
|
+
const entries = loadRegisteredServices(configPath);
|
|
58
|
+
for (const [name, entry] of entries) {
|
|
59
|
+
const familyService = registry.getByName(entry.serviceFamily);
|
|
60
|
+
if (familyService === null) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (registry.getByName(name) !== null) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const registeredService = new RegisteredService(name, entry.baseApiUrl, familyService, entry.loginUrl);
|
|
67
|
+
registry.addService(registeredService);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=registeredServiceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registeredServiceStore.js","sourceRoot":"","sources":["../../src/registeredServiceStore.ts"],"names":[],"mappings":"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"}
|
package/dist/src/registry.d.ts
CHANGED
|
@@ -2,11 +2,21 @@
|
|
|
2
2
|
* Service registry for looking up services by name or URL.
|
|
3
3
|
*/
|
|
4
4
|
import { Service } from './services/index.js';
|
|
5
|
+
export declare class DuplicateServiceNameError extends Error {
|
|
6
|
+
constructor(name: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class InvalidServiceNameError extends Error {
|
|
9
|
+
constructor(name: string);
|
|
10
|
+
}
|
|
11
|
+
export declare function canonicalizeServiceName(name: string): string;
|
|
5
12
|
export declare class Registry {
|
|
6
|
-
|
|
13
|
+
private readonly _services;
|
|
7
14
|
constructor(services: readonly Service[]);
|
|
15
|
+
get services(): readonly Service[];
|
|
16
|
+
addService(service: Service): void;
|
|
8
17
|
getByName(name: string): Service | null;
|
|
9
18
|
getByUrl(url: string): Service | null;
|
|
10
19
|
}
|
|
20
|
+
export declare function loadRegisteredServicesIntoRegistry(configPath: string, registry: Registry): void;
|
|
11
21
|
export declare const REGISTRY: Registry;
|
|
12
22
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,OAAO,EA2BR,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,QAAQ;IACnB,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,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IASvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;CAgBtC;AAED,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAqB/F;AAED,eAAO,MAAM,QAAQ,UA2BnB,CAAC"}
|
package/dist/src/registry.js
CHANGED
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Service registry for looking up services by name or URL.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { loadRegisteredServices } from './configDataStore.js';
|
|
5
|
+
import { RegisteredService } from './services/core/registered.js';
|
|
6
|
+
import { SLACK, DISCORD, DROPBOX, GITHUB, LINEAR, NOTION, GOOGLE_GMAIL, GOOGLE_CALENDAR, GOOGLE_DRIVE, GOOGLE_SHEETS, GOOGLE_DOCS, GOOGLE_PEOPLE, MAILCHIMP, GITLAB, ZOOM, SENTRY, STRIPE, FIGMA, GOOGLE_ANALYTICS, CALENDLY, YELP, TELEGRAM, AWS, GOOGLE_DIRECTIONS, COOLIFY, UMAMI, } from './services/index.js';
|
|
7
|
+
export class DuplicateServiceNameError extends Error {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
super(`A service with the name '${name}' already exists.`);
|
|
10
|
+
this.name = 'DuplicateServiceNameError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class InvalidServiceNameError extends Error {
|
|
14
|
+
constructor(name) {
|
|
15
|
+
super(`Invalid service name '${name}'. Names must contain only lowercase letters, digits, hyphens, and underscores.`);
|
|
16
|
+
this.name = 'InvalidServiceNameError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const SERVICE_NAME_PATTERN = /^[a-z0-9][a-z0-9_-]*$/;
|
|
20
|
+
export function canonicalizeServiceName(name) {
|
|
21
|
+
const canonicalized = name.toLowerCase().replace(/\s+/g, '-');
|
|
22
|
+
if (!SERVICE_NAME_PATTERN.test(canonicalized)) {
|
|
23
|
+
throw new InvalidServiceNameError(name);
|
|
24
|
+
}
|
|
25
|
+
return canonicalized;
|
|
26
|
+
}
|
|
5
27
|
export class Registry {
|
|
6
|
-
|
|
28
|
+
_services;
|
|
7
29
|
constructor(services) {
|
|
8
|
-
this.
|
|
30
|
+
this._services = [...services];
|
|
31
|
+
}
|
|
32
|
+
get services() {
|
|
33
|
+
return this._services;
|
|
34
|
+
}
|
|
35
|
+
addService(service) {
|
|
36
|
+
if (this.getByName(service.name) !== null) {
|
|
37
|
+
throw new DuplicateServiceNameError(service.name);
|
|
38
|
+
}
|
|
39
|
+
this._services.push(service);
|
|
9
40
|
}
|
|
10
41
|
getByName(name) {
|
|
11
|
-
for (const service of this.
|
|
42
|
+
for (const service of this._services) {
|
|
12
43
|
if (service.name === name) {
|
|
13
44
|
return service;
|
|
14
45
|
}
|
|
@@ -16,7 +47,7 @@ export class Registry {
|
|
|
16
47
|
return null;
|
|
17
48
|
}
|
|
18
49
|
getByUrl(url) {
|
|
19
|
-
for (const service of this.
|
|
50
|
+
for (const service of this._services) {
|
|
20
51
|
for (const baseApiUrl of service.baseApiUrls) {
|
|
21
52
|
if (typeof baseApiUrl === 'string') {
|
|
22
53
|
if (url.startsWith(baseApiUrl)) {
|
|
@@ -33,6 +64,23 @@ export class Registry {
|
|
|
33
64
|
return null;
|
|
34
65
|
}
|
|
35
66
|
}
|
|
67
|
+
export function loadRegisteredServicesIntoRegistry(configPath, registry) {
|
|
68
|
+
const entries = loadRegisteredServices(configPath);
|
|
69
|
+
for (const [name, entry] of entries) {
|
|
70
|
+
let familyService;
|
|
71
|
+
if (entry.serviceFamily !== undefined) {
|
|
72
|
+
familyService = registry.getByName(entry.serviceFamily) ?? undefined;
|
|
73
|
+
if (familyService === undefined) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (registry.getByName(name) !== null) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const registeredService = new RegisteredService(name, entry.baseApiUrl, familyService, entry.loginUrl);
|
|
81
|
+
registry.addService(registeredService);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
36
84
|
export const REGISTRY = new Registry([
|
|
37
85
|
SLACK,
|
|
38
86
|
DISCORD,
|
|
@@ -58,5 +106,7 @@ export const REGISTRY = new Registry([
|
|
|
58
106
|
TELEGRAM,
|
|
59
107
|
AWS,
|
|
60
108
|
GOOGLE_DIRECTIONS,
|
|
109
|
+
COOLIFY,
|
|
110
|
+
UMAMI,
|
|
61
111
|
]);
|
|
62
112
|
//# sourceMappingURL=registry.js.map
|
package/dist/src/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,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,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { type ApiCredentials } from '../apiCredentials.js';
|
|
3
|
-
import { Service } from './base.js';
|
|
3
|
+
import { Service } from './core/base.js';
|
|
4
4
|
/**
|
|
5
5
|
* AWS credentials using Signature Version 4 request signing.
|
|
6
6
|
* Stores an access key ID and secret access key, and signs each request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws.d.ts","sourceRoot":"","sources":["../../../src/services/aws.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3D,OAAO,EAAsC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"aws.d.ts","sourceRoot":"","sources":["../../../src/services/aws.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3D,OAAO,EAAsC,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAkMtE,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,UAAU,EAAG,KAAK,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAKxD,kBAAkB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;IAuBvE,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,MAAM,IAAI,kBAAkB;IAQ5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc;CAG1D;AAED,qBAAa,GAAI,SAAQ,OAAO;IAC9B,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,WAAW,oBAAmD;IACvE,QAAQ,CAAC,QAAQ,qCAAqC;IACtD,QAAQ,CAAC,IAAI,mCAAmC;IAEhD,QAAQ,CAAC,4BAA4B,sFAE1B;IAEX,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIzC,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc;CAkB7E;AAUD,eAAO,MAAM,GAAG,KAAY,CAAC"}
|
package/dist/src/services/aws.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash, createHmac } from 'node:crypto';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { extractBodyFromCurlArguments, extractHeadersFromCurlArguments, extractMethodFromCurlArguments, extractUrlFromCurlArguments, } from '../curl.js';
|
|
4
|
-
import { NoCurlCredentialsNotSupportedError, Service } from './base.js';
|
|
4
|
+
import { NoCurlCredentialsNotSupportedError, Service } from './core/base.js';
|
|
5
5
|
/**
|
|
6
6
|
* AWS credentials using Signature Version 4 request signing.
|
|
7
7
|
* Stores an access key ID and secret access key, and signs each request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/services/aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kCAAkC,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/services/aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendly.d.ts","sourceRoot":"","sources":["../../../src/services/calendly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"calendly.d.ts","sourceRoot":"","sources":["../../../src/services/calendly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,QAAS,SAAQ,OAAO;IACnC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,cAAc;IAClC,QAAQ,CAAC,WAAW,yCAA0C;IAC9D,QAAQ,CAAC,QAAQ,gCAAgC;IACjD,QAAQ,CAAC,IAAI,8CAA8C;IAE3D,QAAQ,CAAC,4BAA4B,yFAI1B;IAEX,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAGnD;AAED,eAAO,MAAM,QAAQ,UAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendly.js","sourceRoot":"","sources":["../../../src/services/calendly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"calendly.js","sourceRoot":"","sources":["../../../src/services/calendly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,QAAS,SAAQ,OAAO;IAC1B,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,UAAU,CAAC;IACzB,WAAW,GAAG,CAAC,2BAA2B,CAAU,CAAC;IACrD,QAAQ,GAAG,4BAA4B,CAAC;IACxC,IAAI,GAAG,0CAA0C,CAAC;IAElD,4BAA4B,GAAG;QACtC,IAAI;QACJ,gCAAgC;QAChC,mCAAmC;KAC3B,CAAC;IAEX,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,WAAW,qCAAqC,CAAC;IAC/E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Service } from './core/base.js';
|
|
2
|
+
export declare class Coolify extends Service {
|
|
3
|
+
readonly name = "coolify";
|
|
4
|
+
readonly displayName = "Coolify";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://app.coolify.io/api/"];
|
|
6
|
+
readonly loginUrl = "https://app.coolify.io/login";
|
|
7
|
+
readonly info = "https://coolify.io/docs/llms.txt";
|
|
8
|
+
readonly credentialCheckCurlArguments: readonly ["https://app.coolify.io/api/v1/version"];
|
|
9
|
+
setCredentialsExample(serviceName: string): string;
|
|
10
|
+
}
|
|
11
|
+
export declare const COOLIFY: Coolify;
|
|
12
|
+
//# sourceMappingURL=coolify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coolify.d.ts","sourceRoot":"","sources":["../../../src/services/coolify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,OAAQ,SAAQ,OAAO;IAClC,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,aAAa;IACjC,QAAQ,CAAC,WAAW,2CAA4C;IAChE,QAAQ,CAAC,QAAQ,kCAAkC;IACnD,QAAQ,CAAC,IAAI,sCAAsC;IAEnD,QAAQ,CAAC,4BAA4B,qDAAsD;IAE3F,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAGnD;AAED,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Service } from './core/base.js';
|
|
2
|
+
export class Coolify extends Service {
|
|
3
|
+
name = 'coolify';
|
|
4
|
+
displayName = 'Coolify';
|
|
5
|
+
baseApiUrls = ['https://app.coolify.io/api/'];
|
|
6
|
+
loginUrl = 'https://app.coolify.io/login';
|
|
7
|
+
info = 'https://coolify.io/docs/llms.txt';
|
|
8
|
+
credentialCheckCurlArguments = ['https://app.coolify.io/api/v1/version'];
|
|
9
|
+
setCredentialsExample(serviceName) {
|
|
10
|
+
return `latchkey auth set ${serviceName} -H "Authorization: Bearer <token>"`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export const COOLIFY = new Coolify();
|
|
14
|
+
//# sourceMappingURL=coolify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coolify.js","sourceRoot":"","sources":["../../../src/services/coolify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,OAAQ,SAAQ,OAAO;IACzB,IAAI,GAAG,SAAS,CAAC;IACjB,WAAW,GAAG,SAAS,CAAC;IACxB,WAAW,GAAG,CAAC,6BAA6B,CAAU,CAAC;IACvD,QAAQ,GAAG,8BAA8B,CAAC;IAC1C,IAAI,GAAG,kCAAkC,CAAC;IAE1C,4BAA4B,GAAG,CAAC,uCAAuC,CAAU,CAAC;IAE3F,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,WAAW,qCAAqC,CAAC;IAC/E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base classes and interfaces for service implementations.
|
|
3
|
+
*/
|
|
4
|
+
import type { Browser, BrowserContext, Response } from 'playwright';
|
|
5
|
+
import { ApiCredentialStatus, ApiCredentials } from '../../apiCredentials.js';
|
|
6
|
+
import { EncryptedStorage } from '../../encryptedStorage.js';
|
|
7
|
+
import { type BrowserLaunchOptions } from '../../playwrightUtils.js';
|
|
8
|
+
export declare class NoCurlCredentialsNotSupportedError extends Error {
|
|
9
|
+
constructor(serviceName: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class LoginCancelledError extends Error {
|
|
12
|
+
constructor(message?: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class LoginFailedError extends Error {
|
|
15
|
+
constructor(message?: string);
|
|
16
|
+
}
|
|
17
|
+
export declare function isBrowserClosedError(error: Error): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Abstract base class for services that latchkey can authenticate with.
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class Service {
|
|
22
|
+
abstract readonly name: string;
|
|
23
|
+
abstract readonly displayName: string;
|
|
24
|
+
abstract readonly baseApiUrls: readonly (string | RegExp)[];
|
|
25
|
+
abstract readonly loginUrl: string;
|
|
26
|
+
/**
|
|
27
|
+
* Developer notes about this service for agents and users.
|
|
28
|
+
*/
|
|
29
|
+
abstract readonly info: string;
|
|
30
|
+
/**
|
|
31
|
+
* Return curl arguments for checking credentials (excluding auth headers).
|
|
32
|
+
*/
|
|
33
|
+
abstract readonly credentialCheckCurlArguments: readonly string[];
|
|
34
|
+
/**
|
|
35
|
+
* Check if the given API credentials are valid for this service.
|
|
36
|
+
*/
|
|
37
|
+
checkApiCredentials(apiCredentials: ApiCredentials): ApiCredentialStatus;
|
|
38
|
+
/**
|
|
39
|
+
* Return an example showing how to set credentials for this service via the CLI.
|
|
40
|
+
* The service name is passed as a parameter (not baked in) so the same example
|
|
41
|
+
* can be reused for aliased services in the future.
|
|
42
|
+
*/
|
|
43
|
+
abstract setCredentialsExample(serviceName: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Set credentials from arbitrary (non-curl) arguments.
|
|
46
|
+
* Services that support this should override to validate and return typed credentials.
|
|
47
|
+
*/
|
|
48
|
+
getCredentialsNoCurl(_arguments: readonly string[]): ApiCredentials;
|
|
49
|
+
/**
|
|
50
|
+
* Get a new session for the login flow.
|
|
51
|
+
* Services that don't support browser login should not implement this method.
|
|
52
|
+
*/
|
|
53
|
+
getSession?(): ServiceSession;
|
|
54
|
+
/**
|
|
55
|
+
* Optional method to refresh expired credentials.
|
|
56
|
+
* Services can implement this to refresh access tokens without user interaction.
|
|
57
|
+
* @param apiCredentials - The expired credentials
|
|
58
|
+
* @returns New credentials if refresh succeeded, null otherwise
|
|
59
|
+
*/
|
|
60
|
+
refreshCredentials?(apiCredentials: ApiCredentials): Promise<ApiCredentials | null>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Base class for service sessions that handle browser-based interactions.
|
|
64
|
+
* This includes login, preparation steps, and any other browser automation.
|
|
65
|
+
*/
|
|
66
|
+
export declare abstract class ServiceSession {
|
|
67
|
+
readonly service: Service;
|
|
68
|
+
constructor(service: Service);
|
|
69
|
+
/**
|
|
70
|
+
* Handle a response during the headful login phase.
|
|
71
|
+
*/
|
|
72
|
+
abstract onResponse(response: Response): void;
|
|
73
|
+
/**
|
|
74
|
+
* Check if the login phase is complete.
|
|
75
|
+
*/
|
|
76
|
+
protected abstract isLoginComplete(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Finalize credentials after the headful login phase.
|
|
79
|
+
* Receives the browser and context from the login phase, which are still open.
|
|
80
|
+
* @param browser - Browser instance
|
|
81
|
+
* @param context - Browser context
|
|
82
|
+
* @param oldCredentials - Optional existing credentials to reuse
|
|
83
|
+
*/
|
|
84
|
+
protected abstract finalizeCredentials(browser: Browser, context: BrowserContext, oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
85
|
+
/**
|
|
86
|
+
* Wait until the browser login phase is complete.
|
|
87
|
+
*/
|
|
88
|
+
private waitForLoginComplete;
|
|
89
|
+
/**
|
|
90
|
+
* Optionally diagnose a timeout error that occurred during credential finalization.
|
|
91
|
+
*
|
|
92
|
+
* Services can override this to inspect the page state and return a more
|
|
93
|
+
* specific error (e.g., checking for permission denied messages).
|
|
94
|
+
* If this returns an error, it will be thrown instead of the generic
|
|
95
|
+
* LoginFailedError. If it returns null, the original timeout error message is used.
|
|
96
|
+
*/
|
|
97
|
+
protected diagnoseTimeoutError(_context: BrowserContext, _originalError: Error): Promise<Error | null>;
|
|
98
|
+
/**
|
|
99
|
+
* Optional preparation step before login.
|
|
100
|
+
* Services can override this to perform setup (e.g., creating OAuth clients).
|
|
101
|
+
*/
|
|
102
|
+
prepare?(encryptedStorage: EncryptedStorage, launchOptions?: BrowserLaunchOptions): Promise<ApiCredentials>;
|
|
103
|
+
/**
|
|
104
|
+
* Perform the login flow and return the extracted credentials.
|
|
105
|
+
* @param encryptedStorage - Storage for managing credentials
|
|
106
|
+
* @param launchOptions - Browser launch options
|
|
107
|
+
* @param oldCredentials - Optional existing credentials to reuse (e.g., client ID/secret)
|
|
108
|
+
*/
|
|
109
|
+
login(encryptedStorage: EncryptedStorage, launchOptions?: BrowserLaunchOptions, oldCredentials?: ApiCredentials): Promise<ApiCredentials>;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Simple service session where credentials are extracted by observing requests during login.
|
|
113
|
+
*/
|
|
114
|
+
export declare abstract class SimpleServiceSession extends ServiceSession {
|
|
115
|
+
protected apiCredentials: ApiCredentials | null;
|
|
116
|
+
/**
|
|
117
|
+
* Extract API credentials from a response during the headful login phase.
|
|
118
|
+
*/
|
|
119
|
+
protected abstract getApiCredentialsFromResponse(response: Response): Promise<ApiCredentials | null>;
|
|
120
|
+
onResponse(response: Response): void;
|
|
121
|
+
protected isLoginComplete(): boolean;
|
|
122
|
+
protected finalizeCredentials(_browser: Browser, _context: BrowserContext, _oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Service session that requires a browser followup to finalize credentials.
|
|
126
|
+
*
|
|
127
|
+
* The login phase captures login state. After login completes,
|
|
128
|
+
* the same browser session is reused to perform additional actions
|
|
129
|
+
* (e.g., navigating to settings and creating an API key).
|
|
130
|
+
*/
|
|
131
|
+
export declare abstract class BrowserFollowupServiceSession extends ServiceSession {
|
|
132
|
+
/**
|
|
133
|
+
* Perform actions in the browser to finalize and extract API credentials.
|
|
134
|
+
* This runs in the same browser session used for login.
|
|
135
|
+
* @param context - Browser context
|
|
136
|
+
* @param oldCredentials - Optional existing credentials to reuse
|
|
137
|
+
*/
|
|
138
|
+
protected abstract performBrowserFollowup(context: BrowserContext, oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
139
|
+
protected finalizeCredentials(_browser: Browser, context: BrowserContext, oldCredentials?: ApiCredentials): Promise<ApiCredentials | null>;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/services/core/base.ts"],"names":[],"mappings":"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"}
|