@faable/deploy-sdk 1.0.3 → 1.0.5

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.
@@ -1,12 +1,5 @@
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;
1
+ import { ApiParams, FaableApi } from "./api/FaableApi.js";
2
+ export declare class DeployApi extends FaableApi {
10
3
  constructor(params?: ApiParams);
11
4
  getDeployment(id: string): Promise<{
12
5
  id: string;
@@ -47,14 +40,12 @@ export declare class FaableDeployApi {
47
40
  }>;
48
41
  listApps(): {
49
42
  all: () => Promise<unknown[]>;
50
- first: () => Promise<Page<unknown>>;
43
+ first: () => Promise<import("./helpers/paginator.js").Page<unknown>>;
51
44
  pass: (params?: {
52
45
  cursor?: string;
53
46
  pageSize?: string;
54
- }) => Promise<Page<unknown>>;
47
+ }) => Promise<import("./helpers/paginator.js").Page<unknown>>;
55
48
  };
56
49
  updateStatus<T>(id: string, data: T): Promise<unknown>;
57
50
  }
58
- export declare const faableapi: (params?: ApiParams) => FaableDeployApi;
59
- export {};
60
51
  //# sourceMappingURL=FaableDeployApi.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"FaableDeployApi.d.ts","sourceRoot":"","sources":["../src/FaableDeployApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,MAAM,CAAC,EAAE,SAAS;IAO9B,aAAa,CAAC,EAAE,EAAE,MAAM;;;;gBAauv2B,8CAAsB;;;;IAVry2B,MAAM,CAAC,EAAE,EAAE,MAAM;;;;;gBAUirnB,CAAC;;;;sBAA6I,CAAC;;;;;;;;;iBAAyU,8CAAsB;;;;;;;;gBAAyf,8CAAsB;;;IAP/rpB,QAAQ;;;;;;;;IAGR,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAGpC"}
