@flexbe/sdk 0.1.3 → 0.1.4

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.
@@ -72,15 +72,15 @@ export class ApiClient {
72
72
  });
73
73
  }
74
74
  get(url, config) {
75
- return this.request(Object.assign(Object.assign({}, config), { method: 'GET', url }));
75
+ return this.request(Object.assign(Object.assign({}, config), { url, method: 'GET' }));
76
76
  }
77
77
  post(url, data, config) {
78
- return this.request(Object.assign(Object.assign({}, config), { method: 'POST', url, body: JSON.stringify(data) }));
78
+ return this.request(Object.assign(Object.assign({}, config), { url, method: 'POST', body: JSON.stringify(data) }));
79
79
  }
80
80
  put(url, data, config) {
81
- return this.request(Object.assign(Object.assign({}, config), { method: 'PUT', url, body: JSON.stringify(data) }));
81
+ return this.request(Object.assign(Object.assign({}, config), { url, method: 'PUT', body: JSON.stringify(data) }));
82
82
  }
83
83
  delete(url, config) {
84
- return this.request(Object.assign(Object.assign({}, config), { method: 'DELETE', url }));
84
+ return this.request(Object.assign(Object.assign({}, config), { url, method: 'DELETE' }));
85
85
  }
86
86
  }
@@ -29,4 +29,22 @@ export class Pages {
29
29
  return response.data;
30
30
  });
31
31
  }
32
+ /**
33
+ * Get list of folders for a site
34
+ */
35
+ getFolders() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const response = yield this.api.get('/sites/:siteId:/pages-folders');
38
+ return response.data;
39
+ });
40
+ }
41
+ /**
42
+ * Get a single folder by ID
43
+ */
44
+ getFolder(folderId) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const response = yield this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
47
+ return response.data;
48
+ });
49
+ }
32
50
  }
@@ -144,6 +144,10 @@ export class TokenManager {
144
144
  catch (error) {
145
145
  console.error('Failed to retrieve token:', error);
146
146
  this.clearToken();
147
+ // Schedule a retry after REFRESH_CHECK_INTERVAL
148
+ setTimeout(() => {
149
+ void this.retrieveToken();
150
+ }, REFRESH_CHECK_INTERVAL);
147
151
  throw error;
148
152
  }
149
153
  });
@@ -71,16 +71,16 @@ class ApiClient {
71
71
  }
72
72
  }
73
73
  get(url, config) {
74
- return this.request({ ...config, method: 'GET', url });
74
+ return this.request({ ...config, url, method: 'GET' });
75
75
  }
76
76
  post(url, data, config) {
77
- return this.request({ ...config, method: 'POST', url, body: JSON.stringify(data) });
77
+ return this.request({ ...config, url, method: 'POST', body: JSON.stringify(data) });
78
78
  }
79
79
  put(url, data, config) {
80
- return this.request({ ...config, method: 'PUT', url, body: JSON.stringify(data) });
80
+ return this.request({ ...config, url, method: 'PUT', body: JSON.stringify(data) });
81
81
  }
82
82
  delete(url, config) {
83
- return this.request({ ...config, method: 'DELETE', url });
83
+ return this.request({ ...config, url, method: 'DELETE' });
84
84
  }
85
85
  }
86
86
  exports.ApiClient = ApiClient;
@@ -19,5 +19,19 @@ class Pages {
19
19
  const response = await this.api.get(`/sites/:siteId:/pages/${pageId}`);
20
20
  return response.data;
21
21
  }
22
+ /**
23
+ * Get list of folders for a site
24
+ */
25
+ async getFolders() {
26
+ const response = await this.api.get('/sites/:siteId:/pages-folders');
27
+ return response.data;
28
+ }
29
+ /**
30
+ * Get a single folder by ID
31
+ */
32
+ async getFolder(folderId) {
33
+ const response = await this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
34
+ return response.data;
35
+ }
22
36
  }
23
37
  exports.Pages = Pages;
@@ -132,6 +132,10 @@ class TokenManager {
132
132
  catch (error) {
133
133
  console.error('Failed to retrieve token:', error);
134
134
  this.clearToken();
135
+ // Schedule a retry after REFRESH_CHECK_INTERVAL
136
+ setTimeout(() => {
137
+ void this.retrieveToken();
138
+ }, REFRESH_CHECK_INTERVAL);
135
139
  throw error;
136
140
  }
137
141
  }
@@ -68,15 +68,15 @@ export class ApiClient {
68
68
  }
69
69
  }
70
70
  get(url, config) {
71
- return this.request({ ...config, method: 'GET', url });
71
+ return this.request({ ...config, url, method: 'GET' });
72
72
  }
73
73
  post(url, data, config) {
74
- return this.request({ ...config, method: 'POST', url, body: JSON.stringify(data) });
74
+ return this.request({ ...config, url, method: 'POST', body: JSON.stringify(data) });
75
75
  }
