@faable/deploy-sdk 1.0.1 → 1.0.3

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.
Files changed (46) hide show
  1. package/.github/workflows/release.yml +1 -0
  2. package/dist/FaableDeployApi.d.ts +60 -0
  3. package/dist/FaableDeployApi.d.ts.map +1 -0
  4. package/dist/FaableDeployApi.js +29 -0
  5. package/{src/api/api-types.ts → dist/api/api-types.d.ts} +5 -15
  6. package/dist/api/api-types.d.ts.map +1 -0
  7. package/dist/api/api-types.js +1 -0
  8. package/{src → dist}/api/types.d.ts +1 -1
  9. package/dist/api/types.d.ts.map +1 -0
  10. package/dist/api/types.js +5 -0
  11. package/dist/auth/apikey.d.ts +3 -0
  12. package/dist/auth/apikey.d.ts.map +1 -0
  13. package/dist/auth/apikey.js +7 -0
  14. package/dist/fetcher/Fetcher.d.ts +21 -0
  15. package/dist/fetcher/Fetcher.d.ts.map +1 -0
  16. package/dist/fetcher/Fetcher.js +1 -0
  17. package/dist/fetcher/fetcher_axios.d.ts +3 -0
  18. package/dist/fetcher/fetcher_axios.d.ts.map +1 -0
  19. package/dist/fetcher/fetcher_axios.js +43 -0
  20. package/dist/helpers/authorize-client-credentials.d.ts +17 -0
  21. package/dist/helpers/authorize-client-credentials.d.ts.map +1 -0
  22. package/dist/helpers/authorize-client-credentials.js +38 -0
  23. package/dist/helpers/authorize.d.ts +9 -0
  24. package/dist/helpers/authorize.d.ts.map +1 -0
  25. package/dist/helpers/authorize.js +39 -0
  26. package/dist/helpers/error_handler.d.ts +4 -0
  27. package/dist/helpers/error_handler.d.ts.map +1 -0
  28. package/dist/helpers/error_handler.js +7 -0
  29. package/dist/helpers/paginator.d.ts +15 -0
  30. package/dist/helpers/paginator.d.ts.map +1 -0
  31. package/dist/helpers/paginator.js +28 -0
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +4 -0
  35. package/package.json +2 -2
  36. package/src/FaableDeployApi.test.ts +0 -13
  37. package/src/FaableDeployApi.ts +0 -40
  38. package/src/auth/apikey.ts +0 -11
  39. package/src/fetcher/Fetcher.ts +0 -42
  40. package/src/fetcher/fetcher_axios.ts +0 -50
  41. package/src/helpers/authorize-client-credentials.ts +0 -54
  42. package/src/helpers/authorize.ts +0 -58
  43. package/src/helpers/error_handler.ts +0 -7
  44. package/src/helpers/paginator.ts +0 -37
  45. package/src/index.ts +0 -3
  46. package/tsconfig.json +0 -16
@@ -14,6 +14,7 @@ jobs:
14
14
  cache: npm