@@ -1,15 +1,10 @@
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({
1
+ import { FaableApi } from "./api/FaableApi.js";
2
+ export class DeployApi extends FaableApi {
3
+ constructor(params) {
4
+ super({
5
+ ...params,
8
6
  baseURL: "https://api.faable.com",
9
- ...params.fetcher,
10
- ...params.auth,
11
7
  });
12
- this.paginator = buildPaginator(this.fetcher);
13
8
  }
14
9
  getDeployment(id) {
15
10
  return this.fetcher.get(`/deployment/${id}`);
@@ -24,6 +19,3 @@ export class FaableDeployApi {
24
19
  return this.fetcher.post(`/status/${id}`, data);
25
20
  }
26
21
  }
27
- export const faableapi = (params = {}) => {
28
- return new FaableDeployApi(params);
29
- };
@@ -0,0 +1,16 @@
1
+ import { AuthInterface } from "../core-types/AuthInterface.js";
2
+ import { Fetcher, FetcherCreateParams } from "../fetcher/Fetcher.js";
3
+ import { Paginator } from "../helpers/paginator.js";
4
+ export type ApiParams = {
5
+ baseURL?: string;
6
+ fetcher?: FetcherCreateParams;
7
+ auth?: AuthInterface<any, any>;
8
+ debug?: boolean;
9
+ };
10
+ export declare abstract class FaableApi {
11
+ protected fetcher: Fetcher;
12
+ protected paginator: Paginator;
13
+ constructor(params?: ApiParams);
14
+ static create<T extends abstract new (...args: any) => any>(this: T, params?: ApiParams): InstanceType<T>;
15
+ }
16
+ //# sourceMappingURL=FaableApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FaableApi.d.ts","sourceRoot":"","sources":["../../src/api/FaableApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAkB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,SAAS;IAC7B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;gBAEnB,MAAM,GAAE,SAAc;IAKlC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,EACxD,IAAI,EAAE,CAAC,EACP,MAAM,GAAE,SAAc,GACrB,YAAY,CAAC,CAAC,CAAC;CAInB"}
@@ -0,0 +1,14 @@
1
+ import { fetcher_axios } from "../fetcher/fetcher_axios.js";
2
+ import { buildPaginator } from "../helpers/paginator.js";
3
+ export class FaableApi {
4
+ fetcher;
5
+ paginator;
6
+ constructor(params = {}) {
7
+ this.fetcher = fetcher_axios(params);
8
+ this.paginator = buildPaginator(this.fetcher);
9
+ }
10
+ static create(params = {}) {
11
+ let Cns = this;
12
+ return new Cns(params);
13
+ }
14
+ }
@@ -1,3 +1,4 @@
1
- import { FetcherCreateParams } from "../fetcher/Fetcher.js";
2
- export declare const createApikeyAuth: (apikey?: string) => FetcherCreateParams;
1
+ import { StrategyInterface } from "../core-types/StrategyInterface.js";
2
+ export type ApikeyAuthParams = Partial<[apikey: string]>;
3
+ export declare const createApikeyAuth: StrategyInterface<ApikeyAuthParams, any, any>;
3
4
  //# sourceMappingURL=apikey.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"apikey.d.ts","sourceRoot":"","sources":["../../src/auth/apikey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzD,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAoB1E,CAAC"}
@@ -1,7 +1,17 @@
1
- export const createApikeyAuth = (apikey = process.env.FAABLE_APIKEY || "") => {
2
- return {
3
- headers: {
4
- authorization: `basic ${btoa(`${apikey}:${apikey}`)}`,
5
- },
1
+ const APIKEY_ENV_NAME = "FAABLE_APIKEY";
2
+ export const createApikeyAuth = (apikey) => {
3
+ // Default to environment variable
4
+ apikey = apikey || process.env[APIKEY_ENV_NAME];
5
+ if (!apikey) {
6
+ throw new Error(`[@faable/deploy-sdk] No apikey passed to createApikeyAuth. Pass an apikey or use ${APIKEY_ENV_NAME} environment variable`);
7
+ }
8
+ const auth = async () => {
9
+ return {
10
+ headers: {
11
+ authorization: `basic ${btoa(`${apikey}:${apikey}`)}`,
12
+ },
13
+ };
6
14
  };
15
+ return Object.assign(auth, { hook: auth });
7
16
  };
17
+ let m = createApikeyAuth();
@@ -0,0 +1,5 @@
1
+ export interface AuthInterface<AuthOptions extends any[], Authentication extends any> {
2
+ (...args: AuthOptions): Promise<Authentication>;
3
+ hook: (...args: AuthOptions) => Promise<Authentication>;
4
+ }
5
+ //# sourceMappingURL=AuthInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthInterface.d.ts","sourceRoot":"","sources":["../../src/core-types/AuthInterface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAC5B,WAAW,SAAS,GAAG,EAAE,EACzB,cAAc,SAAS,GAAG;IAE1B,CAAC,GAAG,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { AuthInterface } from "./AuthInterface.js";
2
+ export interface StrategyInterface<StrategyOptions extends any[], AuthOptions extends any[], Authentication extends object> {
3
+ (...args: StrategyOptions): AuthInterface<AuthOptions, Authentication>;
4
+ }
5
+ //# sourceMappingURL=StrategyInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StrategyInterface.d.ts","sourceRoot":"","sources":["../../src/core-types/StrategyInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,MAAM,WAAW,iBAAiB,CAChC,eAAe,SAAS,GAAG,EAAE,EAC7B,WAAW,SAAS,GAAG,EAAE,EACzB,cAAc,SAAS,MAAM;IAE7B,CAAC,GAAG,IAAI,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;CACxE"}
@@ -0,0 +1 @@
1
+ export {};
@@ -8,7 +8,6 @@ export type Headers = {
8
8
  authorization?: string;
9
9
  };
10
10
  export type FetcherCreateParams = {
11
- baseURL?: string;
12
11
  headers?: Headers;
13
12
  };
14
13
  export type Fetcher = {
@@ -1 +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"}
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,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"}
@@ -1,3 +1,4 @@
1
- import { Fetcher, FetcherCreateParams } from "./Fetcher.js";
2
- export declare const fetcher_axios: (params?: FetcherCreateParams) => Fetcher;
1
+ import { Fetcher } from "./Fetcher.js";
2
+ import { ApiParams } from "../api/FaableApi.js";
3
+ export declare const fetcher_axios: (params?: ApiParams) => Fetcher;
3
4
  //# sourceMappingURL=fetcher_axios.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"fetcher_axios.d.ts","sourceRoot":"","sources":["../../src/fetcher/fetcher_axios.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAShD,eAAO,MAAM,aAAa,YAAY,SAAS,KAAQ,OAiDtD,CAAC"}
@@ -5,10 +5,20 @@ const handleErrorInterceptor = async (e) => {
5
5
  throw new FaableApiError(`FaableApiError: ${data?.message} (status=${e.response?.status}, url=${e.response?.config.url})`);
6
6
  };
7
7
  export const fetcher_axios = (params = {}) => {
8
- const instance = axios.create(params);
8
+ const instance = axios.create({
9
+ baseURL: params.baseURL,
10
+ ...(params.fetcher || {}),
11
+ });
12
+ instance.interceptors.request.use(async (req) => {
13
+ const auth_data = params.auth && (await params.auth.hook());
14
+ req.headers = auth_data?.headers;
15
+ return req;
16
+ });
9
17
  // Add base interceptor
10
18
  instance.interceptors.response.use((res) => {
11
- //console.log(`Request ${res.config.url}`);
19
+ if (params.debug) {
20
+ console.log(`[${res.status} ${res.statusText}] ${res.config.url}`);
21
+ }
12
22
  return res;
13
23
  }, handleErrorInterceptor);
14
24
  return {
@@ -21,7 +31,7 @@ export const fetcher_axios = (params = {}) => {
21
31
  },
22
32
  post: async (url, data) => {
23
33
  const res = await instance.request({
24
- method: "GET",
34
+ method: "POST",
25
35
  url,
26
36
  data,
27
37
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faable/deploy-sdk",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "author": "Marc Pomar <marc@faable.com>",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,11 +11,13 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "axios": "^1.7.7",
14
- "jwt-decode": "^4.0.0"
14
+ "jwt-decode": "^4.0.0",
15
+ "ramda": "^0.30.1"
15
16
  },
16
17
  "devDependencies": {
17
18
  "@septh/ts-run": "^1.3.0",
18
19
  "@types/node": "^22.5.5",
20
+ "@types/ramda": "^0.30.2",
19
21
  "ava": "^6.1.3",
20
22
  "dotenv": "^16.4.5",
21
23
  "openapi-typescript": "^7.4.0",