76
76
  put(url, data, config) {
77
- return this.request({ ...config, method: 'PUT', url, body: JSON.stringify(data) });
77
+ return this.request({ ...config, url, method: 'PUT', body: JSON.stringify(data) });
78
78
  }
79
79
  delete(url, config) {
80
- return this.request({ ...config, method: 'DELETE', url });
80
+ return this.request({ ...config, url, method: 'DELETE' });
81
81
  }
82
82
  }
@@ -16,4 +16,18 @@ export class Pages {
16
16
  const response = await this.api.get(`/sites/:siteId:/pages/${pageId}`);
17
17
  return response.data;
18
18
  }
19
+ /**
20
+ * Get list of folders for a site
21
+ */
22
+ async getFolders() {
23
+ const response = await this.api.get('/sites/:siteId:/pages-folders');
24
+ return response.data;
25
+ }
26
+ /**
27
+ * Get a single folder by ID
28
+ */
29
+ async getFolder(folderId) {
30
+ const response = await this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
31
+ return response.data;
32
+ }
19
33
  }
@@ -129,6 +129,10 @@ export class TokenManager {
129
129
  catch (error) {
130
130
  console.error('Failed to retrieve token:', error);
131
131
  this.clearToken();
132
+ // Schedule a retry after REFRESH_CHECK_INTERVAL
133
+ setTimeout(() => {
134
+ void this.retrieveToken();
135
+ }, REFRESH_CHECK_INTERVAL);
132
136
  throw error;
133
137
  }
134
138
  }
@@ -7,15 +7,15 @@ export declare class ApiClient {
7
7
  private buildUrl;
8
8
  private request;
9
9
  get<T>(url: string, config?: RequestInit & {
10
- params?: Record<string, unknown>;
10
+ params?: object;
11
11
  }): Promise<FlexbeResponse<T>>;
12
12
  post<T>(url: string, data?: unknown, config?: RequestInit & {
13
- params?: Record<string, unknown>;
13
+ params?: object;
14
14
  }): Promise<FlexbeResponse<T>>;
15
15
  put<T>(url: string, data?: unknown, config?: RequestInit & {
16
- params?: Record<string, unknown>;
16
+ params?: object;
17
17
  }): Promise<FlexbeResponse<T>>;
18
18
  delete<T>(url: string, config?: RequestInit & {
19
- params?: Record<string, unknown>;
19
+ params?: object;
20
20
  }): Promise<FlexbeResponse<T>>;
21
21
  }
@@ -1,4 +1,4 @@
1
- import { Page, GetPagesParams, PageListResponse } from '../types/pages';
1
+ import { Page, GetPagesParams, PageListResponse, PageFolder, PageFolderListResponse } from '../types/pages';
2
2
  import { ApiClient } from './api-client';
3
3
  export declare class Pages {
4
4
  private readonly api;
@@ -11,4 +11,12 @@ export declare class Pages {
11
11
  * Get a single page by ID
12
12
  */
13
13
  getPage(pageId: number): Promise<Page>;
14
+ /**
15
+ * Get list of folders for a site
16
+ */
17
+ getFolders(): Promise<PageFolderListResponse>;
18
+ /**
19
+ * Get a single folder by ID
20
+ */
21
+ getFolder(folderId: number): Promise<PageFolder>;
14
22
  }
@@ -32,3 +32,8 @@ export interface JwtToken {
32
32
  export interface TokenResponse {
33
33
  accessToken: string;
34
34
  }
35
+ export interface Pagination {
36
+ limit: number;
37
+ offset: number;
38
+ total: number;
39
+ }
@@ -1,3 +1,4 @@
1
+ import { Pagination } from './index';
1
2
  export declare enum PageType {
2
3
  PAGE = "page",
3
4
  FILE = "file",
@@ -14,28 +15,32 @@ export declare enum PageStatus {
14
15
  }
15
16
  export interface Page {
16
17
  id: number;
17
- siteId: number;
18
18
  type: PageType;
19
19
  uri: string;
20
20
  title: string | null;
21
21
  status: PageStatus;
22
22
  updatedAt?: Date;
23
23
  imgId: number | null;
24
+ folderId: number | null;
24
25
  sortIndex: number;
25
26
  }
26
- export interface GetPagesParams extends Record<string, unknown> {
27
+ export interface GetPagesParams {
27
28
  offset?: number;
28
29
  limit?: number;
29
30
  type?: PageType;
30
31
  status?: PageStatus;
31
32
  search?: string;
32
- }
33
- export interface Pagination {
34
- limit: number;
35
- offset: number;
36
- total: number;
33
+ folderId?: number;
37
34
  }
38
35
  export interface PageListResponse {
39
36
  pages: Page[];
40
37
  pagination: Pagination;
41
38
  }
39
+ export interface PageFolder {
40
+ id: number;
41
+ title: string;
42
+ sortIndex: number;
43
+ }
44
+ export interface PageFolderListResponse {
45
+ folders: PageFolder[];
46
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexbe/sdk",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "TypeScript SDK for Flexbe API",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",