@tidecloak/js 0.13.9 → 0.13.13
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 +18 -503
- package/dist/cjs/lib/tidecloak.js +1 -1
- package/dist/cjs/src/AdminAPI.js +419 -0
- package/dist/cjs/src/AdminAPI.js.map +1 -0
- package/dist/cjs/src/IAMService.js +924 -9
- package/dist/cjs/src/IAMService.js.map +1 -1
- package/dist/cjs/src/index.js +8 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/types.js +5 -0
- package/dist/cjs/src/types.js.map +1 -0
- package/dist/esm/lib/tidecloak.js +1 -1
- package/dist/esm/src/AdminAPI.js +419 -0
- package/dist/esm/src/AdminAPI.js.map +1 -0
- package/dist/esm/src/IAMService.js +924 -9
- package/dist/esm/src/IAMService.js.map +1 -1
- package/dist/esm/src/index.js +8 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/types.js +5 -0
- package/dist/esm/src/types.js.map +1 -0
- package/dist/types/AdminAPI.d.ts +102 -0
- package/dist/types/IAMService.d.ts +160 -6
- package/dist/types/index.d.ts +6 -0
- package/dist/types/lib/tidecloak.d.ts +5 -12
- package/dist/types/src/AdminAPI.d.ts +102 -0
- package/dist/types/src/IAMService.d.ts +160 -6
- package/dist/types/src/index.d.ts +6 -0
- package/dist/types/src/types.d.ts +112 -0
- package/dist/types/types.d.ts +112 -0
- package/package.json +2 -2
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AdminAPI - Keycloak Admin REST API client
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to interact with the Keycloak Admin REST API
|
|
5
|
+
* using the IAMService for authentication.
|
|
6
|
+
*/
|
|
7
|
+
import IAMService from './IAMService.js';
|
|
8
|
+
class AdminAPI {
|
|
9
|
+
constructor(realm) {
|
|
10
|
+
this.realm = realm;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Set the realm for API calls
|
|
14
|
+
*/
|
|
15
|
+
setRealm(realm) {
|
|
16
|
+
this.realm = realm;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the current realm
|
|
20
|
+
*/
|
|
21
|
+
getRealm() {
|
|
22
|
+
if (this.realm)
|
|
23
|
+
return this.realm;
|
|
24
|
+
const config = IAMService.getConfig();
|
|
25
|
+
return (config === null || config === void 0 ? void 0 : config.realm) || 'master';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Make an authenticated fetch request
|
|
29
|
+
*/
|
|
30
|
+
async fetch(endpoint, options = {}) {
|
|
31
|
+
const token = await IAMService.getToken();
|
|
32
|
+
const baseURL = IAMService.getBaseUrl();
|
|
33
|
+
const url = endpoint.startsWith('http') ? endpoint : `${baseURL}${endpoint}`;
|
|
34
|
+
const response = await fetch(url, {
|
|
35
|
+
...options,
|
|
36
|
+
headers: {
|
|
37
|
+
'Content-Type': 'application/json',
|
|
38
|
+
'Authorization': `Bearer ${token}`,
|
|
39
|
+
...options.headers,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
if (!response.ok) {
|
|
43
|
+
const errorText = await response.text().catch(() => '');
|
|
44
|
+
throw new Error(`API error ${response.status}: ${errorText || response.statusText}`);
|
|
45
|
+
}
|
|
46
|
+
const text = await response.text();
|
|
47
|
+
return text ? JSON.parse(text) : null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Make an authenticated fetch request with FormData (no Content-Type header)
|
|
51
|
+
*/
|
|
52
|
+
async fetchWithFormData(endpoint, formData) {
|
|
53
|
+
const token = await IAMService.getToken();
|
|
54
|
+
const baseURL = IAMService.getBaseUrl();
|
|
55
|
+
const url = endpoint.startsWith('http') ? endpoint : `${baseURL}${endpoint}`;
|
|
56
|
+
const response = await fetch(url, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: {
|
|
59
|
+
'Authorization': `Bearer ${token}`,
|
|
60
|
+
},
|
|
61
|
+
body: formData,
|
|
62
|
+
});
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
const errorText = await response.text().catch(() => '');
|
|
65
|
+
throw new Error(`API error ${response.status}: ${errorText || response.statusText}`);
|
|
66
|
+
}
|
|
67
|
+
const text = await response.text();
|
|
68
|
+
return text ? JSON.parse(text) : null;
|
|
69
|
+
}
|
|
70
|
+
// ==========================================================================
|
|
71
|
+
// Roles
|
|
72
|
+
// ==========================================================================
|
|
73
|
+
async getRoles() {
|
|
74
|
+
const realm = this.getRealm();
|
|
75
|
+
return this.fetch(`/admin/realms/${realm}/roles`);
|
|
76
|
+
}
|
|
77
|
+
async getRole(roleName) {
|
|
78
|
+
const realm = this.getRealm();
|
|
79
|
+
return this.fetch(`/admin/realms/${realm}/roles/${encodeURIComponent(roleName)}`);
|
|
80
|
+
}
|
|
81
|
+
async createRole(role) {
|
|
82
|
+
const realm = this.getRealm();
|
|
83
|
+
return this.fetch(`/admin/realms/${realm}/roles`, {
|
|
84
|
+
method: 'POST',
|
|
85
|
+
body: JSON.stringify(role),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async updateRole(roleName, role) {
|
|
89
|
+
const realm = this.getRealm();
|
|
90
|
+
return this.fetch(`/admin/realms/${realm}/roles/${encodeURIComponent(roleName)}`, {
|
|
91
|
+
method: 'PUT',
|
|
92
|
+
body: JSON.stringify(role),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async deleteRole(roleName) {
|
|
96
|
+
const realm = this.getRealm();
|
|
97
|
+
return this.fetch(`/admin/realms/${realm}/roles/${encodeURIComponent(roleName)}`, {
|
|
98
|
+
method: 'DELETE',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// ==========================================================================
|
|
102
|
+
// Client Roles
|
|
103
|
+
// ==========================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Get the client UUID from the client_id (resource) in the config
|
|
106
|
+
*/
|
|
107
|
+
async getClientUUID(clientId) {
|
|
108
|
+
if (!clientId) {
|
|
109
|
+
const config = IAMService.getConfig();
|
|
110
|
+
clientId = (config === null || config === void 0 ? void 0 : config.resource) || (config === null || config === void 0 ? void 0 : config.clientId);
|
|
111
|
+
}
|
|
112
|
+
if (!clientId) {
|
|
113
|
+
throw new Error('No client ID available');
|
|
114
|
+
}
|
|
115
|
+
const realm = this.getRealm();
|
|
116
|
+
const clients = await this.fetch(`/admin/realms/${realm}/clients?clientId=${encodeURIComponent(clientId)}`);
|
|
117
|
+
if (!clients || clients.length === 0) {
|
|
118
|
+
throw new Error(`Client not found: ${clientId}`);
|
|
119
|
+
}
|
|
120
|
+
return clients[0].id;
|
|
121
|
+
}
|
|
122
|
+
async getClientRoles(clientId) {
|
|
123
|
+
const realm = this.getRealm();
|
|
124
|
+
const clientUUID = await this.getClientUUID(clientId);
|
|
125
|
+
return this.fetch(`/admin/realms/${realm}/clients/${clientUUID}/roles`);
|
|
126
|
+
}
|
|
127
|
+
async getClientRole(roleName, clientId) {
|
|
128
|
+
const realm = this.getRealm();
|
|
129
|
+
const clientUUID = await this.getClientUUID(clientId);
|
|
130
|
+
return this.fetch(`/admin/realms/${realm}/clients/${clientUUID}/roles/${encodeURIComponent(roleName)}`);
|
|
131
|
+
}
|
|
132
|
+
async createClientRole(role, clientId) {
|
|
133
|
+
const realm = this.getRealm();
|
|
134
|
+
const clientUUID = await this.getClientUUID(clientId);
|
|
135
|
+
return this.fetch(`/admin/realms/${realm}/clients/${clientUUID}/roles`, {
|
|
136
|
+
method: 'POST',
|
|
137
|
+
body: JSON.stringify(role),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
async updateClientRole(roleName, role, clientId) {
|
|
141
|
+
const realm = this.getRealm();
|
|
142
|
+
const clientUUID = await this.getClientUUID(clientId);
|
|
143
|
+
return this.fetch(`/admin/realms/${realm}/clients/${clientUUID}/roles/${encodeURIComponent(roleName)}`, {
|
|
144
|
+
method: 'PUT',
|
|
145
|
+
body: JSON.stringify(role),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
async deleteClientRole(roleName, clientId) {
|
|
149
|
+
const realm = this.getRealm();
|
|
150
|
+
const clientUUID = await this.getClientUUID(clientId);
|
|
151
|
+
return this.fetch(`/admin/realms/${realm}/clients/${clientUUID}/roles/${encodeURIComponent(roleName)}`, {
|
|
152
|
+
method: 'DELETE',
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
// ==========================================================================
|
|
156
|
+
// Users
|
|
157
|
+
// ==========================================================================
|
|
158
|
+
async getUsers(params = {}) {
|
|
159
|
+
const realm = this.getRealm();
|
|
160
|
+
const query = new URLSearchParams();
|
|
161
|
+
if (params.first !== undefined)
|
|
162
|
+
query.set('first', String(params.first));
|
|
163
|
+
if (params.max !== undefined)
|
|
164
|
+
query.set('max', String(params.max));
|
|
165
|
+
if (params.search)
|
|
166
|
+
query.set('search', params.search);
|
|
167
|
+
const qs = query.toString();
|
|
168
|
+
return this.fetch(`/admin/realms/${realm}/users${qs ? `?${qs}` : ''}`);
|
|
169
|
+
}
|
|
170
|
+
async getUser(userId) {
|
|
171
|
+
const realm = this.getRealm();
|
|
172
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}`);
|
|
173
|
+
}
|
|
174
|
+
async createUser(user) {
|
|
175
|
+
const realm = this.getRealm();
|
|
176
|
+
return this.fetch(`/admin/realms/${realm}/users`, {
|
|
177
|
+
method: 'POST',
|
|
178
|
+
body: JSON.stringify(user),
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
async updateUser(userId, user) {
|
|
182
|
+
const realm = this.getRealm();
|
|
183
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}`, {
|
|
184
|
+
method: 'PUT',
|
|
185
|
+
body: JSON.stringify(user),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
async deleteUser(userId) {
|
|
189
|
+
const realm = this.getRealm();
|
|
190
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}`, {
|
|
191
|
+
method: 'DELETE',
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
async setUserEnabled(userId, enabled) {
|
|
195
|
+
const realm = this.getRealm();
|
|
196
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}`, {
|
|
197
|
+
method: 'PUT',
|
|
198
|
+
body: JSON.stringify({ enabled }),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get a Tide link URL for a user to link their Tide account
|
|
203
|
+
* @param {string} userId - The user ID
|
|
204
|
+
* @param {string} redirectUri - The redirect URI after linking
|
|
205
|
+
* @param {number} [lifespan=43200] - Link lifespan in seconds (default: 12 hours)
|
|
206
|
+
* @returns {Promise<string>} The Tide link URL
|
|
207
|
+
*/
|
|
208
|
+
async getTideLinkUrl(userId, redirectUri, lifespan = 43200) {
|
|
209
|
+
const token = await IAMService.getToken();
|
|
210
|
+
const baseURL = IAMService.getBaseUrl();
|
|
211
|
+
const realm = this.getRealm();
|
|
212
|
+
const config = IAMService.getConfig();
|
|
213
|
+
const clientId = (config === null || config === void 0 ? void 0 : config.resource) || (config === null || config === void 0 ? void 0 : config.clientId);
|
|
214
|
+
const params = new URLSearchParams({
|
|
215
|
+
userId,
|
|
216
|
+
lifespan: String(lifespan),
|
|
217
|
+
redirect_uri: redirectUri,
|
|
218
|
+
client_id: clientId,
|
|
219
|
+
});
|
|
220
|
+
const url = `${baseURL}/admin/realms/${realm}/tideAdminResources/get-required-action-link?${params.toString()}`;
|
|
221
|
+
const response = await fetch(url, {
|
|
222
|
+
method: 'POST',
|
|
223
|
+
headers: {
|
|
224
|
+
'Content-Type': 'application/json',
|
|
225
|
+
'Authorization': `Bearer ${token}`,
|
|
226
|
+
},
|
|
227
|
+
body: JSON.stringify(['link-tide-account-action']),
|
|
228
|
+
});
|
|
229
|
+
if (!response.ok) {
|
|
230
|
+
const errorText = await response.text().catch(() => '');
|
|
231
|
+
throw new Error(`API error ${response.status}: ${errorText || response.statusText}`);
|
|
232
|
+
}
|
|
233
|
+
// Returns the URL as plain text, not JSON
|
|
234
|
+
return response.text();
|
|
235
|
+
}
|
|
236
|
+
// ==========================================================================
|
|
237
|
+
// User Roles
|
|
238
|
+
// ==========================================================================
|
|
239
|
+
async getUserRoles(userId) {
|
|
240
|
+
const realm = this.getRealm();
|
|
241
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}/role-mappings/realm`);
|
|
242
|
+
}
|
|
243
|
+
async addUserRoles(userId, roles) {
|
|
244
|
+
const realm = this.getRealm();
|
|
245
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}/role-mappings/realm`, {
|
|
246
|
+
method: 'POST',
|
|
247
|
+
body: JSON.stringify(roles),
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
async removeUserRoles(userId, roles) {
|
|
251
|
+
const realm = this.getRealm();
|
|
252
|
+
return this.fetch(`/admin/realms/${realm}/users/${userId}/role-mappings/realm`, {
|
|
253
|
+
method: 'DELETE',
|
|
254
|
+
body: JSON.stringify(roles),
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
// ==========================================================================
|
|
258
|
+
// Policy Templates (Tide Admin) - Read only, templates managed elsewhere
|
|
259
|
+
// ==========================================================================
|
|
260
|
+
async getTemplates() {
|
|
261
|
+
const realm = this.getRealm();
|
|
262
|
+
try {
|
|
263
|
+
return await this.fetch(`/admin/realms/${realm}/tide-admin/policy-templates`);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return [];
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// ==========================================================================
|
|
270
|
+
// Change Sets / Approvals (Tide Admin)
|
|
271
|
+
// ==========================================================================
|
|
272
|
+
/**
|
|
273
|
+
* Get pending user change requests
|
|
274
|
+
* @returns {Promise<Array>} Array of user change request objects
|
|
275
|
+
*/
|
|
276
|
+
async getUserChangeRequests() {
|
|
277
|
+
const realm = this.getRealm();
|
|
278
|
+
try {
|
|
279
|
+
const data = await this.fetch(`/admin/realms/${realm}/tide-admin/change-set/users/requests`);
|
|
280
|
+
return (data || []).map(d => ({
|
|
281
|
+
...d,
|
|
282
|
+
changeSetId: d.draftRecordId,
|
|
283
|
+
changeSetType: d.changeSetType,
|
|
284
|
+
actionType: d.actionType,
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return [];
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Get pending role change requests
|
|
293
|
+
* @returns {Promise<Array>} Array of role change request objects
|
|
294
|
+
*/
|
|
295
|
+
async getRoleChangeRequests() {
|
|
296
|
+
const realm = this.getRealm();
|
|
297
|
+
try {
|
|
298
|
+
const data = await this.fetch(`/admin/realms/${realm}/tide-admin/change-set/roles/requests`);
|
|
299
|
+
return (data || []).map(d => ({
|
|
300
|
+
...d,
|
|
301
|
+
changeSetId: d.draftRecordId,
|
|
302
|
+
changeSetType: d.changeSetType,
|
|
303
|
+
actionType: d.actionType,
|
|
304
|
+
}));
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
return [];
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get all pending change sets (users + roles)
|
|
312
|
+
* @deprecated Use getUserChangeRequests() and getRoleChangeRequests() separately
|
|
313
|
+
*/
|
|
314
|
+
async getPendingChangeSets() {
|
|
315
|
+
const [users, roles] = await Promise.all([
|
|
316
|
+
this.getUserChangeRequests(),
|
|
317
|
+
this.getRoleChangeRequests(),
|
|
318
|
+
]);
|
|
319
|
+
return [...users, ...roles];
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Add approval to a change request
|
|
323
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
324
|
+
*/
|
|
325
|
+
async approveChangeSet(changeSet) {
|
|
326
|
+
const realm = this.getRealm();
|
|
327
|
+
const formData = new FormData();
|
|
328
|
+
formData.append('changeSetId', changeSet.changeSetId);
|
|
329
|
+
formData.append('actionType', changeSet.actionType);
|
|
330
|
+
formData.append('changeSetType', changeSet.changeSetType);
|
|
331
|
+
return this.fetchWithFormData(`/admin/realms/${realm}/tideAdminResources/add-review`, formData);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Add rejection to a change request
|
|
335
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
336
|
+
*/
|
|
337
|
+
async rejectChangeSet(changeSet) {
|
|
338
|
+
const realm = this.getRealm();
|
|
339
|
+
const formData = new FormData();
|
|
340
|
+
formData.append('changeSetId', changeSet.changeSetId);
|
|
341
|
+
formData.append('actionType', changeSet.actionType);
|
|
342
|
+
formData.append('changeSetType', changeSet.changeSetType);
|
|
343
|
+
return this.fetchWithFormData(`/admin/realms/${realm}/tideAdminResources/add-rejection`, formData);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Commit a change request
|
|
347
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
348
|
+
*/
|
|
349
|
+
async commitChangeSet(changeSet) {
|
|
350
|
+
const realm = this.getRealm();
|
|
351
|
+
return this.fetch(`/admin/realms/${realm}/tide-admin/change-set/commit`, {
|
|
352
|
+
method: 'POST',
|
|
353
|
+
body: JSON.stringify({
|
|
354
|
+
changeSetId: changeSet.changeSetId,
|
|
355
|
+
actionType: changeSet.actionType,
|
|
356
|
+
changeSetType: changeSet.changeSetType,
|
|
357
|
+
}),
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Cancel a change request
|
|
362
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
363
|
+
*/
|
|
364
|
+
async cancelChangeSet(changeSet) {
|
|
365
|
+
const realm = this.getRealm();
|
|
366
|
+
return this.fetch(`/admin/realms/${realm}/tide-admin/change-set/cancel`, {
|
|
367
|
+
method: 'POST',
|
|
368
|
+
body: JSON.stringify({
|
|
369
|
+
changeSetId: changeSet.changeSetId,
|
|
370
|
+
actionType: changeSet.actionType,
|
|
371
|
+
changeSetType: changeSet.changeSetType,
|
|
372
|
+
}),
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Get raw change set requests for signing
|
|
377
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
378
|
+
* @returns {Promise<Array>} Array of raw change set responses for signing
|
|
379
|
+
*/
|
|
380
|
+
async getRawChangeSetRequest(changeSet) {
|
|
381
|
+
const realm = this.getRealm();
|
|
382
|
+
return this.fetch(`/admin/realms/${realm}/tide-admin/change-set/sign/batch`, {
|
|
383
|
+
method: 'POST',
|
|
384
|
+
body: JSON.stringify({ changeSets: [changeSet] }),
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Add approval with a signed request
|
|
389
|
+
* @param {Object} changeSet - Change set object with changeSetId, actionType, changeSetType
|
|
390
|
+
* @param {string} signedRequest - The signed request string
|
|
391
|
+
*/
|
|
392
|
+
async approveChangeSetWithSignature(changeSet, signedRequest) {
|
|
393
|
+
const realm = this.getRealm();
|
|
394
|
+
const formData = new FormData();
|
|
395
|
+
formData.append('changeSetId', changeSet.changeSetId);
|
|
396
|
+
formData.append('actionType', changeSet.actionType);
|
|
397
|
+
formData.append('changeSetType', changeSet.changeSetType);
|
|
398
|
+
formData.append('requests', signedRequest);
|
|
399
|
+
return this.fetchWithFormData(`/admin/realms/${realm}/tideAdminResources/add-review`, formData);
|
|
400
|
+
}
|
|
401
|
+
// ==========================================================================
|
|
402
|
+
// Logs
|
|
403
|
+
// ==========================================================================
|
|
404
|
+
async getAccessLogs(params = {}) {
|
|
405
|
+
const realm = this.getRealm();
|
|
406
|
+
const query = new URLSearchParams();
|
|
407
|
+
if (params.first !== undefined)
|
|
408
|
+
query.set('first', String(params.first));
|
|
409
|
+
if (params.max !== undefined)
|
|
410
|
+
query.set('max', String(params.max));
|
|
411
|
+
const qs = query.toString();
|
|
412
|
+
return this.fetch(`/admin/realms/${realm}/events${qs ? `?${qs}` : ''}`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
// Export singleton instance
|
|
416
|
+
const adminAPI = new AdminAPI();
|
|
417
|
+
export default adminAPI;
|
|
418
|
+
export { AdminAPI };
|
|
419
|
+
//# sourceMappingURL=AdminAPI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAPI.js","sourceRoot":"","sources":["../../../src/AdminAPI.js"],"names":[],"mappings":"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"}
|