15
15
  node-version: lts/*
16
16
  - run: npm ci
17
+ - run: npm run build
17
18
  - run: npm run release
18
19
  env:
19
20
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,60 @@
1
+ import { Page } from "./helpers/paginator.js";
2
+ import { FetcherCreateParams } from "./fetcher/Fetcher.js";
3
+ type ApiParams = {
4
+ fetcher?: FetcherCreateParams;
5
+ auth?: FetcherCreateParams;
6
+ };
7
+ export declare class FaableDeployApi {
8
+ private fetcher;
9
+ private paginator;
10
+ constructor(params?: ApiParams);
11
+ getDeployment(id: string): Promise<{
12
+ id: string;
13
+ app_id: string;
14
+ image: string;
15
+ status: import("./api/types.js").components["schemas"]["DeploymentStatus"];
16
+ user: string | null;
17
+ createdAt: string;
18
+ }>;
19
+ getApp(id: string): Promise<{
20
+ id: string;
21
+ profile?: {
22
+ id: string;
23
+ slug: string;
24
+ name?: string;
25
+ description: string;
26
+ is_team: boolean;
27
+ owner_id: string;
28
+ stripe_sub?: string | null;
29
+ createdAt: string;
30
+ } | string | unknown;
31
+ team: string;
32
+ name: string;
33
+ description: string;
34
+ slug: string;
35
+ url: string;
36
+ active: boolean;
37
+ runtime: import("./api/types.js").components["schemas"]["AppRuntime"];
38
+ runtime_strategy: ("next" | "wordpress") | null;
39
+ instance_type: string;
40
+ region: string;
41
+ creator: string;
42
+ metadata: {
43
+ [key: string]: unknown;
44
+ };
45
+ status: import("./api/types.js").components["schemas"]["AppStatus"];
46
+ createdAt: string;
47
+ }>;
48
+ listApps(): {
49
+ all: () => Promise<unknown[]>;
50
+ first: () => Promise<Page<unknown>>;
51
+ pass: (params?: {
52
+ cursor?: string;
53
+ pageSize?: string;
54
+ }) => Promise<Page<unknown>>;
55
+ };
56
+ updateStatus<T>(id: string, data: T): Promise<unknown>;
57
+ }
58
+ export declare const faableapi: (params?: ApiParams) => FaableDeployApi;
59
+ export {};
60
+ //# sourceMappingURL=FaableDeployApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FaableDeployApi.d.ts","sourceRoot":"","sources":["../src/FaableDeployApi.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAW,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,KAAK,SAAS,GAAG;IACf,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAY;gBAEjB,MAAM,GAAE,SAAc;IASlC,aAAa,CAAC,EAAE,EAAE,MAAM;;;;gBAiBmx1B,8CAAsB;;;;IAdj01B,MAAM,CAAC,EAAE,EAAE,MAAM;;;;;gBAc6smB,CAAC;;;;sBAA6I,CAAC;;;;;;;;;iBAAyU,8CAAsB;;;;;;;;gBAAyf,8CAAsB;;;IAX3toB,QAAQ;;;;;;;;IAGR,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAGpC;AAED,eAAO,MAAM,SAAS,YAAY,SAAS,oBAE1C,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { buildPaginator } from "./helpers/paginator.js";
2
+ import { fetcher_axios } from "./fetcher/fetcher_axios.js";
3
+ export class FaableDeployApi {
4
+ fetcher;
5
+ paginator;
6
+ constructor(params = {}) {
7
+ this.fetcher = fetcher_axios({
8
+ baseURL: "https://api.faable.com",
9
+ ...params.fetcher,
10
+ ...params.auth,
11
+ });
12
+ this.paginator = buildPaginator(this.fetcher);
13
+ }
14
+ getDeployment(id) {
15
+ return this.fetcher.get(`/deployment/${id}`);
16
+ }
17
+ getApp(id) {
18
+ return this.fetcher.get(`/app/${id}`);
19
+ }
20
+ listApps() {
21
+ return this.paginator({ url: "/app" });
22
+ }
23
+ updateStatus(id, data) {
24
+ return this.fetcher.post(`/status/${id}`, data);
25
+ }
26
+ }
27
+ export const faableapi = (params = {}) => {
28
+ return new FaableDeployApi(params);
29
+ };
@@ -1,5 +1,4 @@
1
1
  import { components } from "./types.js";
2
-
3
2
  export type App = components["schemas"]["App"];
4
3
  export type AppStatus = components["schemas"]["AppStatus"];
5
4
  export type AppRuntime = components["schemas"]["AppRuntime"];
@@ -8,25 +7,16 @@ export type Deployment = components["schemas"]["Deployment"];
8
7
  export type DeploymentStatus = components["schemas"]["DeploymentStatus"];
9
8
  export type Secret = components["schemas"]["Secret"];
10
9
  export type Domain = components["schemas"]["Domain"];
11
-
12
10
  export type Volume = components["schemas"]["Volume"];
13
-
14
- export type EventSecretsCreateBatchEvent =
15
- components["schemas"]["Event_secret.create_batch"];
16
- export type EventDeploymentCreated =
17
- components["schemas"]["Event_deployment.created"];
11
+ export type EventSecretsCreateBatchEvent = components["schemas"]["Event_secret.create_batch"];
12
+ export type EventDeploymentCreated = components["schemas"]["Event_deployment.created"];
18
13
  export type EventAppDelete = components["schemas"]["Event_app.delete"];
19
14
  export type EventAppCreate = components["schemas"]["Event_app.create"];
20
15
  export type EventAppUpdate = components["schemas"]["Event_app.update"];
21
-
22
16
  export type EventDomainCreate = components["schemas"]["Event_domain.create"];
23
17
  export type EventDomainUpdate = components["schemas"]["Event_domain.update"];
24
-
25
18
  export type EventVolumeCreate = components["schemas"]["Event_volume.create"];
26
19
  export type EventVolumeDelete = components["schemas"]["Event_volume.delete"];
27
-
28
- export type EventSecretsUpdated =
29
- components["schemas"]["Event_secret.create_batch"];
30
-
31
- export type EventDeploymentStatusUpdate =
32
- components["schemas"]["Event_deployment.update_status"];
20
+ export type EventSecretsUpdated = components["schemas"]["Event_secret.create_batch"];
21
+ export type EventDeploymentStatusUpdate = components["schemas"]["Event_deployment.update_status"];
22
+ //# sourceMappingURL=api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../src/api/api-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,MAAM,4BAA4B,GACtC,UAAU,CAAC,SAAS,CAAC,CAAC,2BAA2B,CAAC,CAAC;AACrD,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAC7B,UAAU,CAAC,SAAS,CAAC,CAAC,2BAA2B,CAAC,CAAC;AAErD,MAAM,MAAM,2BAA2B,GACrC,UAAU,CAAC,SAAS,CAAC,CAAC,gCAAgC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -2,7 +2,6 @@
2
2
  * This file was auto-generated by openapi-typescript.
3
3
  * Do not make direct changes to the file.
4
4
  */
