latchkey 1.0.1 → 2.1.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 +66 -8
- package/dist/integrations/SKILL.md +15 -3
- package/dist/package.json +2 -2
- package/dist/scripts/codegen.js +1 -1
- package/dist/scripts/codegen.js.map +1 -1
- package/dist/src/apiCredentialStore.d.ts +1 -1
- package/dist/src/apiCredentialStore.d.ts.map +1 -1
- package/dist/src/apiCredentialStore.js +1 -1
- package/dist/src/apiCredentialStore.js.map +1 -1
- package/dist/src/apiCredentials.d.ts +13 -115
- package/dist/src/apiCredentials.d.ts.map +1 -1
- package/dist/src/apiCredentials.js +10 -101
- package/dist/src/apiCredentials.js.map +1 -1
- package/dist/src/apiCredentialsSerialization.d.ts +119 -0
- package/dist/src/apiCredentialsSerialization.d.ts.map +1 -0
- package/dist/src/apiCredentialsSerialization.js +90 -0
- package/dist/src/apiCredentialsSerialization.js.map +1 -0
- package/dist/src/browserConfig.d.ts +2 -33
- package/dist/src/browserConfig.d.ts.map +1 -1
- package/dist/src/browserConfig.js +6 -81
- package/dist/src/browserConfig.js.map +1 -1
- package/dist/src/cli.js +22 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/cliCommands.d.ts +0 -1
- package/dist/src/cliCommands.d.ts.map +1 -1
- package/dist/src/cliCommands.js +148 -44
- package/dist/src/cliCommands.js.map +1 -1
- package/dist/src/config.d.ts +4 -3
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +17 -23
- package/dist/src/config.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 +108 -0
- package/dist/src/configDataStore.js.map +1 -0
- package/dist/src/curl.d.ts +10 -0
- package/dist/src/curl.d.ts.map +1 -1
- package/dist/src/curl.js +88 -0
- package/dist/src/curl.js.map +1 -1
- package/dist/src/encryptedStorage.d.ts +9 -0
- package/dist/src/encryptedStorage.d.ts.map +1 -1
- package/dist/src/encryptedStorage.js +12 -0
- package/dist/src/encryptedStorage.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations.d.ts +9 -0
- package/dist/src/migrations.d.ts.map +1 -0
- package/dist/src/migrations.js +77 -0
- package/dist/src/migrations.js.map +1 -0
- package/dist/src/oauthUtils.d.ts +4 -1
- package/dist/src/oauthUtils.d.ts.map +1 -1
- package/dist/src/oauthUtils.js +1 -1
- package/dist/src/oauthUtils.js.map +1 -1
- package/dist/src/playwrightUtils.d.ts +2 -2
- package/dist/src/playwrightUtils.d.ts.map +1 -1
- package/dist/src/playwrightUtils.js +4 -4
- package/dist/src/playwrightUtils.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 +70 -6
- package/dist/src/registry.js.map +1 -1
- package/dist/src/services/aws.d.ts +44 -0
- package/dist/src/services/aws.d.ts.map +1 -0
- package/dist/src/services/aws.js +237 -0
- package/dist/src/services/aws.js.map +1 -0
- package/dist/src/services/base.d.ts +14 -0
- package/dist/src/services/base.d.ts.map +1 -1
- package/dist/src/services/base.js +23 -11
- package/dist/src/services/base.js.map +1 -1
- package/dist/src/services/calendly.d.ts +12 -0
- package/dist/src/services/calendly.d.ts.map +1 -0
- package/dist/src/services/calendly.js +18 -0
- package/dist/src/services/calendly.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 +2 -1
- package/dist/src/services/discord.d.ts.map +1 -1
- package/dist/src/services/discord.js +4 -1
- package/dist/src/services/discord.js.map +1 -1
- package/dist/src/services/dropbox.d.ts +3 -2
- package/dist/src/services/dropbox.d.ts.map +1 -1
- package/dist/src/services/dropbox.js +6 -1
- package/dist/src/services/dropbox.js.map +1 -1
- package/dist/src/services/figma.d.ts +12 -0
- package/dist/src/services/figma.d.ts.map +1 -0
- package/dist/src/services/figma.js +14 -0
- package/dist/src/services/figma.js.map +1 -0
- package/dist/src/services/github.d.ts +2 -1
- package/dist/src/services/github.d.ts.map +1 -1
- package/dist/src/services/github.js +4 -1
- package/dist/src/services/github.js.map +1 -1
- package/dist/src/services/gitlab.d.ts +12 -0
- package/dist/src/services/gitlab.d.ts.map +1 -0
- package/dist/src/services/gitlab.js +14 -0
- package/dist/src/services/gitlab.js.map +1 -0
- package/dist/src/services/google/analytics.d.ts +11 -0
- package/dist/src/services/google/analytics.d.ts.map +1 -0
- package/dist/src/services/google/analytics.js +22 -0
- package/dist/src/services/google/analytics.js.map +1 -0
- package/dist/src/services/google/base.d.ts +73 -0
- package/dist/src/services/google/base.d.ts.map +1 -0
- package/dist/src/services/google/base.js +323 -0
- package/dist/src/services/google/base.js.map +1 -0
- package/dist/src/services/google/calendar.d.ts +11 -0
- package/dist/src/services/google/calendar.d.ts.map +1 -0
- package/dist/src/services/google/calendar.js +22 -0
- package/dist/src/services/google/calendar.js.map +1 -0
- package/dist/src/services/google/directions.d.ts +14 -0
- package/dist/src/services/google/directions.d.ts.map +1 -0
- package/dist/src/services/google/directions.js +49 -0
- package/dist/src/services/google/directions.js.map +1 -0
- package/dist/src/services/google/docs.d.ts +11 -0
- package/dist/src/services/google/docs.d.ts.map +1 -0
- package/dist/src/services/google/docs.js +19 -0
- package/dist/src/services/google/docs.js.map +1 -0
- package/dist/src/services/google/drive.d.ts +11 -0
- package/dist/src/services/google/drive.d.ts.map +1 -0
- package/dist/src/services/google/drive.js +19 -0
- package/dist/src/services/google/drive.js.map +1 -0
- package/dist/src/services/google/gmail.d.ts +11 -0
- package/dist/src/services/google/gmail.d.ts.map +1 -0
- package/dist/src/services/google/gmail.js +24 -0
- package/dist/src/services/google/gmail.js.map +1 -0
- package/dist/src/services/google/maps.d.ts +39 -0
- package/dist/src/services/google/maps.d.ts.map +1 -0
- package/dist/src/services/google/maps.js +94 -0
- package/dist/src/services/google/maps.js.map +1 -0
- package/dist/src/services/google/people.d.ts +11 -0
- package/dist/src/services/google/people.d.ts.map +1 -0
- package/dist/src/services/google/people.js +22 -0
- package/dist/src/services/google/people.js.map +1 -0
- package/dist/src/services/google/sheets.d.ts +11 -0
- package/dist/src/services/google/sheets.d.ts.map +1 -0
- package/dist/src/services/google/sheets.js +19 -0
- package/dist/src/services/google/sheets.js.map +1 -0
- package/dist/src/services/googleAnalytics.d.ts +11 -0
- package/dist/src/services/googleAnalytics.d.ts.map +1 -0
- package/dist/src/services/googleAnalytics.js +18 -0
- package/dist/src/services/googleAnalytics.js.map +1 -0
- package/dist/src/services/googleMaps.d.ts +12 -0
- package/dist/src/services/googleMaps.d.ts.map +1 -0
- package/dist/src/services/googleMaps.js +17 -0
- package/dist/src/services/googleMaps.js.map +1 -0
- package/dist/src/services/index.d.ts +21 -3
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +21 -3
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/linear.d.ts +2 -1
- package/dist/src/services/linear.d.ts.map +1 -1
- package/dist/src/services/linear.js +4 -1
- package/dist/src/services/linear.js.map +1 -1
- package/dist/src/services/mailchimp.d.ts +3 -2
- package/dist/src/services/mailchimp.d.ts.map +1 -1
- package/dist/src/services/mailchimp.js +5 -4
- package/dist/src/services/mailchimp.js.map +1 -1
- package/dist/src/services/notion.d.ts +2 -1
- package/dist/src/services/notion.d.ts.map +1 -1
- package/dist/src/services/notion.js +4 -1
- package/dist/src/services/notion.js.map +1 -1
- package/dist/src/services/sentry.d.ts +14 -0
- package/dist/src/services/sentry.d.ts.map +1 -0
- package/dist/src/services/sentry.js +43 -0
- package/dist/src/services/sentry.js.map +1 -0
- package/dist/src/services/slack.d.ts +31 -2
- package/dist/src/services/slack.d.ts.map +1 -1
- package/dist/src/services/slack.js +46 -3
- package/dist/src/services/slack.js.map +1 -1
- package/dist/src/services/stripe.d.ts +12 -0
- package/dist/src/services/stripe.d.ts.map +1 -0
- package/dist/src/services/stripe.js +14 -0
- package/dist/src/services/stripe.js.map +1 -0
- package/dist/src/services/telegram.d.ts +40 -0
- package/dist/src/services/telegram.d.ts.map +1 -0
- package/dist/src/services/telegram.js +73 -0
- package/dist/src/services/telegram.js.map +1 -0
- package/dist/src/services/yelp.d.ts +12 -0
- package/dist/src/services/yelp.d.ts.map +1 -0
- package/dist/src/services/yelp.js +16 -0
- package/dist/src/services/yelp.js.map +1 -0
- package/dist/src/services/zoom.d.ts +12 -0
- package/dist/src/services/zoom.d.ts.map +1 -0
- package/dist/src/services/zoom.js +18 -0
- package/dist/src/services/zoom.js.map +1 -0
- package/dist/tests/apiCredentialStore.test.js +2 -19
- package/dist/tests/apiCredentialStore.test.js.map +1 -1
- package/dist/tests/apiCredentials.test.js +139 -178
- package/dist/tests/apiCredentials.test.js.map +1 -1
- package/dist/tests/cli.test.js +755 -255
- package/dist/tests/cli.test.js.map +1 -1
- package/dist/tests/encryptedStorage.test.js +0 -4
- package/dist/tests/encryptedStorage.test.js.map +1 -1
- package/dist/tests/encryptedStorageKeyGeneration.test.d.ts +2 -0
- package/dist/tests/encryptedStorageKeyGeneration.test.d.ts.map +1 -0
- package/dist/tests/encryptedStorageKeyGeneration.test.js +22 -0
- package/dist/tests/encryptedStorageKeyGeneration.test.js.map +1 -0
- package/dist/tests/encryption.test.js +3 -35
- package/dist/tests/encryption.test.js.map +1 -1
- package/dist/tests/migrations.test.d.ts +2 -0
- package/dist/tests/migrations.test.d.ts.map +1 -0
- package/dist/tests/migrations.test.js +164 -0
- package/dist/tests/migrations.test.js.map +1 -0
- package/dist/tests/playwrightDownload.test.js +2 -65
- package/dist/tests/playwrightDownload.test.js.map +1 -1
- package/dist/tests/registry.test.js +147 -75
- package/dist/tests/registry.test.js.map +1 -1
- package/dist/tests/servicesAgainstRecordings.test.js +2 -2
- package/dist/tests/servicesAgainstRecordings.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ApiCredentials } from '../../apiCredentials.js';
|
|
2
|
+
import { Service } from '../core/base.js';
|
|
3
|
+
export declare class GoogleDirections extends Service {
|
|
4
|
+
readonly name = "google-directions";
|
|
5
|
+
readonly displayName = "Google Directions";
|
|
6
|
+
readonly baseApiUrls: readonly ["https://routes.googleapis.com/"];
|
|
7
|
+
readonly loginUrl = "https://console.cloud.google.com/google/maps-apis/";
|
|
8
|
+
readonly info: string;
|
|
9
|
+
readonly credentialCheckCurlArguments: readonly ["-X", "POST", "-H", "Content-Type: application/json", "-H", "X-Goog-FieldMask: routes.duration", "-d", "{\"origin\":{\"location\":{\"latLng\":{\"latitude\":37.419734,\"longitude\":-122.0827784}}},\"destination\":{\"location\":{\"latLng\":{\"latitude\":37.417670,\"longitude\":-122.079595}}},\"travelMode\":\"DRIVE\"}", "https://routes.googleapis.com/directions/v2:computeRoutes"];
|
|
10
|
+
setCredentialsExample(serviceName: string): string;
|
|
11
|
+
getCredentialsNoCurl(arguments_: readonly string[]): ApiCredentials;
|
|
12
|
+
}
|
|
13
|
+
export declare const GOOGLE_DIRECTIONS: GoogleDirections;
|
|
14
|
+
//# sourceMappingURL=directions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directions.d.ts","sourceRoot":"","sources":["../../../../src/services/google/directions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAsC,MAAM,iBAAiB,CAAC;AAG9E,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,WAAW,uBAAuB;IAC3C,QAAQ,CAAC,WAAW,8CAA+C;IACnE,QAAQ,CAAC,QAAQ,wDAAwD;IACzE,QAAQ,CAAC,IAAI,SAOkC;IAE/C,QAAQ,CAAC,4BAA4B,wYAU1B;IAEX,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIzC,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc;CAe7E;AAUD,eAAO,MAAM,iBAAiB,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Service, NoCurlCredentialsNotSupportedError } from '../core/base.js';
|
|
2
|
+
import { GoogleApiKeyCredentials } from './base.js';
|
|
3
|
+
export class GoogleDirections extends Service {
|
|
4
|
+
name = 'google-directions';
|
|
5
|
+
displayName = 'Google Directions';
|
|
6
|
+
baseApiUrls = ['https://routes.googleapis.com/'];
|
|
7
|
+
loginUrl = 'https://console.cloud.google.com/google/maps-apis/';
|
|
8
|
+
info = 'https://developers.google.com/maps/documentation/routes/reference/rest. ' +
|
|
9
|
+
'Example invocation: `latchkey curl google-directions -X POST ' +
|
|
10
|
+
'-H "Content-Type: application/json" ' +
|
|
11
|
+
'-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" ' +
|
|
12
|
+
'-d \'{"origin":{"address":"New York"},"destination":{"address":"Boston"},"travelMode":"DRIVE"}\' ' +
|
|
13
|
+
'https://routes.googleapis.com/directions/v2:computeRoutes` ' +
|
|
14
|
+
'(the API key will be added automatically).';
|
|
15
|
+
credentialCheckCurlArguments = [
|
|
16
|
+
'-X',
|
|
17
|
+
'POST',
|
|
18
|
+
'-H',
|
|
19
|
+
'Content-Type: application/json',
|
|
20
|
+
'-H',
|
|
21
|
+
'X-Goog-FieldMask: routes.duration',
|
|
22
|
+
'-d',
|
|
23
|
+
'{"origin":{"location":{"latLng":{"latitude":37.419734,"longitude":-122.0827784}}},"destination":{"location":{"latLng":{"latitude":37.417670,"longitude":-122.079595}}},"travelMode":"DRIVE"}',
|
|
24
|
+
'https://routes.googleapis.com/directions/v2:computeRoutes',
|
|
25
|
+
];
|
|
26
|
+
setCredentialsExample(serviceName) {
|
|
27
|
+
return `latchkey auth set-nocurl ${serviceName} <api-key>`;
|
|
28
|
+
}
|
|
29
|
+
getCredentialsNoCurl(arguments_) {
|
|
30
|
+
if (arguments_.length !== 1 || arguments_[0] === undefined) {
|
|
31
|
+
throw new GoogleDirectionsCredentialError('Expected exactly one argument: the API key.\n' +
|
|
32
|
+
'Example: latchkey auth set-nocurl google-directions <api-key>');
|
|
33
|
+
}
|
|
34
|
+
const apiKey = arguments_[0];
|
|
35
|
+
if (apiKey.length < 10) {
|
|
36
|
+
throw new GoogleDirectionsCredentialError("The provided key doesn't look like a Google API key (too short).\n" + 'Example: <api-key>');
|
|
37
|
+
}
|
|
38
|
+
return new GoogleApiKeyCredentials(apiKey);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
class GoogleDirectionsCredentialError extends NoCurlCredentialsNotSupportedError {
|
|
42
|
+
constructor(message) {
|
|
43
|
+
super('google-directions');
|
|
44
|
+
this.message = message;
|
|
45
|
+
this.name = 'GoogleDirectionsCredentialError';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export const GOOGLE_DIRECTIONS = new GoogleDirections();
|
|
49
|
+
//# sourceMappingURL=directions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directions.js","sourceRoot":"","sources":["../../../../src/services/google/directions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IAClC,IAAI,GAAG,mBAAmB,CAAC;IAC3B,WAAW,GAAG,mBAAmB,CAAC;IAClC,WAAW,GAAG,CAAC,gCAAgC,CAAU,CAAC;IAC1D,QAAQ,GAAG,oDAAoD,CAAC;IAChE,IAAI,GACX,0EAA0E;QAC1E,+DAA+D;QAC/D,sCAAsC;QACtC,+DAA+D;QAC/D,mGAAmG;QACnG,6DAA6D;QAC7D,4CAA4C,CAAC;IAEtC,4BAA4B,GAAG;QACtC,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,gCAAgC;QAChC,IAAI;QACJ,mCAAmC;QACnC,IAAI;QACJ,8LAA8L;QAC9L,2DAA2D;KACnD,CAAC;IAEX,qBAAqB,CAAC,WAAmB;QACvC,OAAO,4BAA4B,WAAW,YAAY,CAAC;IAC7D,CAAC;IAEQ,oBAAoB,CAAC,UAA6B;QACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,+BAA+B,CACvC,+CAA+C;gBAC7C,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,+BAA+B,CACvC,oEAAoE,GAAG,oBAAoB,CAC5F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,+BAAgC,SAAQ,kCAAkC;IAC9E,YAAY,OAAe;QACzB,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GoogleService, type GoogleServiceConfig } from './base.js';
|
|
2
|
+
export declare class GoogleDocs extends GoogleService {
|
|
3
|
+
readonly name = "google-docs";
|
|
4
|
+
readonly displayName = "Google Docs";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://docs.googleapis.com/"];
|
|
6
|
+
readonly info: string;
|
|
7
|
+
readonly credentialCheckCurlArguments: readonly ["https://www.googleapis.com/drive/v3/files?pageSize=1&fields=files(id)&q=mimeType%3D'application/vnd.google-apps.document'"];
|
|
8
|
+
protected readonly config: GoogleServiceConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_DOCS: GoogleDocs;
|
|
11
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/services/google/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOpE,qBAAa,UAAW,SAAQ,aAAa;IAC3C,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,WAAW,4CAA6C;IACjE,QAAQ,CAAC,IAAI,SAG0D;IAEvE,QAAQ,CAAC,4BAA4B,yIAE1B;IAEX,SAAS,CAAC,QAAQ,CAAC,MAAM,sBAAU;CACpC;AAED,eAAO,MAAM,WAAW,YAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GoogleService } from './base.js';
|
|
2
|
+
const CONFIG = {
|
|
3
|
+
api: 'docs.googleapis.com',
|
|
4
|
+
scopes: ['https://www.googleapis.com/auth/documents'],
|
|
5
|
+
};
|
|
6
|
+
export class GoogleDocs extends GoogleService {
|
|
7
|
+
name = 'google-docs';
|
|
8
|
+
displayName = 'Google Docs';
|
|
9
|
+
baseApiUrls = ['https://docs.googleapis.com/'];
|
|
10
|
+
info = 'https://developers.google.com/docs/api/reference/rest. ' +
|
|
11
|
+
'If needed, run "latchkey auth browser-prepare google-docs" to create an OAuth client first. ' +
|
|
12
|
+
'It may take a few minutes before the OAuth client is ready to use.';
|
|
13
|
+
credentialCheckCurlArguments = [
|
|
14
|
+
"https://www.googleapis.com/drive/v3/files?pageSize=1&fields=files(id)&q=mimeType%3D'application/vnd.google-apps.document'",
|
|
15
|
+
];
|
|
16
|
+
config = CONFIG;
|
|
17
|
+
}
|
|
18
|
+
export const GOOGLE_DOCS = new GoogleDocs();
|
|
19
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/services/google/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,WAAW,CAAC;AAEpE,MAAM,MAAM,GAAwB;IAClC,GAAG,EAAE,qBAAqB;IAC1B,MAAM,EAAE,CAAC,2CAA2C,CAAC;CACtD,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,aAAa;IAClC,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,aAAa,CAAC;IAC5B,WAAW,GAAG,CAAC,8BAA8B,CAAU,CAAC;IACxD,IAAI,GACX,yDAAyD;QACzD,8FAA8F;QAC9F,oEAAoE,CAAC;IAE9D,4BAA4B,GAAG;QACtC,2HAA2H;KACnH,CAAC;IAEQ,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GoogleService, type GoogleServiceConfig } from './base.js';
|
|
2
|
+
export declare class GoogleDrive extends GoogleService {
|
|
3
|
+
readonly name = "google-drive";
|
|
4
|
+
readonly displayName = "Google Drive";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://www.googleapis.com/drive/"];
|
|
6
|
+
readonly info: string;
|
|
7
|
+
readonly credentialCheckCurlArguments: readonly ["https://www.googleapis.com/drive/v3/about?fields=user"];
|
|
8
|
+
protected readonly config: GoogleServiceConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_DRIVE: GoogleDrive;
|
|
11
|
+
//# sourceMappingURL=drive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../../../src/services/google/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOpE,qBAAa,WAAY,SAAQ,aAAa;IAC5C,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,kBAAkB;IACtC,QAAQ,CAAC,WAAW,iDAAkD;IACtE,QAAQ,CAAC,IAAI,SAG0D;IAEvE,QAAQ,CAAC,4BAA4B,qEAE1B;IAEX,SAAS,CAAC,QAAQ,CAAC,MAAM,sBAAU;CACpC;AAED,eAAO,MAAM,YAAY,aAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GoogleService } from './base.js';
|
|
2
|
+
const CONFIG = {
|
|
3
|
+
api: 'drive.googleapis.com',
|
|
4
|
+
scopes: ['https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file'],
|
|
5
|
+
};
|
|
6
|
+
export class GoogleDrive extends GoogleService {
|
|
7
|
+
name = 'google-drive';
|
|
8
|
+
displayName = 'Google Drive';
|
|
9
|
+
baseApiUrls = ['https://www.googleapis.com/drive/'];
|
|
10
|
+
info = 'https://developers.google.com/drive/api/reference/rest/v3. ' +
|
|
11
|
+
'If needed, run "latchkey auth browser-prepare google-drive" to create an OAuth client first. ' +
|
|
12
|
+
'It may take a few minutes before the OAuth client is ready to use.';
|
|
13
|
+
credentialCheckCurlArguments = [
|
|
14
|
+
'https://www.googleapis.com/drive/v3/about?fields=user',
|
|
15
|
+
];
|
|
16
|
+
config = CONFIG;
|
|
17
|
+
}
|
|
18
|
+
export const GOOGLE_DRIVE = new GoogleDrive();
|
|
19
|
+
//# sourceMappingURL=drive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../../../src/services/google/drive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,WAAW,CAAC;AAEpE,MAAM,MAAM,GAAwB;IAClC,GAAG,EAAE,sBAAsB;IAC3B,MAAM,EAAE,CAAC,uCAAuC,EAAE,4CAA4C,CAAC;CAChG,CAAC;AAEF,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAAG,cAAc,CAAC;IAC7B,WAAW,GAAG,CAAC,mCAAmC,CAAU,CAAC;IAC7D,IAAI,GACX,6DAA6D;QAC7D,+FAA+F;QAC/F,oEAAoE,CAAC;IAE9D,4BAA4B,GAAG;QACtC,uDAAuD;KAC/C,CAAC;IAEQ,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GoogleService, type GoogleServiceConfig } from './base.js';
|
|
2
|
+
export declare class GoogleGmail extends GoogleService {
|
|
3
|
+
readonly name = "google-gmail";
|
|
4
|
+
readonly displayName = "Google Gmail";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://gmail.googleapis.com/"];
|
|
6
|
+
readonly info: string;
|
|
7
|
+
readonly credentialCheckCurlArguments: readonly ["https://gmail.googleapis.com/gmail/v1/users/me/profile"];
|
|
8
|
+
protected readonly config: GoogleServiceConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_GMAIL: GoogleGmail;
|
|
11
|
+
//# sourceMappingURL=gmail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../../../src/services/google/gmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAYpE,qBAAa,WAAY,SAAQ,aAAa;IAC5C,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,kBAAkB;IACtC,QAAQ,CAAC,WAAW,6CAA8C;IAClE,QAAQ,CAAC,IAAI,SAG0D;IAEvE,QAAQ,CAAC,4BAA4B,sEAE1B;IAEX,SAAS,CAAC,QAAQ,CAAC,MAAM,sBAAU;CACpC;AAED,eAAO,MAAM,YAAY,aAAoB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GoogleService } from './base.js';
|
|
2
|
+
const CONFIG = {
|
|
3
|
+
api: 'gmail.googleapis.com',
|
|
4
|
+
scopes: [
|
|
5
|
+
'https://www.googleapis.com/auth/gmail.readonly',
|
|
6
|
+
'https://www.googleapis.com/auth/gmail.modify',
|
|
7
|
+
'https://www.googleapis.com/auth/gmail.compose',
|
|
8
|
+
'https://www.googleapis.com/auth/gmail.send',
|
|
9
|
+
],
|
|
10
|
+
};
|
|
11
|
+
export class GoogleGmail extends GoogleService {
|
|
12
|
+
name = 'google-gmail';
|
|
13
|
+
displayName = 'Google Gmail';
|
|
14
|
+
baseApiUrls = ['https://gmail.googleapis.com/'];
|
|
15
|
+
info = 'https://developers.google.com/gmail/api/reference/rest. ' +
|
|
16
|
+
'If needed, run "latchkey auth browser-prepare google-gmail" to create an OAuth client first. ' +
|
|
17
|
+
'It may take a few minutes before the OAuth client is ready to use.';
|
|
18
|
+
credentialCheckCurlArguments = [
|
|
19
|
+
'https://gmail.googleapis.com/gmail/v1/users/me/profile',
|
|
20
|
+
];
|
|
21
|
+
config = CONFIG;
|
|
22
|
+
}
|
|
23
|
+
export const GOOGLE_GMAIL = new GoogleGmail();
|
|
24
|
+
//# sourceMappingURL=gmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail.js","sourceRoot":"","sources":["../../../../src/services/google/gmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,WAAW,CAAC;AAEpE,MAAM,MAAM,GAAwB;IAClC,GAAG,EAAE,sBAAsB;IAC3B,MAAM,EAAE;QACN,gDAAgD;QAChD,8CAA8C;QAC9C,+CAA+C;QAC/C,4CAA4C;KAC7C;CACF,CAAC;AAEF,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAAG,cAAc,CAAC;IAC7B,WAAW,GAAG,CAAC,+BAA+B,CAAU,CAAC;IACzD,IAAI,GACX,0DAA0D;QAC1D,+FAA+F;QAC/F,oEAAoE,CAAC;IAE9D,4BAA4B,GAAG;QACtC,wDAAwD;KAChD,CAAC;IAEQ,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiCredentialStatus, type ApiCredentials } from '../../apiCredentials.js';
|
|
3
|
+
import { Service } from '../base.js';
|
|
4
|
+
/**
|
|
5
|
+
* Google Maps API key credentials.
|
|
6
|
+
* The API key is injected as a `key=` query parameter in the URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare const GoogleMapsApiKeyCredentialsSchema: z.ZodObject<{
|
|
9
|
+
objectType: z.ZodLiteral<"googleMapsApiKey">;
|
|
10
|
+
apiKey: z.ZodString;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
objectType: "googleMapsApiKey";
|
|
13
|
+
apiKey: string;
|
|
14
|
+
}, {
|
|
15
|
+
objectType: "googleMapsApiKey";
|
|
16
|
+
apiKey: string;
|
|
17
|
+
}>;
|
|
18
|
+
export type GoogleMapsApiKeyCredentialsData = z.infer<typeof GoogleMapsApiKeyCredentialsSchema>;
|
|
19
|
+
export declare class GoogleMapsApiKeyCredentials implements ApiCredentials {
|
|
20
|
+
readonly objectType: "googleMapsApiKey";
|
|
21
|
+
readonly apiKey: string;
|
|
22
|
+
constructor(apiKey: string);
|
|
23
|
+
injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
|
|
24
|
+
isExpired(): boolean | undefined;
|
|
25
|
+
toJSON(): GoogleMapsApiKeyCredentialsData;
|
|
26
|
+
static fromJSON(data: GoogleMapsApiKeyCredentialsData): GoogleMapsApiKeyCredentials;
|
|
27
|
+
}
|
|
28
|
+
export declare class GoogleMaps extends Service {
|
|
29
|
+
readonly name = "google-maps";
|
|
30
|
+
readonly displayName = "Google Maps";
|
|
31
|
+
readonly baseApiUrls: readonly ["https://maps.googleapis.com/"];
|
|
32
|
+
readonly loginUrl = "https://console.cloud.google.com/google/maps-apis/";
|
|
33
|
+
readonly info: string;
|
|
34
|
+
readonly credentialCheckCurlArguments: readonly ["https://maps.googleapis.com/maps/api/geocode/json?address=test"];
|
|
35
|
+
getCredentialsNoCurl(arguments_: readonly string[]): ApiCredentials;
|
|
36
|
+
checkApiCredentials(apiCredentials: ApiCredentials): ApiCredentialStatus;
|
|
37
|
+
}
|
|
38
|
+
export declare const GOOGLE_MAPS: GoogleMaps;
|
|
39
|
+
//# sourceMappingURL=maps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maps.d.ts","sourceRoot":"","sources":["../../../../src/services/google/maps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAsC,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;EAG5C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAEhG,qBAAa,2BAA4B,YAAW,cAAc;IAChE,QAAQ,CAAC,UAAU,EAAG,kBAAkB,CAAU;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;IAI1B,kBAAkB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;IAcvE,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,MAAM,IAAI,+BAA+B;IAOzC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,+BAA+B,GAAG,2BAA2B;CAGpF;AAED,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,WAAW,4CAA6C;IACjE,QAAQ,CAAC,QAAQ,wDAAwD;IACzE,QAAQ,CAAC,IAAI,SAKkC;IAE/C,QAAQ,CAAC,4BAA4B,8EAE1B;IAEF,oBAAoB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc;IAiBnE,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,mBAAmB;CAiBlF;AAUD,eAAO,MAAM,WAAW,YAAmB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiCredentialStatus } from '../../apiCredentials.js';
|
|
3
|
+
import { extractUrlFromCurlArguments, runCaptured } from '../../curl.js';
|
|
4
|
+
import { NoCurlCredentialsNotSupportedError, Service } from '../base.js';
|
|
5
|
+
/**
|
|
6
|
+
* Google Maps API key credentials.
|
|
7
|
+
* The API key is injected as a `key=` query parameter in the URL.
|
|
8
|
+
*/
|
|
9
|
+
export const GoogleMapsApiKeyCredentialsSchema = z.object({
|
|
10
|
+
objectType: z.literal('googleMapsApiKey'),
|
|
11
|
+
apiKey: z.string(),
|
|
12
|
+
});
|
|
13
|
+
export class GoogleMapsApiKeyCredentials {
|
|
14
|
+
objectType = 'googleMapsApiKey';
|
|
15
|
+
apiKey;
|
|
16
|
+
constructor(apiKey) {
|
|
17
|
+
this.apiKey = apiKey;
|
|
18
|
+
}
|
|
19
|
+
injectIntoCurlCall(curlArguments) {
|
|
20
|
+
const url = extractUrlFromCurlArguments(curlArguments);
|
|
21
|
+
if (!url?.startsWith('https://maps.googleapis.com/')) {
|
|
22
|
+
return curlArguments;
|
|
23
|
+
}
|
|
24
|
+
const parsed = new URL(url);
|
|
25
|
+
if (parsed.searchParams.has('key')) {
|
|
26
|
+
return curlArguments;
|
|
27
|
+
}
|
|
28
|
+
parsed.searchParams.set('key', this.apiKey);
|
|
29
|
+
const rewrittenUrl = parsed.toString();
|
|
30
|
+
return curlArguments.map((argument) => (argument === url ? rewrittenUrl : argument));
|
|
31
|
+
}
|
|
32
|
+
isExpired() {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
toJSON() {
|
|
36
|
+
return {
|
|
37
|
+
objectType: this.objectType,
|
|
38
|
+
apiKey: this.apiKey,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
static fromJSON(data) {
|
|
42
|
+
return new GoogleMapsApiKeyCredentials(data.apiKey);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class GoogleMaps extends Service {
|
|
46
|
+
name = 'google-maps';
|
|
47
|
+
displayName = 'Google Maps';
|
|
48
|
+
baseApiUrls = ['https://maps.googleapis.com/'];
|
|
49
|
+
loginUrl = 'https://console.cloud.google.com/google/maps-apis/';
|
|
50
|
+
info = 'https://developers.google.com/maps/documentation. ' +
|
|
51
|
+
'Browser-based authentication is not yet supported. ' +
|
|
52
|
+
'Use `latchkey auth set-nocurl google-maps <api-key>` to add credentials. ' +
|
|
53
|
+
'Example invocation: `latchkey curl google-maps https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway` ' +
|
|
54
|
+
'(the API key will be added automatically).';
|
|
55
|
+
credentialCheckCurlArguments = [
|
|
56
|
+
'https://maps.googleapis.com/maps/api/geocode/json?address=test',
|
|
57
|
+
];
|
|
58
|
+
getCredentialsNoCurl(arguments_) {
|
|
59
|
+
if (arguments_.length !== 1 || arguments_[0] === undefined) {
|
|
60
|
+
throw new GoogleMapsCredentialError('Expected exactly one argument: the API key.\n' +
|
|
61
|
+
'Example: latchkey auth set-nocurl google-maps AIzaSyA1B2C3D4E5F6G7H8I9J0');
|
|
62
|
+
}
|
|
63
|
+
const apiKey = arguments_[0];
|
|
64
|
+
if (apiKey.length < 10) {
|
|
65
|
+
throw new GoogleMapsCredentialError("The provided key doesn't look like a Google Maps API key (too short).\n" +
|
|
66
|
+
'Example: AIzaSyA1B2C3D4E5F6G7H8I9J0');
|
|
67
|
+
}
|
|
68
|
+
return new GoogleMapsApiKeyCredentials(apiKey);
|
|
69
|
+
}
|
|
70
|
+
checkApiCredentials(apiCredentials) {
|
|
71
|
+
const allCurlArgs = apiCredentials.injectIntoCurlCall([
|
|
72
|
+
'-s',
|
|
73
|
+
'-o',
|
|
74
|
+
'/dev/null',
|
|
75
|
+
'-w',
|
|
76
|
+
'%{http_code}',
|
|
77
|
+
...this.credentialCheckCurlArguments,
|
|
78
|
+
]);
|
|
79
|
+
const result = runCaptured(allCurlArgs, 10);
|
|
80
|
+
if (result.stdout === '200') {
|
|
81
|
+
return ApiCredentialStatus.Valid;
|
|
82
|
+
}
|
|
83
|
+
return ApiCredentialStatus.Invalid;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
class GoogleMapsCredentialError extends NoCurlCredentialsNotSupportedError {
|
|
87
|
+
constructor(message) {
|
|
88
|
+
super('google-maps');
|
|
89
|
+
this.message = message;
|
|
90
|
+
this.name = 'GoogleMapsCredentialError';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export const GOOGLE_MAPS = new GoogleMaps();
|
|
94
|
+
//# sourceMappingURL=maps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../../src/services/google/maps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GoogleService, type GoogleServiceConfig } from './base.js';
|
|
2
|
+
export declare class GooglePeople extends GoogleService {
|
|
3
|
+
readonly name = "google-people";
|
|
4
|
+
readonly displayName = "Google People";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://people.googleapis.com/"];
|
|
6
|
+
readonly info: string;
|
|
7
|
+
readonly credentialCheckCurlArguments: readonly ["https://people.googleapis.com/v1/people/me?personFields=names"];
|
|
8
|
+
protected readonly config: GoogleServiceConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_PEOPLE: GooglePeople;
|
|
11
|
+
//# sourceMappingURL=people.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../../../src/services/google/people.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAUpE,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,WAAW,8CAA+C;IACnE,QAAQ,CAAC,IAAI,SAG0D;IAEvE,QAAQ,CAAC,4BAA4B,6EAE1B;IAEX,SAAS,CAAC,QAAQ,CAAC,MAAM,sBAAU;CACpC;AAED,eAAO,MAAM,aAAa,cAAqB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GoogleService } from './base.js';
|
|
2
|
+
const CONFIG = {
|
|
3
|
+
api: 'people.googleapis.com',
|
|
4
|
+
scopes: [
|
|
5
|
+
'https://www.googleapis.com/auth/contacts',
|
|
6
|
+
'https://www.googleapis.com/auth/contacts.readonly',
|
|
7
|
+
],
|
|
8
|
+
};
|
|
9
|
+
export class GooglePeople extends GoogleService {
|
|
10
|
+
name = 'google-people';
|
|
11
|
+
displayName = 'Google People';
|
|
12
|
+
baseApiUrls = ['https://people.googleapis.com/'];
|
|
13
|
+
info = 'https://developers.google.com/people/api/rest. ' +
|
|
14
|
+
'If needed, run "latchkey auth browser-prepare google-people" to create an OAuth client first. ' +
|
|
15
|
+
'It may take a few minutes before the OAuth client is ready to use.';
|
|
16
|
+
credentialCheckCurlArguments = [
|
|
17
|
+
'https://people.googleapis.com/v1/people/me?personFields=names',
|
|
18
|
+
];
|
|
19
|
+
config = CONFIG;
|
|
20
|
+
}
|
|
21
|
+
export const GOOGLE_PEOPLE = new GooglePeople();
|
|
22
|
+
//# sourceMappingURL=people.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../../../src/services/google/people.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,WAAW,CAAC;AAEpE,MAAM,MAAM,GAAwB;IAClC,GAAG,EAAE,uBAAuB;IAC5B,MAAM,EAAE;QACN,0CAA0C;QAC1C,mDAAmD;KACpD;CACF,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,aAAa;IACpC,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,eAAe,CAAC;IAC9B,WAAW,GAAG,CAAC,gCAAgC,CAAU,CAAC;IAC1D,IAAI,GACX,iDAAiD;QACjD,gGAAgG;QAChG,oEAAoE,CAAC;IAE9D,4BAA4B,GAAG;QACtC,+DAA+D;KACvD,CAAC;IAEQ,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GoogleService, type GoogleServiceConfig } from './base.js';
|
|
2
|
+
export declare class GoogleSheets extends GoogleService {
|
|
3
|
+
readonly name = "google-sheets";
|
|
4
|
+
readonly displayName = "Google Sheets";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://sheets.googleapis.com/"];
|
|
6
|
+
readonly info: string;
|
|
7
|
+
readonly credentialCheckCurlArguments: readonly ["https://sheets.googleapis.com/v4/spreadsheets?fields=spreadsheetId&pageSize=1"];
|
|
8
|
+
protected readonly config: GoogleServiceConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_SHEETS: GoogleSheets;
|
|
11
|
+
//# sourceMappingURL=sheets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheets.d.ts","sourceRoot":"","sources":["../../../../src/services/google/sheets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOpE,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,WAAW,8CAA+C;IACnE,QAAQ,CAAC,IAAI,SAG0D;IAEvE,QAAQ,CAAC,4BAA4B,6FAE1B;IAEX,SAAS,CAAC,QAAQ,CAAC,MAAM,sBAAU;CACpC;AAED,eAAO,MAAM,aAAa,cAAqB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GoogleService } from './base.js';
|
|
2
|
+
const CONFIG = {
|
|
3
|
+
api: 'sheets.googleapis.com',
|
|
4
|
+
scopes: ['https://www.googleapis.com/auth/spreadsheets'],
|
|
5
|
+
};
|
|
6
|
+
export class GoogleSheets extends GoogleService {
|
|
7
|
+
name = 'google-sheets';
|
|
8
|
+
displayName = 'Google Sheets';
|
|
9
|
+
baseApiUrls = ['https://sheets.googleapis.com/'];
|
|
10
|
+
info = 'https://developers.google.com/sheets/api/reference/rest. ' +
|
|
11
|
+
'If needed, run "latchkey auth browser-prepare google-sheets" to create an OAuth client first. ' +
|
|
12
|
+
'It may take a few minutes before the OAuth client is ready to use.';
|
|
13
|
+
credentialCheckCurlArguments = [
|
|
14
|
+
'https://sheets.googleapis.com/v4/spreadsheets?fields=spreadsheetId&pageSize=1',
|
|
15
|
+
];
|
|
16
|
+
config = CONFIG;
|
|
17
|
+
}
|
|
18
|
+
export const GOOGLE_SHEETS = new GoogleSheets();
|
|
19
|
+
//# sourceMappingURL=sheets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheets.js","sourceRoot":"","sources":["../../../../src/services/google/sheets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,WAAW,CAAC;AAEpE,MAAM,MAAM,GAAwB;IAClC,GAAG,EAAE,uBAAuB;IAC5B,MAAM,EAAE,CAAC,8CAA8C,CAAC;CACzD,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,aAAa;IACpC,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,eAAe,CAAC;IAC9B,WAAW,GAAG,CAAC,gCAAgC,CAAU,CAAC;IAC1D,IAAI,GACX,2DAA2D;QAC3D,gGAAgG;QAChG,oEAAoE,CAAC;IAE9D,4BAA4B,GAAG;QACtC,+EAA+E;KACvE,CAAC;IAEQ,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Service } from './base.js';
|
|
2
|
+
export declare class GoogleAnalytics extends Service {
|
|
3
|
+
readonly name = "google-analytics";
|
|
4
|
+
readonly displayName = "Google Analytics";
|
|
5
|
+
readonly baseApiUrls: readonly ["https://analyticsdata.googleapis.com/", "https://analyticsadmin.googleapis.com/"];
|
|
6
|
+
readonly loginUrl = "https://analytics.google.com/";
|
|
7
|
+
readonly info: string;
|
|
8
|
+
readonly credentialCheckCurlArguments: readonly ["https://analyticsadmin.googleapis.com/v1beta/accountSummaries"];
|
|
9
|
+
}
|
|
10
|
+
export declare const GOOGLE_ANALYTICS: GoogleAnalytics;
|
|
11
|
+
//# sourceMappingURL=googleAnalytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleAnalytics.d.ts","sourceRoot":"","sources":["../../../src/services/googleAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,WAAW,sBAAsB;IAC1C,QAAQ,CAAC,WAAW,+FAGT;IACX,QAAQ,CAAC,QAAQ,mCAAmC;IACpD,QAAQ,CAAC,IAAI,SAGgG;IAE7G,QAAQ,CAAC,4BAA4B,6EAE1B;CACZ;AAED,eAAO,MAAM,gBAAgB,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Service } from './base.js';
|
|
2
|
+
export class GoogleAnalytics extends Service {
|
|
3
|
+
name = 'google-analytics';
|
|
4
|
+
displayName = 'Google Analytics';
|
|
5
|
+
baseApiUrls = [
|
|
6
|
+
'https://analyticsdata.googleapis.com/',
|
|
7
|
+
'https://analyticsadmin.googleapis.com/',
|
|
8
|
+
];
|
|
9
|
+
loginUrl = 'https://analytics.google.com/';
|
|
10
|
+
info = 'https://developers.google.com/analytics/devguides/reporting/data/v1. ' +
|
|
11
|
+
'Browser-based authentication is not yet supported. ' +
|
|
12
|
+
'Use `latchkey auth set google-analytics -H "Authorization: Bearer <token>"` to add credentials manually.';
|
|
13
|
+
credentialCheckCurlArguments = [
|
|
14
|
+
'https://analyticsadmin.googleapis.com/v1beta/accountSummaries',
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
export const GOOGLE_ANALYTICS = new GoogleAnalytics();
|
|
18
|
+
//# sourceMappingURL=googleAnalytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleAnalytics.js","sourceRoot":"","sources":["../../../src/services/googleAnalytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,eAAgB,SAAQ,OAAO;IACjC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,WAAW,GAAG,kBAAkB,CAAC;IACjC,WAAW,GAAG;QACrB,uCAAuC;QACvC,wCAAwC;KAChC,CAAC;IACF,QAAQ,GAAG,+BAA+B,CAAC;IAC3C,IAAI,GACX,uEAAuE;QACvE,qDAAqD;QACrD,0GAA0G,CAAC;IAEpG,4BAA4B,GAAG;QACtC,+DAA+D;KACvD,CAAC;CACZ;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Service } from './base.js';
|
|
2
|
+
/** Work in progress — not yet registered in the service registry. */
|
|
3
|
+
export declare class GoogleMaps extends Service {
|
|
4
|
+
readonly name = "google-maps";
|
|
5
|
+
readonly displayName = "Google Maps";
|
|
6
|
+
readonly baseApiUrls: readonly ["https://maps.googleapis.com/"];
|
|
7
|
+
readonly loginUrl = "https://console.cloud.google.com/google/maps-apis/";
|
|
8
|
+
readonly info: string;
|
|
9
|
+
readonly credentialCheckCurlArguments: readonly ["https://maps.googleapis.com/maps/api/geocode/json?address=test"];
|
|
10
|
+
}
|
|
11
|
+
export declare const GOOGLE_MAPS: GoogleMaps;
|
|
12
|
+
//# sourceMappingURL=googleMaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleMaps.d.ts","sourceRoot":"","sources":["../../../src/services/googleMaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qEAAqE;AACrE,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,WAAW,4CAA6C;IACjE,QAAQ,CAAC,QAAQ,wDAAwD;IACzE,QAAQ,CAAC,IAAI,SAIgD;IAE7D,QAAQ,CAAC,4BAA4B,8EAE1B;CACZ;AAED,eAAO,MAAM,WAAW,YAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Service } from './base.js';
|
|
2
|
+
/** Work in progress — not yet registered in the service registry. */
|
|
3
|
+
export class GoogleMaps extends Service {
|
|
4
|
+
name = 'google-maps';
|
|
5
|
+
displayName = 'Google Maps';
|
|
6
|
+
baseApiUrls = ['https://maps.googleapis.com/'];
|
|
7
|
+
loginUrl = 'https://console.cloud.google.com/google/maps-apis/';
|
|
8
|
+
info = 'https://developers.google.com/maps/documentation. ' +
|
|
9
|
+
'Browser-based authentication is not yet supported. ' +
|
|
10
|
+
'Use `latchkey auth set google-maps -H "X-Goog-Api-Key: <key>"` to add credentials manually. ' +
|
|
11
|
+
'Only a subset of the APIs accept API keys in the header.';
|
|
12
|
+
credentialCheckCurlArguments = [
|
|
13
|
+
'https://maps.googleapis.com/maps/api/geocode/json?address=test',
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
export const GOOGLE_MAPS = new GoogleMaps();
|
|
17
|
+
//# sourceMappingURL=googleMaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"googleMaps.js","sourceRoot":"","sources":["../../../src/services/googleMaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qEAAqE;AACrE,MAAM,OAAO,UAAW,SAAQ,OAAO;IAC5B,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,aAAa,CAAC;IAC5B,WAAW,GAAG,CAAC,8BAA8B,CAAU,CAAC;IACxD,QAAQ,GAAG,oDAAoD,CAAC;IAChE,IAAI,GACX,oDAAoD;QACpD,qDAAqD;QACrD,8FAA8F;QAC9F,0DAA0D,CAAC;IAEpD,4BAA4B,GAAG;QACtC,gEAAgE;KACxD,CAAC;CACZ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-export all services.
|
|
3
3
|
*/
|
|
4
|
-
export { Service, ServiceSession, SimpleServiceSession, BrowserFollowupServiceSession, } from './base.js';
|
|
5
|
-
export { LoginCancelledError, LoginFailedError } from './base.js';
|
|
4
|
+
export { Service, ServiceSession, SimpleServiceSession, BrowserFollowupServiceSession, } from './core/base.js';
|
|
5
|
+
export { LoginCancelledError, LoginFailedError, NoCurlCredentialsNotSupportedError, } from './core/base.js';
|
|
6
|
+
export { RegisteredService } from './core/registered.js';
|
|
6
7
|
export { Slack, SLACK } from './slack.js';
|
|
7
8
|
export { Discord, DISCORD } from './discord.js';
|
|
8
9
|
export { Github, GITHUB } from './github.js';
|
|
9
10
|
export { Dropbox, DROPBOX } from './dropbox.js';
|
|
10
11
|
export { Linear, LINEAR } from './linear.js';
|
|
11
|
-
export {
|
|
12
|
+
export { GoogleService } from './google/base.js';
|
|
13
|
+
export { GoogleGmail, GOOGLE_GMAIL } from './google/gmail.js';
|
|
14
|
+
export { GoogleCalendar, GOOGLE_CALENDAR } from './google/calendar.js';
|
|
15
|
+
export { GoogleDrive, GOOGLE_DRIVE } from './google/drive.js';
|
|
16
|
+
export { GoogleSheets, GOOGLE_SHEETS } from './google/sheets.js';
|
|
17
|
+
export { GoogleDocs, GOOGLE_DOCS } from './google/docs.js';
|
|
18
|
+
export { GooglePeople, GOOGLE_PEOPLE } from './google/people.js';
|
|
12
19
|
export { Notion, NOTION } from './notion.js';
|
|
13
20
|
export { Mailchimp, MAILCHIMP } from './mailchimp.js';
|
|
21
|
+
export { Gitlab, GITLAB } from './gitlab.js';
|
|
22
|
+
export { Zoom, ZOOM } from './zoom.js';
|
|
23
|
+
export { Telegram, TELEGRAM } from './telegram.js';
|
|
24
|
+
export { Sentry, SENTRY } from './sentry.js';
|
|
25
|
+
export { Aws, AWS } from './aws.js';
|
|
26
|
+
export { Stripe, STRIPE } from './stripe.js';
|
|
27
|
+
export { Figma, FIGMA } from './figma.js';
|
|
28
|
+
export { GoogleAnalytics, GOOGLE_ANALYTICS } from './google/analytics.js';
|
|
29
|
+
export { Calendly, CALENDLY } from './calendly.js';
|
|
30
|
+
export { GoogleDirections, GOOGLE_DIRECTIONS } from './google/directions.js';
|
|
31
|
+
export { Yelp, YELP } from './yelp.js';
|
|
14
32
|
//# 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,GAC9B,MAAM,
|
|
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,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,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,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,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"}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Re-export all services.
|
|
3
3
|
*/
|
|
4
|
-
export { Service, ServiceSession, SimpleServiceSession, BrowserFollowupServiceSession, } from './base.js';
|
|
5
|
-
export { LoginCancelledError, LoginFailedError } from './base.js';
|
|
4
|
+
export { Service, ServiceSession, SimpleServiceSession, BrowserFollowupServiceSession, } from './core/base.js';
|
|
5
|
+
export { LoginCancelledError, LoginFailedError, NoCurlCredentialsNotSupportedError, } from './core/base.js';
|
|
6
|
+
export { RegisteredService } from './core/registered.js';
|
|
6
7
|
export { Slack, SLACK } from './slack.js';
|
|
7
8
|
export { Discord, DISCORD } from './discord.js';
|
|
8
9
|
export { Github, GITHUB } from './github.js';
|
|
9
10
|
export { Dropbox, DROPBOX } from './dropbox.js';
|
|
10
11
|
export { Linear, LINEAR } from './linear.js';
|
|
11
|
-
export {
|
|
12
|
+
export { GoogleService } from './google/base.js';
|
|
13
|
+
export { GoogleGmail, GOOGLE_GMAIL } from './google/gmail.js';
|
|
14
|
+
export { GoogleCalendar, GOOGLE_CALENDAR } from './google/calendar.js';
|
|
15
|
+
export { GoogleDrive, GOOGLE_DRIVE } from './google/drive.js';
|
|
16
|
+
export { GoogleSheets, GOOGLE_SHEETS } from './google/sheets.js';
|
|
17
|
+
export { GoogleDocs, GOOGLE_DOCS } from './google/docs.js';
|
|
18
|
+
export { GooglePeople, GOOGLE_PEOPLE } from './google/people.js';
|
|
12
19
|
export { Notion, NOTION } from './notion.js';
|
|
13
20
|
export { Mailchimp, MAILCHIMP } from './mailchimp.js';
|
|
21
|
+
export { Gitlab, GITLAB } from './gitlab.js';
|
|
22
|
+
export { Zoom, ZOOM } from './zoom.js';
|
|
23
|
+
export { Telegram, TELEGRAM } from './telegram.js';
|
|
24
|
+
export { Sentry, SENTRY } from './sentry.js';
|
|
25
|
+
export { Aws, AWS } from './aws.js';
|
|
26
|
+
export { Stripe, STRIPE } from './stripe.js';
|
|
27
|
+
export { Figma, FIGMA } from './figma.js';
|
|
28
|
+
export { GoogleAnalytics, GOOGLE_ANALYTICS } from './google/analytics.js';
|
|
29
|
+
export { Calendly, CALENDLY } from './calendly.js';
|
|
30
|
+
export { GoogleDirections, GOOGLE_DIRECTIONS } from './google/directions.js';
|
|
31
|
+
export { Yelp, YELP } from './yelp.js';
|
|
14
32
|
//# 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,GAC9B,MAAM,
|
|
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,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,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,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,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"}
|