@antlur/backstage 1.12.5 → 1.12.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +10 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +51 -52
- package/dist/config.d.ts +1 -2
- package/dist/config.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/client.ts +51 -57
- package/src/config.ts +1 -2
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosInstance, AxiosRequestConfig } from "axios";
|
|
2
1
|
import { BackstageUserConfig } from "./config.js";
|
|
3
2
|
import { AlertService } from "./endpoints/alerts.js";
|
|
4
3
|
import { BlocksService } from "./endpoints/blocks.js";
|
|
@@ -14,7 +13,10 @@ import { RouteService } from "./endpoints/routes.js";
|
|
|
14
13
|
import { WebsiteService } from "./endpoints/website.js";
|
|
15
14
|
import { MediaService } from "./endpoints/media.js";
|
|
16
15
|
export declare class BackstageClient {
|
|
17
|
-
private
|
|
16
|
+
private baseURL;
|
|
17
|
+
private token;
|
|
18
|
+
private accountId;
|
|
19
|
+
private onError?;
|
|
18
20
|
readonly alerts: AlertService;
|
|
19
21
|
readonly blocks: BlocksService;
|
|
20
22
|
readonly events: EventService;
|
|
@@ -29,11 +31,11 @@ export declare class BackstageClient {
|
|
|
29
31
|
readonly routes: RouteService;
|
|
30
32
|
readonly website: WebsiteService;
|
|
31
33
|
constructor(config?: BackstageUserConfig);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
private request;
|
|
35
|
+
get<T = unknown>(url: string): Promise<T>;
|
|
36
|
+
post<T = unknown>(url: string, data?: unknown): Promise<T>;
|
|
37
|
+
put<T = unknown>(url: string, data?: unknown): Promise<T>;
|
|
38
|
+
patch<T = unknown>(url: string, data?: unknown): Promise<T>;
|
|
39
|
+
delete<T = unknown>(url: string): Promise<T>;
|
|
38
40
|
}
|
|
39
41
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAyB;IAGzC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,MAAM,EAAE,aAAa,CAAC;IACtC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAC5C,SAAgB,OAAO,EAAE,aAAa,CAAC;IACvC,SAAgB,SAAS,EAAE,eAAe,CAAC;IAC3C,SAAgB,KAAK,EAAE,YAAY,CAAC;IACpC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,UAAU,EAAE,iBAAiB,CAAC;IAC9C,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,KAAK,EAAE,YAAY,CAAC;IACpC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,OAAO,EAAE,cAAc,CAAC;gBAE5B,MAAM,CAAC,EAAE,mBAAmB;YAuC1B,OAAO;IAmCR,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1D,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzD,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3D,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAG1D"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
1
|
import { getGlobalConfig } from "./config.js";
|
|
3
2
|
import { AlertService } from "./endpoints/alerts.js";
|
|
4
3
|
import { BlocksService } from "./endpoints/blocks.js";
|
|
@@ -14,7 +13,10 @@ import { RouteService } from "./endpoints/routes.js";
|
|
|
14
13
|
import { WebsiteService } from "./endpoints/website.js";
|
|
15
14
|
import { MediaService } from "./endpoints/media.js";
|
|
16
15
|
export class BackstageClient {
|
|
17
|
-
|
|
16
|
+
baseURL;
|
|
17
|
+
token;
|
|
18
|
+
accountId;
|
|
19
|
+
onError;
|
|
18
20
|
// Service Instances
|
|
19
21
|
alerts;
|
|
20
22
|
blocks;
|
|
@@ -43,39 +45,10 @@ export class BackstageClient {
|
|
|
43
45
|
if (!finalConfig.accountId) {
|
|
44
46
|
throw new Error("No accountId found in the Backstage config. Please provide an accountId.");
|
|
45
47
|
}
|
|
46
|
-
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Authorization: `Bearer ${token}`,
|
|
51
|
-
"X-Account-ID": finalConfig.accountId,
|
|
52
|
-
Accept: "application/json",
|
|
53
|
-
"Content-Type": "application/json",
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
// Add request interceptor for debugging
|
|
57
|
-
this.instance.interceptors.request.use((requestConfig) => {
|
|
58
|
-
// console.log("Request:", {
|
|
59
|
-
// method: requestConfig.method,
|
|
60
|
-
// url: requestConfig.url,
|
|
61
|
-
// headers: requestConfig.headers,
|
|
62
|
-
// data: requestConfig.data,
|
|
63
|
-
// });
|
|
64
|
-
return requestConfig;
|
|
65
|
-
});
|
|
66
|
-
// Add response interceptor for debugging
|
|
67
|
-
this.instance.interceptors.response.use((response) => response, (error) => {
|
|
68
|
-
// console.error("API Error:", {
|
|
69
|
-
// status: error.response?.status,
|
|
70
|
-
// method: error.config?.method,
|
|
71
|
-
// url: error.config?.url,
|
|
72
|
-
// headers: error.config?.headers,
|
|
73
|
-
// data: error.response?.data,
|
|
74
|
-
// });
|
|
75
|
-
if (onError)
|
|
76
|
-
onError(error);
|
|
77
|
-
return Promise.reject(error);
|
|
78
|
-
});
|
|
48
|
+
this.baseURL = finalConfig.baseURL;
|
|
49
|
+
this.token = finalConfig.token;
|
|
50
|
+
this.accountId = finalConfig.accountId;
|
|
51
|
+
this.onError = finalConfig.onError;
|
|
79
52
|
// Initialize service instances
|
|
80
53
|
this.alerts = new AlertService(this);
|
|
81
54
|
this.blocks = new BlocksService(this);
|
|
@@ -91,27 +64,53 @@ export class BackstageClient {
|
|
|
91
64
|
this.routes = new RouteService(this);
|
|
92
65
|
this.website = new WebsiteService(this);
|
|
93
66
|
}
|
|
94
|
-
async
|
|
95
|
-
const
|
|
96
|
-
|
|
67
|
+
async request(method, url, data) {
|
|
68
|
+
const fullUrl = `${this.baseURL}${url}`;
|
|
69
|
+
const headers = {
|
|
70
|
+
Authorization: `Bearer ${this.token}`,
|
|
71
|
+
"X-Account-ID": this.accountId,
|
|
72
|
+
Accept: "application/json",
|
|
73
|
+
"Content-Type": "application/json",
|
|
74
|
+
};
|
|
75
|
+
const options = {
|
|
76
|
+
method,
|
|
77
|
+
headers,
|
|
78
|
+
};
|
|
79
|
+
if (data && (method === "POST" || method === "PUT" || method === "PATCH")) {
|
|
80
|
+
options.body = JSON.stringify(data);
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const response = await fetch(fullUrl, options);
|
|
84
|
+
if (!response.ok) {
|
|
85
|
+
const errorText = await response.text();
|
|
86
|
+
const error = new Error(`HTTP ${response.status}: ${response.statusText} - ${errorText}`);
|
|
87
|
+
error.status = response.status;
|
|
88
|
+
error.response = { status: response.status, data: errorText };
|
|
89
|
+
if (this.onError)
|
|
90
|
+
this.onError(error);
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
return await response.json();
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
if (this.onError)
|
|
97
|
+
this.onError(error);
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
97
100
|
}
|
|
98
|
-
async
|
|
99
|
-
|
|
100
|
-
return response.data;
|
|
101
|
+
async get(url) {
|
|
102
|
+
return this.request("GET", url);
|
|
101
103
|
}
|
|
102
|
-
async
|
|
103
|
-
|
|
104
|
-
return response.data;
|
|
104
|
+
async post(url, data) {
|
|
105
|
+
return this.request("POST", url, data);
|
|
105
106
|
}
|
|
106
|
-
async
|
|
107
|
-
|
|
108
|
-
return response.data;
|
|
107
|
+
async put(url, data) {
|
|
108
|
+
return this.request("PUT", url, data);
|
|
109
109
|
}
|
|
110
|
-
async
|
|
111
|
-
|
|
112
|
-
return response.data;
|
|
110
|
+
async patch(url, data) {
|
|
111
|
+
return this.request("PATCH", url, data);
|
|
113
112
|
}
|
|
114
|
-
|
|
115
|
-
return this.
|
|
113
|
+
async delete(url) {
|
|
114
|
+
return this.request("DELETE", url);
|
|
116
115
|
}
|
|
117
116
|
}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosError } from "axios";
|
|
2
1
|
import type { BlockDefinition } from "./studio/types/index.js";
|
|
3
2
|
export interface BackstageUserConfig {
|
|
4
3
|
accountId?: string | undefined;
|
|
@@ -6,7 +5,7 @@ export interface BackstageUserConfig {
|
|
|
6
5
|
baseURL?: string;
|
|
7
6
|
blocks?: BlockDefinition<any>[] | undefined;
|
|
8
7
|
layouts?: any[] | undefined;
|
|
9
|
-
onError?: (error:
|
|
8
|
+
onError?: (error: Error) => void;
|
|
10
9
|
}
|
|
11
10
|
export declare function defineConfig(config: BackstageUserConfig): BackstageUserConfig;
|
|
12
11
|
export declare function getGlobalConfig(): BackstageUserConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAQD,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAM7E;AAED,wBAAgB,eAAe,IAAI,mBAAmB,CAGrD"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antlur/backstage",
|
|
3
3
|
"author": "Anthony Holmes",
|
|
4
|
-
"version": "1.12.
|
|
4
|
+
"version": "1.12.6",
|
|
5
5
|
"description": "A simple client for Backstage CMS",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -60,7 +60,6 @@
|
|
|
60
60
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"axios": "^1.13.2",
|
|
64
63
|
"commander": "^13.1.0",
|
|
65
64
|
"dotenv": "^16.4.7",
|
|
66
65
|
"schema-dts": "^1.1.2",
|
package/src/client.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from "axios";
|
|
2
1
|
import { getGlobalConfig, BackstageUserConfig } from "./config.js";
|
|
3
2
|
import { AlertService } from "./endpoints/alerts.js";
|
|
4
3
|
import { BlocksService } from "./endpoints/blocks.js";
|
|
@@ -15,7 +14,10 @@ import { WebsiteService } from "./endpoints/website.js";
|
|
|
15
14
|
import { MediaService } from "./endpoints/media.js";
|
|
16
15
|
|
|
17
16
|
export class BackstageClient {
|
|
18
|
-
private
|
|
17
|
+
private baseURL: string;
|
|
18
|
+
private token: string;
|
|
19
|
+
private accountId: string;
|
|
20
|
+
private onError?: (error: Error) => void;
|
|
19
21
|
|
|
20
22
|
// Service Instances
|
|
21
23
|
public readonly alerts: AlertService;
|
|
@@ -50,44 +52,10 @@ export class BackstageClient {
|
|
|
50
52
|
throw new Error("No accountId found in the Backstage config. Please provide an accountId.");
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
headers: {
|
|
58
|
-
Authorization: `Bearer ${token}`,
|
|
59
|
-
"X-Account-ID": finalConfig.accountId,
|
|
60
|
-
Accept: "application/json",
|
|
61
|
-
"Content-Type": "application/json",
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
// Add request interceptor for debugging
|
|
66
|
-
this.instance.interceptors.request.use((requestConfig) => {
|
|
67
|
-
// console.log("Request:", {
|
|
68
|
-
// method: requestConfig.method,
|
|
69
|
-
// url: requestConfig.url,
|
|
70
|
-
// headers: requestConfig.headers,
|
|
71
|
-
// data: requestConfig.data,
|
|
72
|
-
// });
|
|
73
|
-
return requestConfig;
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
// Add response interceptor for debugging
|
|
77
|
-
this.instance.interceptors.response.use(
|
|
78
|
-
(response) => response,
|
|
79
|
-
(error) => {
|
|
80
|
-
// console.error("API Error:", {
|
|
81
|
-
// status: error.response?.status,
|
|
82
|
-
// method: error.config?.method,
|
|
83
|
-
// url: error.config?.url,
|
|
84
|
-
// headers: error.config?.headers,
|
|
85
|
-
// data: error.response?.data,
|
|
86
|
-
// });
|
|
87
|
-
if (onError) onError(error);
|
|
88
|
-
return Promise.reject(error);
|
|
89
|
-
}
|
|
90
|
-
);
|
|
55
|
+
this.baseURL = finalConfig.baseURL!;
|
|
56
|
+
this.token = finalConfig.token;
|
|
57
|
+
this.accountId = finalConfig.accountId;
|
|
58
|
+
this.onError = finalConfig.onError;
|
|
91
59
|
|
|
92
60
|
// Initialize service instances
|
|
93
61
|
this.alerts = new AlertService(this);
|
|
@@ -105,32 +73,58 @@ export class BackstageClient {
|
|
|
105
73
|
this.website = new WebsiteService(this);
|
|
106
74
|
}
|
|
107
75
|
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
76
|
+
private async request<T = unknown>(method: string, url: string, data?: unknown): Promise<T> {
|
|
77
|
+
const fullUrl = `${this.baseURL}${url}`;
|
|
78
|
+
const headers: Record<string, string> = {
|
|
79
|
+
Authorization: `Bearer ${this.token}`,
|
|
80
|
+
"X-Account-ID": this.accountId,
|
|
81
|
+
Accept: "application/json",
|
|
82
|
+
"Content-Type": "application/json",
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const options: RequestInit = {
|
|
86
|
+
method,
|
|
87
|
+
headers,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
if (data && (method === "POST" || method === "PUT" || method === "PATCH")) {
|
|
91
|
+
options.body = JSON.stringify(data);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
const response = await fetch(fullUrl, options);
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
const errorText = await response.text();
|
|
98
|
+
const error = new Error(`HTTP ${response.status}: ${response.statusText} - ${errorText}`);
|
|
99
|
+
(error as any).status = response.status;
|
|
100
|
+
(error as any).response = { status: response.status, data: errorText };
|
|
101
|
+
if (this.onError) this.onError(error);
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
return await response.json();
|
|
105
|
+
} catch (error) {
|
|
106
|
+
if (this.onError) this.onError(error as Error);
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
111
109
|
}
|
|
112
110
|
|
|
113
|
-
public async
|
|
114
|
-
|
|
115
|
-
return response.data;
|
|
111
|
+
public async get<T = unknown>(url: string): Promise<T> {
|
|
112
|
+
return this.request<T>("GET", url);
|
|
116
113
|
}
|
|
117
114
|
|
|
118
|
-
public async
|
|
119
|
-
|
|
120
|
-
return response.data;
|
|
115
|
+
public async post<T = unknown>(url: string, data?: unknown): Promise<T> {
|
|
116
|
+
return this.request<T>("POST", url, data);
|
|
121
117
|
}
|
|
122
118
|
|
|
123
|
-
public async
|
|
124
|
-
|
|
125
|
-
return response.data;
|
|
119
|
+
public async put<T = unknown>(url: string, data?: unknown): Promise<T> {
|
|
120
|
+
return this.request<T>("PUT", url, data);
|
|
126
121
|
}
|
|
127
122
|
|
|
128
|
-
public async
|
|
129
|
-
|
|
130
|
-
return response.data;
|
|
123
|
+
public async patch<T = unknown>(url: string, data?: unknown): Promise<T> {
|
|
124
|
+
return this.request<T>("PATCH", url, data);
|
|
131
125
|
}
|
|
132
126
|
|
|
133
|
-
public
|
|
134
|
-
return this.
|
|
127
|
+
public async delete<T = unknown>(url: string): Promise<T> {
|
|
128
|
+
return this.request<T>("DELETE", url);
|
|
135
129
|
}
|
|
136
130
|
}
|
package/src/config.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosError } from "axios";
|
|
2
1
|
import type { BlockDefinition } from "./studio/types/index.js";
|
|
3
2
|
|
|
4
3
|
const DEFAULT_BASE_URL = "https://bckstg.app/api";
|
|
@@ -9,7 +8,7 @@ export interface BackstageUserConfig {
|
|
|
9
8
|
baseURL?: string;
|
|
10
9
|
blocks?: BlockDefinition<any>[] | undefined;
|
|
11
10
|
layouts?: any[] | undefined;
|
|
12
|
-
onError?: (error:
|
|
11
|
+
onError?: (error: Error) => void;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
let globalConfig: BackstageUserConfig = {
|