5
-
6
5
  export interface paths {
7
6
  "/profile": {
8
7
  parameters: {
@@ -2019,3 +2018,4 @@ export interface operations {
2019
2018
  };
2020
2019
  };
2021
2020
  }
2021
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export {};
@@ -0,0 +1,3 @@
1
+ import { FetcherCreateParams } from "../fetcher/Fetcher.js";
2
+ export declare const createApikeyAuth: (apikey?: string) => FetcherCreateParams;
3
+ //# sourceMappingURL=apikey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.d.ts","sourceRoot":"","sources":["../../src/auth/apikey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,YACnB,MAAM,KACb,mBAMF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const createApikeyAuth = (apikey = process.env.FAABLE_APIKEY || "") => {
2
+ return {
3
+ headers: {
4
+ authorization: `basic ${btoa(`${apikey}:${apikey}`)}`,
5
+ },
6
+ };
7
+ };
@@ -0,0 +1,21 @@
1
+ type Method = "get" | "GET" | "delete" | "DELETE" | "head" | "HEAD" | "options" | "OPTIONS" | "post" | "POST" | "put" | "PUT" | "patch" | "PATCH" | "purge" | "PURGE" | "link" | "LINK" | "unlink" | "UNLINK";
2
+ export type FetcherRequestParams = {
3
+ url: string;
4
+ method?: Method;
5
+ params?: any;
6
+ };
7
+ export type Headers = {
8
+ authorization?: string;
9
+ };
10
+ export type FetcherCreateParams = {
11
+ baseURL?: string;
12
+ headers?: Headers;
13
+ };
14
+ export type Fetcher = {
15
+ get: <T>(url: string) => Promise<T>;
16
+ post: <T>(url: string, data: any) => Promise<T>;
17
+ request: <T>(params: FetcherRequestParams) => Promise<T>;
18
+ check: <T>(url: string, status?: number) => Promise<boolean>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=Fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fetcher.d.ts","sourceRoot":"","sources":["../../src/fetcher/Fetcher.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Fetcher, FetcherCreateParams } from "./Fetcher.js";
2
+ export declare const fetcher_axios: (params?: FetcherCreateParams) => Fetcher;
3
+ //# sourceMappingURL=fetcher_axios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher_axios.d.ts","sourceRoot":"","sources":["../../src/fetcher/fetcher_axios.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAS5D,eAAO,MAAM,aAAa,YAAY,mBAAmB,KAAQ,OAqChE,CAAC"}
@@ -0,0 +1,43 @@
1
+ import axios from "axios";
2
+ import { FaableApiError } from "../helpers/error_handler.js";
3
+ const handleErrorInterceptor = async (e) => {
4
+ const data = e.response?.data;
5
+ throw new FaableApiError(`FaableApiError: ${data?.message} (status=${e.response?.status}, url=${e.response?.config.url})`);
6
+ };
7
+ export const fetcher_axios = (params = {}) => {
8
+ const instance = axios.create(params);
9
+ // Add base interceptor
10
+ instance.interceptors.response.use((res) => {
11
+ //console.log(`Request ${res.config.url}`);
12
+ return res;
13
+ }, handleErrorInterceptor);
14
+ return {
15
+ get: async (url) => {
16
+ const res = await instance.request({
17
+ method: "GET",
18
+ url,
19
+ });
20
+ return res.data;
21
+ },
22
+ post: async (url, data) => {
23
+ const res = await instance.request({
24
+ method: "GET",
25
+ url,
26
+ data,
27
+ });
28
+ return res.data;
29
+ },
30
+ request: async (params) => {
31
+ const res = await instance.request(params);
32
+ return res.data;
33
+ },
34
+ check: async (url) => {
35
+ const res = await instance.request({
36
+ method: "GET",
37
+ url,
38
+ validateStatus: () => true,
39
+ });
40
+ return res.status == 200;
41
+ },
42
+ };
43
+ };
@@ -0,0 +1,17 @@
1
+ export type ClientCredentialsConfig = {
2
+ domain: string;
3
+ clientId: string;
4
+ clientSecret: string;
5
+ };
6
+ export interface ClientCredentialsResponse {
7
+ access_token: string;
8
+ }
9
+ export declare class ClientCredentialsFlow {
10
+ private config;
11
+ constructor(config: ClientCredentialsConfig);
12
+ private response?;
13
+ private isTokenExpired;
14
+ private _getToken;
15
+ getToken(): Promise<string>;
16
+ }
17
+ //# sourceMappingURL=authorize-client-credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize-client-credentials.d.ts","sourceRoot":"","sources":["../../src/helpers/authorize-client-credentials.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,uBAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAC,CAA4B;IAE7C,OAAO,CAAC,cAAc;YAUR,SAAS;IAgBjB,QAAQ;CASf"}
@@ -0,0 +1,38 @@
1
+ import axios from "axios";
2
+ import { jwtDecode } from "jwt-decode";
3
+ export class ClientCredentialsFlow {
4
+ config;
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ response;
9
+ isTokenExpired() {
10
+ if (!this.response)
11
+ throw new Error("No token");
12
+ let { exp } = jwtDecode(this.response?.access_token);
13
+ if (!exp) {
14
+ throw new Error("Missing expire date");
15
+ }
16
+ const currentSeconds = new Date().getTime() / 1000;
17
+ return currentSeconds > exp;
18
+ }
19
+ async _getToken() {
20
+ const params = new URLSearchParams();
21
+ params.append("grant_type", "client_credentials");
22
+ params.append("client_id", this.config.clientId);
23
+ params.append("client_secret", this.config.clientSecret);
24
+ const res = await axios.post(this.config.domain + "/oauth/token", params);
25
+ this.response = res.data;
26
+ console.log(`[${this.config.domain}] ✅ Client Credentials flow completed `);
27
+ return this.response;
28
+ }
29
+ async getToken() {
30
+ if (!this.response || this.isTokenExpired()) {
31
+ await this._getToken();
32
+ }
33
+ if (!this.response?.access_token) {
34
+ throw new Error("Cannot get token");
35
+ }
36
+ return this.response?.access_token;
37
+ }
38
+ }
@@ -0,0 +1,9 @@
1
+ import { AxiosInstance } from "axios";
2
+ import { ClientCredentialsConfig } from "./authorize-client-credentials.js";
3
+ interface AuthConfig {
4
+ client?: AxiosInstance;
5
+ client_credentials?: ClientCredentialsConfig;
6
+ }
7
+ export declare const authorize: (_config?: AuthConfig) => AxiosInstance;
8
+ export {};
9
+ //# sourceMappingURL=authorize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../src/helpers/authorize.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAEL,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAE3C,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,eAAO,MAAM,SAAS,aAAc,UAAU,kBA6C7C,CAAC"}
@@ -0,0 +1,39 @@
1
+ import axios from "axios";
2
+ import { ClientCredentialsFlow, } from "./authorize-client-credentials.js";
3
+ export const authorize = (_config) => {
4
+ const authDomain = process.env.FAABLEAUTH_DOMAIN || _config?.client_credentials?.domain || "";
5
+ if (!authDomain) {
6
+ throw new Error("Setup Faable Auth failed, missing env FAABLEAUTH_DOMAIN");
7
+ }
8
+ const client_credentials_config = {
9
+ domain: authDomain,
10
+ clientId: process.env.FAABLEAUTH_CLIENT_ID ||
11
+ _config?.client_credentials?.clientId ||
12
+ "",
13
+ clientSecret: process.env.FAABLEAUTH_CLIENT_SECRET ||
14
+ _config?.client_credentials?.clientSecret ||
15
+ "",
16
+ };
17
+ // Reuse client or setup a new one
18
+ const client = _config?.client || axios.create({ baseURL: authDomain });
19
+ // Config is OK
20
+ let enable_client_credentials = false;
21
+ if (client_credentials_config.domain &&
22
+ client_credentials_config.clientId &&
23
+ client_credentials_config.clientSecret) {
24
+ enable_client_credentials = true;
25
+ console.log(`[${client_credentials_config.domain}] Using client credentials`);
26
+ }
27
+ else {
28
+ console.warn(`Client credentials not configured`);
29
+ }
30
+ const flow = new ClientCredentialsFlow(client_credentials_config);
31
+ client.interceptors.request.use(async function (config) {
32
+ if (enable_client_credentials) {
33
+ const token = await flow.getToken();
34
+ config.headers.set("Authorization", `Bearer ${token}`);
35
+ }
36
+ return config;
37
+ });
38
+ return client;
39
+ };
@@ -0,0 +1,4 @@
1
+ export declare class FaableApiError extends Error {
2
+ constructor(msg: string);
3
+ }
4
+ //# sourceMappingURL=error_handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error_handler.d.ts","sourceRoot":"","sources":["../../src/helpers/error_handler.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,GAAG,EAAE,MAAM;CAKxB"}
@@ -0,0 +1,7 @@
1
+ export class FaableApiError extends Error {
2
+ constructor(msg) {
3
+ super(msg);
4
+ this.name = "FaableApiError";
5
+ Object.setPrototypeOf(this, FaableApiError.prototype);
6
+ }
7
+ }
@@ -0,0 +1,15 @@
1
+ import { Fetcher, FetcherRequestParams } from "../fetcher/Fetcher.js";
2
+ export interface Page<T> {
3
+ next: string | null;
4
+ results: T[];
5
+ }
6
+ export type Paginator = ReturnType<typeof buildPaginator>;
7
+ export declare const buildPaginator: (fetcher: Fetcher) => <T>(req: FetcherRequestParams) => {
8
+ all: () => Promise<T[]>;
9
+ first: () => Promise<Page<T>>;
10
+ pass: (params?: {
11
+ cursor?: string;
12
+ pageSize?: string;
13
+ }) => Promise<Page<T>>;
14
+ };
15
+ //# sourceMappingURL=paginator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paginator.d.ts","sourceRoot":"","sources":["../../src/helpers/paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AACD,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC1D,eAAO,MAAM,cAAc,YACf,OAAO,MAChB,CAAC,OAAO,oBAAoB;;;oBAiBJ;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;CAU9D,CAAC"}
@@ -0,0 +1,28 @@
1
+ export const buildPaginator = (fetcher) => (req) => {
2
+ return {
3
+ all: async () => {
4
+ const pages = [];
5
+ let data;
6
+ do {
7
+ data = await fetcher.request({
8
+ ...req,
9
+ params: { ...req.params, next: data && data?.next },
10
+ });
11
+ pages.push(data);
12
+ } while (data.next);
13
+ return pages.map((page) => page.results).flat();
14
+ },
15
+ first: async () => {
16
+ return fetcher.request(req);
17
+ },
18
+ pass: async (params = {}) => {
19
+ return fetcher.request({
20
+ ...req,
21
+ params: {
22
+ ...req.params,
23
+ ...params,
24
+ },
25
+ });
26
+ },
27
+ };
28
+ };
@@ -0,0 +1,5 @@
1
+ export * from "./FaableDeployApi.js";
2
+ import * as auth from "./auth/apikey.js";
3
+ import * as types from "./api/api-types.js";
4
+ export { types, auth };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./FaableDeployApi.js";
2
+ import * as auth from "./auth/apikey.js";
3
+ import * as types from "./api/api-types.js";
4
+ export { types, auth };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faable/deploy-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "author": "Marc Pomar <marc@faable.com>",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  "typescript": "^5.6.2"
27
27
  },
28
28
  "scripts": {
29
- "generate-types": "openapi-typescript https://api.faable.com/docs/json -o src/api/types.d.ts",
29
+ "generate-types": "openapi-typescript https://api.faable.com/docs/json -o src/api/types.ts",
30
30
  "prebuild": "rimraf dist",
31
31
  "build": "tsc",
32
32
  "test": "ava",
@@ -1,13 +0,0 @@
1
- import test from "ava";
2
- import { faableapi } from "./FaableDeployApi.js";
3
- import { createApikeyAuth } from "./auth/apikey.js";
4
-
5
- test("instance", async (t) => {
6
- const auth = createApikeyAuth();
7
- const api = faableapi({
8
- auth,
9
- });
10
- const app = await api.getApp("app_64f312b7347d780011861a0f");
11
- console.log(app);
12
- t.pass();
13
- });
@@ -1,40 +0,0 @@
1
- import { Deployment, App } from "./api/api-types.js";
2
- import { buildPaginator, Paginator, Page } from "./helpers/paginator.js";
3
- import { fetcher_axios } from "./fetcher/fetcher_axios.js";
4
- import { Fetcher, FetcherCreateParams } from "./fetcher/Fetcher.js";
5
-
6
- type ApiParams = {
7
- fetcher?: FetcherCreateParams;
8
- auth?: FetcherCreateParams;
9
- };
10
-
11
- export class FaableDeployApi {
12
- private fetcher: Fetcher;
13
- private paginator: Paginator;
14
-
15
- constructor(params: ApiParams = {}) {
16
- this.fetcher = fetcher_axios({
17
- baseURL: "https://api.faable.com",
18
- ...params.fetcher,
19
- ...params.auth,
20
- });
21
- this.paginator = buildPaginator(this.fetcher);
22
- }
23
-
24
- getDeployment(id: string) {
25
- return this.fetcher.get<Deployment>(`/deployment/${id}`);
26
- }
27
- getApp(id: string) {
28
- return this.fetcher.get<App>(`/app/${id}`);
29
- }
30
- listApps() {
31
- return this.paginator({ url: "/app" });
32
- }
33
- updateStatus<T>(id: string, data: T) {
34
- return this.fetcher.post(`/status/${id}`, data);
35
- }
36
- }
37
-
38
- export const faableapi = (params: ApiParams = {}) => {
39
- return new FaableDeployApi(params);
40
- };
@@ -1,11 +0,0 @@
1
- import { FetcherCreateParams } from "../fetcher/Fetcher.js";
2
-
3
- export const createApikeyAuth = (
4
- apikey: string = process.env.FAABLE_APIKEY || ""
5
- ): FetcherCreateParams => {
6
- return {
7
- headers: {
8
- authorization: `basic ${btoa(`${apikey}:${apikey}`)}`,
9
- },
10
- };
11
- };
@@ -1,42 +0,0 @@
1
- type Method =
2
- | "get"
3
- | "GET"
4
- | "delete"
5
- | "DELETE"
6
- | "head"
7
- | "HEAD"
8
- | "options"
9
- | "OPTIONS"
10
- | "post"
11
- | "POST"
12
- | "put"
13
- | "PUT"
14
- | "patch"
15
- | "PATCH"
16
- | "purge"
17
- | "PURGE"
18
- | "link"
19
- | "LINK"
20
- | "unlink"
21
- | "UNLINK";
22
- export type FetcherRequestParams = {
23
- url: string;
24
- method?: Method;
25
- params?: any;
26
- };
27
-
28
- export type Headers = {
29
- authorization?: string;
30
- };
31
-
32
- export type FetcherCreateParams = {
33
- baseURL?: string;
34
- headers?: Headers;
35
- };
36
-
37
- export type Fetcher = {
38
- get: <T>(url: string) => Promise<T>;
39
- post: <T>(url: string, data: any) => Promise<T>;
40
- request: <T>(params: FetcherRequestParams) => Promise<T>;
41
- check: <T>(url: string, status?: number) => Promise<boolean>;
42
- };
@@ -1,50 +0,0 @@
1
- import axios, { AxiosError } from "axios";
2
- import { AxiosRequestConfig, AxiosResponse } from "axios";
3
- import { FaableApiError } from "../helpers/error_handler.js";
4
- import { Fetcher, FetcherCreateParams } from "./Fetcher.js";
5
-
6
- const handleErrorInterceptor = async (e: AxiosError) => {
7
- const data: any = e.response?.data;
8
- throw new FaableApiError(
9
- `FaableApiError: ${data?.message} (status=${e.response?.status}, url=${e.response?.config.url})`
10
- );
11
- };
12
-
13
- export const fetcher_axios = (params: FetcherCreateParams = {}): Fetcher => {
14
- const instance = axios.create(params);
15
- // Add base interceptor
16
- instance.interceptors.response.use((res: AxiosResponse) => {
17
- //console.log(`Request ${res.config.url}`);
18
- return res;
19
- }, handleErrorInterceptor);
20
-
21
- return {
22
- get: async <T>(url: string) => {
23
- const res = await instance.request<T>({
24
- method: "GET",
25
- url,
26
- });
27
- return res.data;
28
- },
29
- post: async <T>(url: string, data: any) => {
30
- const res = await instance.request<T>({
31
- method: "GET",
32
- url,
33
- data,
34
- });
35
- return res.data;
36
- },
37
- request: async <T>(params: AxiosRequestConfig) => {
38
- const res = await instance.request<T>(params);
39
- return res.data;
40
- },
41
- check: async <T>(url: string) => {
42
- const res = await instance.request<T>({
43
- method: "GET",
44
- url,
45
- validateStatus: () => true,
46
- });
47
- return res.status == 200;
48
- },
49
- };
50
- };
@@ -1,54 +0,0 @@
1
- import axios, { AxiosInstance } from "axios";
2
- import { jwtDecode } from "jwt-decode";
3
-
4
- export type ClientCredentialsConfig = {
5
- domain: string;
6
- clientId: string;
7
- clientSecret: string;
8
- };
9
-
10
- export interface ClientCredentialsResponse {
11
- access_token: string;
12
- }
13
-
14
- export class ClientCredentialsFlow {
15
- constructor(private config: ClientCredentialsConfig) {}
16
-
17
- private response?: ClientCredentialsResponse;
18
-
19
- private isTokenExpired() {
20
- if (!this.response) throw new Error("No token");
21
- let { exp } = jwtDecode(this.response?.access_token);
22
- if (!exp) {
23
- throw new Error("Missing expire date");
24
- }
25
- const currentSeconds = new Date().getTime() / 1000;
26
- return currentSeconds > exp;
27
- }
28
-
29
- private async _getToken() {
30
- const params = new URLSearchParams();
31
- params.append("grant_type", "client_credentials");
32
- params.append("client_id", this.config.clientId);
33
- params.append("client_secret", this.config.clientSecret);
34
- const res = await axios.post<ClientCredentialsResponse>(
35
- this.config.domain + "/oauth/token",
36
- params
37
- );
38
- this.response = res.data;
39
- console.log(
40
- `[${this.config.domain}] ✅ Client Credentials flow completed `
41
- );
42
- return this.response;
43
- }
44
-
45
- async getToken() {
46
- if (!this.response || this.isTokenExpired()) {
47
- await this._getToken();
48
- }
49
- if (!this.response?.access_token) {
50
- throw new Error("Cannot get token");
51
- }
52
- return this.response?.access_token;
53
- }
54
- }
@@ -1,58 +0,0 @@
1
- import axios, { AxiosInstance } from "axios";
2
-
3
- import {
4
- ClientCredentialsFlow,
5
- ClientCredentialsConfig,
6
- } from "./authorize-client-credentials.js";
7
-
8
- interface AuthConfig {
9
- client?: AxiosInstance;
10
- client_credentials?: ClientCredentialsConfig;
11
- }
12
-
13
- export const authorize = (_config?: AuthConfig) => {
14
- const authDomain =
15
- process.env.FAABLEAUTH_DOMAIN || _config?.client_credentials?.domain || "";
16
- if (!authDomain) {
17
- throw new Error("Setup Faable Auth failed, missing env FAABLEAUTH_DOMAIN");
18
- }
19
- const client_credentials_config: ClientCredentialsConfig = {
20
- domain: authDomain,
21
- clientId:
22
- process.env.FAABLEAUTH_CLIENT_ID ||
23
- _config?.client_credentials?.clientId ||
24
- "",
25
- clientSecret:
26
- process.env.FAABLEAUTH_CLIENT_SECRET ||
27
- _config?.client_credentials?.clientSecret ||
28
- "",
29
- };
30
-
31
- // Reuse client or setup a new one
32
- const client = _config?.client || axios.create({ baseURL: authDomain });
33
-
34
- // Config is OK
35
- let enable_client_credentials = false;
36
- if (
37
- client_credentials_config.domain &&
38
- client_credentials_config.clientId &&
39
- client_credentials_config.clientSecret
40
- ) {
41
- enable_client_credentials = true;
42
- console.log(
43
- `[${client_credentials_config.domain}] Using client credentials`
44
- );
45
- } else {
46
- console.warn(`Client credentials not configured`);
47
- }
48
-
49
- const flow = new ClientCredentialsFlow(client_credentials_config);
50
- client.interceptors.request.use(async function (config) {
51
- if (enable_client_credentials) {
52
- const token = await flow.getToken();
53
- config.headers.set("Authorization", `Bearer ${token}`);
54
- }
55
- return config;
56
- });
57
- return client;
58
- };
@@ -1,7 +0,0 @@
1
- export class FaableApiError extends Error {
2
- constructor(msg: string) {
3
- super(msg);
4
- this.name = "FaableApiError";
5
- Object.setPrototypeOf(this, FaableApiError.prototype);
6
- }
7
- }
@@ -1,37 +0,0 @@
1
- import { Fetcher, FetcherRequestParams } from "../fetcher/Fetcher.js";
2
-
3
- export interface Page<T> {
4
- next: string | null;
5
- results: T[];
6
- }
7
- export type Paginator = ReturnType<typeof buildPaginator>;
8
- export const buildPaginator =
9
- (fetcher: Fetcher) =>
10
- <T>(req: FetcherRequestParams) => {
11
- return {
12
- all: async () => {
13
- const pages: Page<T>[] = [];
14
- let data: Page<T> | undefined;
15
- do {
16
- data = await fetcher.request<Page<T>>({
17
- ...req,
18
- params: { ...req.params, next: data && data?.next },
19
- });
20
- pages.push(data);
21
- } while (data.next);
22
- return pages.map((page) => page.results).flat();
23
- },
24
- first: async () => {
25
- return fetcher.request<Page<T>>(req);
26
- },
27
- pass: async (params: { cursor?: string; pageSize?: string } = {}) => {
28
- return fetcher.request<Page<T>>({
29
- ...req,
30
- params: {
31
- ...req.params,
32
- ...params,
33
- },
34
- });
35
- },
36
- };
37
- };
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./FaableDeployApi.js";
2
- export * from "./auth/apikey.js";
3
- export * from "./api/api-types.js";
package/tsconfig.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "module": "NodeNext",
5
- "moduleResolution": "NodeNext",
6
- "esModuleInterop": true,
7
- "forceConsistentCasingInFileNames": true,
8
- "strict": true,
9
- "rootDir": "./src",
10
- "outDir": "dist",
11
- "declaration": true,
12
- "declarationMap": true
13
- },
14
- "include": ["src/**/*"],
15
- "exclude": ["src/**/*.test.ts"]
16
- }