@authup/client-web-kit 1.0.0-beta.21 → 1.0.0-beta.22
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/components/client/AClient.d.ts +1 -1
- package/dist/components/client/AClientForm.d.ts +2 -2
- package/dist/components/client-scope/AClientScope.d.ts +1 -1
- package/dist/components/client-scope/AClientScopeAssignment.d.ts +1 -1
- package/dist/components/identity-provider/AIdentityProvider.d.ts +1 -1
- package/dist/components/identity-provider/AIdentityProviderForm.d.ts.map +1 -1
- package/dist/components/identity-provider/AIdentityProviderLdapForm.d.ts +1 -1
- package/dist/components/identity-provider/AIdentityProviderOAuth2Form.d.ts +1 -1
- package/dist/components/identity-provider/AIdentityProviderPicker.vue.d.ts +56 -0
- package/dist/components/identity-provider/AIdentityProviderPicker.vue.d.ts.map +1 -0
- package/dist/components/identity-provider-role/AIdentityProviderRoleAssignment.d.ts +1 -1
- package/dist/components/permission/APermission.d.ts +1 -1
- package/dist/components/permission/APermissionForm.d.ts +1 -1
- package/dist/components/realm/ARealm.d.ts +1 -1
- package/dist/components/realm/ARealmForm.d.ts +1 -1
- package/dist/components/robot/ARobot.d.ts +1 -1
- package/dist/components/robot/ARobotForm.d.ts +2 -2
- package/dist/components/robot-permission/ARobotPermissionAssignment.d.ts +1 -1
- package/dist/components/robot-role/ARobotRoleAssignment.d.ts +1 -1
- package/dist/components/role/ARole.d.ts +1 -1
- package/dist/components/role/ARoleForm.d.ts +1 -1
- package/dist/components/role-permission/ARolePermissionAssignment.d.ts +1 -1
- package/dist/components/scope/AScope.d.ts +1 -1
- package/dist/components/scope/AScopeForm.d.ts +1 -1
- package/dist/components/user/AUser.d.ts +1 -1
- package/dist/components/user/AUserForm.d.ts +1 -1
- package/dist/components/user-permission/AUserPermissionAssignment.d.ts +1 -1
- package/dist/components/user-role/AUserRoleAssignment.d.ts +1 -1
- package/dist/core/http-client/install.d.ts.map +1 -1
- package/dist/core/list/module.d.ts.map +1 -1
- package/dist/core/store/create.d.ts +14 -13
- package/dist/core/store/create.d.ts.map +1 -1
- package/dist/core/store/dispatcher/constants.d.ts +15 -0
- package/dist/core/store/dispatcher/constants.d.ts.map +1 -0
- package/dist/core/store/dispatcher/index.d.ts +5 -0
- package/dist/core/store/dispatcher/index.d.ts.map +1 -0
- package/dist/core/store/dispatcher/module.d.ts +3 -0
- package/dist/core/store/dispatcher/module.d.ts.map +1 -0
- package/dist/core/store/dispatcher/singleton.d.ts +5 -0
- package/dist/core/store/dispatcher/singleton.d.ts.map +1 -0
- package/dist/core/store/dispatcher/types.d.ts +23 -0
- package/dist/core/store/dispatcher/types.d.ts.map +1 -0
- package/dist/core/store/index.d.ts +1 -0
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/install.d.ts.map +1 -1
- package/dist/core/store/singleton.d.ts +0 -1
- package/dist/core/store/singleton.d.ts.map +1 -1
- package/dist/core/store/types.d.ts +2 -4
- package/dist/core/store/types.d.ts.map +1 -1
- package/dist/index.cjs +385 -209
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +15 -0
- package/dist/index.mjs +383 -210
- package/dist/index.mjs.map +1 -1
- package/package.json +21 -19
- package/dist/components/identity-provider/AIdentityProviderPicker.d.ts +0 -18
- package/dist/components/identity-provider/AIdentityProviderPicker.d.ts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { REALM_MASTER_NAME, DomainEventName, buildDomainChannelName, DomainType, isRealmResourceWritable, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset } from '@authup/core-kit';
|
|
2
|
-
import { hasInjectionContext, inject as inject$2, provide as provide$1, ref, computed, getCurrentScope, onScopeDispose, toRaw, isRef, isReactive, toRef, unref, h, onMounted, onUnmounted, watch, shallowRef, watchEffect, defineComponent, reactive, nextTick, getCurrentInstance, resolveDynamicComponent, mergeProps } from 'vue';
|
|
2
|
+
import { hasInjectionContext, inject as inject$2, provide as provide$1, ref, computed, getCurrentScope, onScopeDispose, toRaw, isRef, isReactive, toRef, unref, h, onMounted, onUnmounted, watch, shallowRef, watchEffect, defineComponent, reactive, nextTick, resolveComponent, openBlock, createElementBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, normalizeClass, withModifiers, toDisplayString, getCurrentInstance, resolveDynamicComponent, mergeProps } from 'vue';
|
|
3
3
|
import { Client, isClientTokenExpiredError, CookieName, ClientResponseErrorTokenHook } from '@authup/core-http-kit';
|
|
4
4
|
import { defineStore, storeToRefs as storeToRefs$1 } from 'pinia';
|
|
5
5
|
import { BuiltInPolicyType, PolicyError, maybeInvertPolicyOutcome, PermissionBindingPolicyValidator, PolicyEngine as PolicyEngine$1, PermissionMemoryProvider, PermissionChecker, TokenError, buildEventFullName, EventNameSuffix, hasOwnProperty, createNanoID, isOAuth2OpenIDProviderMetadata, isObject as isObject$2 } from '@authup/kit';
|
|
@@ -90,6 +90,91 @@ class PolicyEngine extends PolicyEngine$1 {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/*
|
|
94
|
+
* Copyright (c) 2024.
|
|
95
|
+
* Author Peter Placzek (tada5hi)
|
|
96
|
+
* For the full copyright and license information,
|
|
97
|
+
* view the LICENSE file that was distributed with this source code.
|
|
98
|
+
*/ var StoreDispatcherEventName = /*#__PURE__*/ function(StoreDispatcherEventName) {
|
|
99
|
+
StoreDispatcherEventName["LOGGING_IN"] = "loggingIn";
|
|
100
|
+
StoreDispatcherEventName["LOGGED_IN"] = "loggedIn";
|
|
101
|
+
StoreDispatcherEventName["LOGGING_OUT"] = "loggingOut";
|
|
102
|
+
StoreDispatcherEventName["LOGGED_OUT"] = "loggedOut";
|
|
103
|
+
StoreDispatcherEventName["RESOLVING"] = "resolving";
|
|
104
|
+
StoreDispatcherEventName["RESOLVED"] = "resolved";
|
|
105
|
+
StoreDispatcherEventName["ACCESS_TOKEN_UPDATED"] = "accessTokenUpdated";
|
|
106
|
+
StoreDispatcherEventName["ACCESS_TOKEN_EXPIRE_DATE_UPDATED"] = "accessTokenExpireDateUpdated";
|
|
107
|
+
StoreDispatcherEventName["REFRESH_TOKEN_UPDATED"] = "refreshTokenUpdated";
|
|
108
|
+
StoreDispatcherEventName["USER_UPDATED"] = "userUpdated";
|
|
109
|
+
StoreDispatcherEventName["REALM_UPDATED"] = "realmUpdated";
|
|
110
|
+
StoreDispatcherEventName["REALM_MANAGEMENT_UPDATED"] = "realmManagementUpdated";
|
|
111
|
+
return StoreDispatcherEventName;
|
|
112
|
+
}({});
|
|
113
|
+
|
|
114
|
+
// src/event-emitter.ts
|
|
115
|
+
var EventEmitter = class {
|
|
116
|
+
on(type, handler) {
|
|
117
|
+
if (!this.all.has(type)) {
|
|
118
|
+
this.all.set(type, []);
|
|
119
|
+
}
|
|
120
|
+
const handlers = this.all.get(type);
|
|
121
|
+
handlers.push(handler);
|
|
122
|
+
return ()=>handlers.splice(handlers.indexOf(handler) >>> 0, 1);
|
|
123
|
+
}
|
|
124
|
+
off(type, handler) {
|
|
125
|
+
if (!type) {
|
|
126
|
+
return this.all.clear();
|
|
127
|
+
}
|
|
128
|
+
const handlers = this.all.get(type);
|
|
129
|
+
if (handlers) {
|
|
130
|
+
if (handler) {
|
|
131
|
+
handlers.splice(handlers.indexOf(handler) >>> 0, 1);
|
|
132
|
+
} else {
|
|
133
|
+
this.all.delete(type);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Invoke all handlers for the given type.
|
|
139
|
+
* If present, `'*'` handlers are invoked after type-matched handlers.
|
|
140
|
+
*
|
|
141
|
+
* Note: Manually firing `'*'` handlers is not supported.
|
|
142
|
+
*
|
|
143
|
+
* @param type The event type to invoke
|
|
144
|
+
* @param payload Any value to each handler
|
|
145
|
+
*/ emit(type, ...payload) {
|
|
146
|
+
let handlers = this.all.get(type);
|
|
147
|
+
handlers?.slice().map((handler)=>{
|
|
148
|
+
handler(...payload);
|
|
149
|
+
});
|
|
150
|
+
handlers = this.all.get("*");
|
|
151
|
+
if (handlers) {
|
|
152
|
+
handlers.slice().map((handler)=>{
|
|
153
|
+
handler(type, payload);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
constructor(all){
|
|
158
|
+
this.all = all || /* @__PURE__ */ new Map();
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
function createStoreDispatcher() {
|
|
163
|
+
return new EventEmitter();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const sym$1 = Symbol.for('AuthupStoreEventBus');
|
|
167
|
+
function injectStoreDispatcher(app) {
|
|
168
|
+
const instance = inject$1(sym$1, app);
|
|
169
|
+
if (!instance) {
|
|
170
|
+
throw new Error('The store dispatcher has not been injected in the app context.');
|
|
171
|
+
}
|
|
172
|
+
return instance;
|
|
173
|
+
}
|
|
174
|
+
function provideStoreDispatcher(eventBus, app) {
|
|
175
|
+
provide(sym$1, eventBus, app);
|
|
176
|
+
}
|
|
177
|
+
|
|
93
178
|
function createPromiseShareWrapperFn(fn) {
|
|
94
179
|
let promise;
|
|
95
180
|
return (...args)=>{
|
|
@@ -107,41 +192,45 @@ function createPromiseShareWrapperFn(fn) {
|
|
|
107
192
|
return promise;
|
|
108
193
|
};
|
|
109
194
|
}
|
|
110
|
-
function createStore(context
|
|
195
|
+
function createStore(context) {
|
|
111
196
|
const client = new Client({
|
|
112
197
|
baseURL: context.baseURL
|
|
113
198
|
});
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
|
|
199
|
+
const cookiesRead = ref(false);
|
|
200
|
+
const setCookiesRead = (value)=>{
|
|
201
|
+
cookiesRead.value = value;
|
|
117
202
|
};
|
|
118
203
|
// --------------------------------------------------------------------
|
|
119
|
-
const accessToken = ref(
|
|
204
|
+
const accessToken = ref(null);
|
|
120
205
|
const setAccessToken = (input)=>{
|
|
121
206
|
accessToken.value = input;
|
|
207
|
+
context.dispatcher.emit(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, input);
|
|
122
208
|
};
|
|
123
209
|
// --------------------------------------------------------------------
|
|
124
|
-
const accessTokenExpireDate = ref(
|
|
210
|
+
const accessTokenExpireDate = ref(null);
|
|
125
211
|
const setAccessTokenExpireDate = (input)=>{
|
|
126
212
|
if (typeof input === 'number' || typeof input === 'string') {
|
|
127
213
|
accessTokenExpireDate.value = new Date(input); // verify microseconds or seconds
|
|
128
|
-
|
|
214
|
+
} else {
|
|
215
|
+
accessTokenExpireDate.value = input;
|
|
129
216
|
}
|
|
130
|
-
accessTokenExpireDate.value
|
|
217
|
+
context.dispatcher.emit(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, accessTokenExpireDate.value);
|
|
131
218
|
};
|
|
132
219
|
// --------------------------------------------------------------------
|
|
133
|
-
const refreshToken = ref(
|
|
220
|
+
const refreshToken = ref(null);
|
|
134
221
|
const setRefreshToken = (input)=>{
|
|
135
222
|
refreshToken.value = input;
|
|
223
|
+
context.dispatcher.emit(StoreDispatcherEventName.REFRESH_TOKEN_UPDATED, input);
|
|
136
224
|
};
|
|
137
225
|
// --------------------------------------------------------------------
|
|
138
|
-
const user = ref(
|
|
139
|
-
const userId = computed(()=>user.value ? user.value.id :
|
|
140
|
-
const setUser = (
|
|
141
|
-
user.value =
|
|
226
|
+
const user = ref(null);
|
|
227
|
+
const userId = computed(()=>user.value ? user.value.id : null);
|
|
228
|
+
const setUser = (input)=>{
|
|
229
|
+
user.value = input;
|
|
230
|
+
context.dispatcher.emit(StoreDispatcherEventName.USER_UPDATED, input);
|
|
142
231
|
};
|
|
143
232
|
// --------------------------------------------------------------------
|
|
144
|
-
const realm = ref(
|
|
233
|
+
const realm = ref(null);
|
|
145
234
|
const realmId = computed(()=>realm.value ? realm.value.id : undefined);
|
|
146
235
|
const realmName = computed(()=>realm.value ? realm.value.name : undefined);
|
|
147
236
|
const realmIsRoot = computed(()=>{
|
|
@@ -150,14 +239,16 @@ function createStore(context = {}) {
|
|
|
150
239
|
}
|
|
151
240
|
return false;
|
|
152
241
|
});
|
|
153
|
-
const setRealm = (
|
|
154
|
-
realm.value =
|
|
242
|
+
const setRealm = (input)=>{
|
|
243
|
+
realm.value = input;
|
|
244
|
+
context.dispatcher.emit(StoreDispatcherEventName.REALM_UPDATED, input);
|
|
155
245
|
};
|
|
156
|
-
const realmManagement = ref(
|
|
246
|
+
const realmManagement = ref(null);
|
|
157
247
|
const realmManagementId = computed(()=>realmManagement.value ? realmManagement.value.id : realmId.value);
|
|
158
248
|
const realmManagementName = computed(()=>realmManagement.value ? realmManagement.value.name : realmName.value);
|
|
159
|
-
const setRealmManagement = (
|
|
160
|
-
realmManagement.value =
|
|
249
|
+
const setRealmManagement = (input)=>{
|
|
250
|
+
realmManagement.value = input;
|
|
251
|
+
context.dispatcher.emit(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, input);
|
|
161
252
|
};
|
|
162
253
|
// --------------------------------------------------------------------
|
|
163
254
|
const permissionRepository = new PermissionMemoryProvider();
|
|
@@ -210,11 +301,15 @@ function createStore(context = {}) {
|
|
|
210
301
|
});
|
|
211
302
|
};
|
|
212
303
|
// --------------------------------------------------------------------
|
|
213
|
-
const
|
|
304
|
+
const applyTokenGrantResponse = (response)=>{
|
|
214
305
|
const expireDate = new Date(Date.now() + response.expires_in * 1000);
|
|
215
306
|
setAccessTokenExpireDate(expireDate);
|
|
216
307
|
setAccessToken(response.access_token);
|
|
217
|
-
|
|
308
|
+
if (response.refresh_token) {
|
|
309
|
+
setRefreshToken(response.refresh_token);
|
|
310
|
+
} else {
|
|
311
|
+
setRefreshToken(null);
|
|
312
|
+
}
|
|
218
313
|
};
|
|
219
314
|
// --------------------------------------------------------------------
|
|
220
315
|
const refreshSession = createPromiseShareWrapperFn(async ()=>{
|
|
@@ -223,8 +318,8 @@ function createStore(context = {}) {
|
|
|
223
318
|
}
|
|
224
319
|
return client.token.createWithRefreshToken({
|
|
225
320
|
refresh_token: refreshToken.value
|
|
226
|
-
}).then((r)=>
|
|
227
|
-
|
|
321
|
+
}).then((r)=>applyTokenGrantResponse(r)).catch((e)=>{
|
|
322
|
+
reset();
|
|
228
323
|
return Promise.reject(e);
|
|
229
324
|
}).finally(()=>{
|
|
230
325
|
tokenResolved.value = false;
|
|
@@ -233,6 +328,7 @@ function createStore(context = {}) {
|
|
|
233
328
|
});
|
|
234
329
|
// --------------------------------------------------------------------
|
|
235
330
|
const resolveInternal = async ()=>{
|
|
331
|
+
context.dispatcher.emit(StoreDispatcherEventName.RESOLVING);
|
|
236
332
|
try {
|
|
237
333
|
if (!accessToken.value && refreshToken.value) {
|
|
238
334
|
await refreshSession();
|
|
@@ -250,45 +346,72 @@ function createStore(context = {}) {
|
|
|
250
346
|
}
|
|
251
347
|
throw e;
|
|
252
348
|
}
|
|
349
|
+
context.dispatcher.emit(StoreDispatcherEventName.RESOLVED);
|
|
253
350
|
return Promise.resolve();
|
|
254
351
|
};
|
|
255
352
|
const resolve = createPromiseShareWrapperFn(resolveInternal);
|
|
256
353
|
const loggedIn = computed(()=>!!accessToken.value);
|
|
257
354
|
const login = async (ctx)=>{
|
|
355
|
+
context.dispatcher.emit(StoreDispatcherEventName.LOGGING_IN);
|
|
356
|
+
const response = await client.token.createWithPasswordGrant({
|
|
357
|
+
username: ctx.name,
|
|
358
|
+
password: ctx.password,
|
|
359
|
+
...realmId.value ? {
|
|
360
|
+
realm_id: ctx.realmId
|
|
361
|
+
} : {}
|
|
362
|
+
});
|
|
363
|
+
applyTokenGrantResponse(response);
|
|
258
364
|
try {
|
|
259
|
-
const response = await client.token.createWithPasswordGrant({
|
|
260
|
-
username: ctx.name,
|
|
261
|
-
password: ctx.password,
|
|
262
|
-
...realmId.value ? {
|
|
263
|
-
realm_id: ctx.realmId
|
|
264
|
-
} : {}
|
|
265
|
-
});
|
|
266
|
-
handleTokenGrantResponse(response);
|
|
267
365
|
await resolve();
|
|
268
366
|
} catch (e) {
|
|
269
|
-
logout();
|
|
367
|
+
await logout();
|
|
270
368
|
throw e;
|
|
271
369
|
}
|
|
370
|
+
context.dispatcher.emit(StoreDispatcherEventName.LOGGED_IN);
|
|
272
371
|
};
|
|
273
|
-
const
|
|
274
|
-
setAccessToken(
|
|
275
|
-
setAccessTokenExpireDate(
|
|
276
|
-
setRefreshToken(
|
|
277
|
-
setUser(
|
|
278
|
-
setRealm(
|
|
279
|
-
setRealmManagement(
|
|
372
|
+
const reset = ()=>{
|
|
373
|
+
setAccessToken(null);
|
|
374
|
+
setAccessTokenExpireDate(null);
|
|
375
|
+
setRefreshToken(null);
|
|
376
|
+
setUser(null);
|
|
377
|
+
setRealm(null);
|
|
378
|
+
setRealmManagement(null);
|
|
379
|
+
permissionRepository.setMany([]);
|
|
280
380
|
tokenResolved.value = false;
|
|
281
381
|
userResolved.value = false;
|
|
282
382
|
};
|
|
383
|
+
const logout = async ()=>{
|
|
384
|
+
context.dispatcher.emit(StoreDispatcherEventName.LOGGING_OUT);
|
|
385
|
+
try {
|
|
386
|
+
if (accessToken.value) {
|
|
387
|
+
await client.token.revoke({
|
|
388
|
+
token: accessToken.value
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
} catch (e) {
|
|
392
|
+
// ...
|
|
393
|
+
}
|
|
394
|
+
try {
|
|
395
|
+
if (refreshToken.value) {
|
|
396
|
+
await client.token.revoke({
|
|
397
|
+
token: refreshToken.value
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
} catch (e) {
|
|
401
|
+
// ...
|
|
402
|
+
}
|
|
403
|
+
reset();
|
|
404
|
+
context.dispatcher.emit(StoreDispatcherEventName.LOGGED_OUT);
|
|
405
|
+
};
|
|
283
406
|
return {
|
|
284
|
-
|
|
285
|
-
|
|
407
|
+
cookiesRead,
|
|
408
|
+
setCookiesRead,
|
|
286
409
|
permissionChecker,
|
|
287
410
|
login,
|
|
288
411
|
logout,
|
|
289
412
|
loggedIn,
|
|
290
413
|
resolve,
|
|
291
|
-
|
|
414
|
+
applyTokenGrantResponse,
|
|
292
415
|
accessToken,
|
|
293
416
|
setAccessToken,
|
|
294
417
|
accessTokenExpireDate,
|
|
@@ -375,7 +498,7 @@ function shouldUpdate(dependencies, newCookies, oldCookies) {
|
|
|
375
498
|
return false;
|
|
376
499
|
}
|
|
377
500
|
|
|
378
|
-
const
|
|
501
|
+
const sym = Symbol.for('AuthupStore');
|
|
379
502
|
function useStore(pinia, app) {
|
|
380
503
|
const instance = injectStoreFactory(app);
|
|
381
504
|
if (!instance) {
|
|
@@ -384,25 +507,28 @@ function useStore(pinia, app) {
|
|
|
384
507
|
return instance(pinia);
|
|
385
508
|
}
|
|
386
509
|
function injectStoreFactory(app) {
|
|
387
|
-
const instance = inject$1(
|
|
510
|
+
const instance = inject$1(sym, app);
|
|
388
511
|
if (!instance) {
|
|
389
512
|
throw new Error('The store factory has not been injected in the app context.');
|
|
390
513
|
}
|
|
391
514
|
return instance;
|
|
392
515
|
}
|
|
393
516
|
function hasStoreFactory(app) {
|
|
394
|
-
return !!inject$1(
|
|
517
|
+
return !!inject$1(sym, app);
|
|
395
518
|
}
|
|
396
519
|
function provideStoreFactory(store, app) {
|
|
397
|
-
provide(
|
|
520
|
+
provide(sym, store, app);
|
|
398
521
|
}
|
|
399
522
|
|
|
400
523
|
function installStore(app, options = {}) {
|
|
401
524
|
if (hasStoreFactory(app)) {
|
|
402
525
|
return;
|
|
403
526
|
}
|
|
527
|
+
const storeDispatcher = createStoreDispatcher();
|
|
528
|
+
provideStoreDispatcher(storeDispatcher, app);
|
|
404
529
|
const storeFactory = defineStore(STORE_ID, ()=>createStore({
|
|
405
|
-
baseURL: options.baseURL
|
|
530
|
+
baseURL: options.baseURL,
|
|
531
|
+
dispatcher: storeDispatcher
|
|
406
532
|
}));
|
|
407
533
|
const store = storeFactory(options.pinia);
|
|
408
534
|
let cookieGet;
|
|
@@ -430,11 +556,11 @@ function installStore(app, options = {}) {
|
|
|
430
556
|
const cookies = useCookies();
|
|
431
557
|
cookieUnset = cookies.remove;
|
|
432
558
|
}
|
|
433
|
-
const
|
|
434
|
-
if (store.
|
|
559
|
+
const readCookies = ()=>{
|
|
560
|
+
if (store.cookiesRead) {
|
|
435
561
|
return;
|
|
436
562
|
}
|
|
437
|
-
store.
|
|
563
|
+
store.setCookiesRead(true);
|
|
438
564
|
const keys = Object.values(CookieName);
|
|
439
565
|
let value;
|
|
440
566
|
for(let i = 0; i < keys.length; i++){
|
|
@@ -476,51 +602,60 @@ function installStore(app, options = {}) {
|
|
|
476
602
|
}
|
|
477
603
|
}
|
|
478
604
|
};
|
|
479
|
-
|
|
480
|
-
if (
|
|
481
|
-
return;
|
|
605
|
+
const maxAgeFn = ()=>{
|
|
606
|
+
if (!store.accessTokenExpireDate) {
|
|
607
|
+
return undefined;
|
|
482
608
|
}
|
|
483
|
-
|
|
484
|
-
|
|
609
|
+
return Math.floor(Math.max(1000, new Date(`${store.accessTokenExpireDate}`).getTime() - Date.now()) / 1000);
|
|
610
|
+
};
|
|
611
|
+
storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, (input)=>{
|
|
612
|
+
if (input) {
|
|
613
|
+
cookieSet(CookieName.ACCESS_TOKEN_EXPIRE_DATE, input, {
|
|
614
|
+
maxAge: maxAgeFn()
|
|
615
|
+
});
|
|
616
|
+
} else {
|
|
485
617
|
cookieUnset(CookieName.ACCESS_TOKEN_EXPIRE_DATE, {});
|
|
486
|
-
cookieUnset(CookieName.REFRESH_TOKEN, {});
|
|
487
|
-
cookieUnset(CookieName.USER, {});
|
|
488
|
-
cookieUnset(CookieName.REALM, {});
|
|
489
|
-
cookieUnset(CookieName.REALM_MANAGEMENT, {});
|
|
490
618
|
}
|
|
491
619
|
});
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
}
|
|
497
|
-
let maxAge;
|
|
498
|
-
if (state.accessTokenExpireDate) {
|
|
499
|
-
maxAge = Math.floor(Math.max(1000, new Date(`${state.accessTokenExpireDate}`).getTime() - Date.now()) / 1000);
|
|
500
|
-
}
|
|
501
|
-
if (state.accessToken) {
|
|
502
|
-
cookieSet(CookieName.ACCESS_TOKEN, state.accessToken, {
|
|
503
|
-
maxAge
|
|
504
|
-
});
|
|
505
|
-
}
|
|
506
|
-
if (state.accessTokenExpireDate) {
|
|
507
|
-
cookieSet(CookieName.ACCESS_TOKEN_EXPIRE_DATE, state.accessTokenExpireDate, {
|
|
620
|
+
storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, (input)=>{
|
|
621
|
+
if (input) {
|
|
622
|
+
const maxAge = maxAgeFn();
|
|
623
|
+
cookieSet(CookieName.ACCESS_TOKEN, input, {
|
|
508
624
|
maxAge
|
|
509
625
|
});
|
|
626
|
+
} else {
|
|
627
|
+
cookieUnset(CookieName.ACCESS_TOKEN, {});
|
|
510
628
|
}
|
|
511
|
-
|
|
512
|
-
|
|
629
|
+
});
|
|
630
|
+
storeDispatcher.on(StoreDispatcherEventName.REFRESH_TOKEN_UPDATED, (input)=>{
|
|
631
|
+
if (input) {
|
|
632
|
+
cookieSet(CookieName.REFRESH_TOKEN, input, {});
|
|
633
|
+
} else {
|
|
634
|
+
cookieUnset(CookieName.REFRESH_TOKEN, {});
|
|
513
635
|
}
|
|
514
|
-
|
|
515
|
-
|
|
636
|
+
});
|
|
637
|
+
storeDispatcher.on(StoreDispatcherEventName.USER_UPDATED, (input)=>{
|
|
638
|
+
if (input) {
|
|
639
|
+
cookieSet(CookieName.USER, input, {});
|
|
640
|
+
} else {
|
|
641
|
+
cookieUnset(CookieName.USER, {});
|
|
516
642
|
}
|
|
517
|
-
|
|
518
|
-
|
|
643
|
+
});
|
|
644
|
+
storeDispatcher.on(StoreDispatcherEventName.REALM_UPDATED, (input)=>{
|
|
645
|
+
if (input) {
|
|
646
|
+
cookieSet(CookieName.REALM, input, {});
|
|
647
|
+
} else {
|
|
648
|
+
cookieUnset(CookieName.REALM, {});
|
|
519
649
|
}
|
|
520
|
-
|
|
521
|
-
|
|
650
|
+
});
|
|
651
|
+
storeDispatcher.on(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, (input)=>{
|
|
652
|
+
if (input) {
|
|
653
|
+
cookieSet(CookieName.REALM_MANAGEMENT, input, {});
|
|
654
|
+
} else {
|
|
655
|
+
cookieUnset(CookieName.REALM_MANAGEMENT, {});
|
|
522
656
|
}
|
|
523
657
|
});
|
|
658
|
+
readCookies();
|
|
524
659
|
provideStoreFactory(storeFactory, app);
|
|
525
660
|
}
|
|
526
661
|
|
|
@@ -558,30 +693,36 @@ function installHTTPClient(app, options = {}) {
|
|
|
558
693
|
});
|
|
559
694
|
},
|
|
560
695
|
tokenCreated: (response)=>{
|
|
561
|
-
store.
|
|
696
|
+
store.applyTokenGrantResponse(response);
|
|
562
697
|
},
|
|
563
698
|
tokenFailed: ()=>{
|
|
564
|
-
store.logout();
|
|
699
|
+
Promise.resolve().then(()=>store.logout());
|
|
565
700
|
},
|
|
566
701
|
timer: !options.isServer
|
|
567
702
|
});
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
if (
|
|
703
|
+
const storeDispatcher = injectStoreDispatcher(app);
|
|
704
|
+
const handleAccessTokenEvent = ()=>{
|
|
705
|
+
if (store.accessToken) {
|
|
571
706
|
client.setAuthorizationHeader({
|
|
572
707
|
type: 'Bearer',
|
|
573
|
-
token:
|
|
708
|
+
token: store.accessToken
|
|
574
709
|
});
|
|
575
710
|
tokenHook.mount();
|
|
576
711
|
} else {
|
|
577
712
|
client.unsetAuthorizationHeader();
|
|
578
713
|
tokenHook.unmount();
|
|
579
714
|
}
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
715
|
+
};
|
|
716
|
+
const handleAccessTokenExpireDateEvent = ()=>{
|
|
717
|
+
if (store.accessTokenExpireDate) {
|
|
718
|
+
const expiresIn = Math.floor((store.accessTokenExpireDate.getTime() - Date.now()) / 1000);
|
|
719
|
+
tokenHook.setTimer(expiresIn, ()=>refreshToken.value || undefined);
|
|
583
720
|
}
|
|
584
|
-
}
|
|
721
|
+
};
|
|
722
|
+
storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, ()=>handleAccessTokenEvent());
|
|
723
|
+
storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, ()=>handleAccessTokenExpireDateEvent());
|
|
724
|
+
handleAccessTokenEvent();
|
|
725
|
+
handleAccessTokenExpireDateEvent();
|
|
585
726
|
provideHTTPClient(client, app);
|
|
586
727
|
}
|
|
587
728
|
|
|
@@ -1036,7 +1177,7 @@ function createList(context) {
|
|
|
1036
1177
|
}
|
|
1037
1178
|
}
|
|
1038
1179
|
const handleCreated = buildListCreatedHandler(data, (cbEntity)=>{
|
|
1039
|
-
total.value
|
|
1180
|
+
total.value++;
|
|
1040
1181
|
if (context.onCreated) {
|
|
1041
1182
|
context.onCreated(cbEntity, meta.value);
|
|
1042
1183
|
}
|
|
@@ -1069,7 +1210,7 @@ function createList(context) {
|
|
|
1069
1210
|
noMore: renderOptions.noMore,
|
|
1070
1211
|
body: renderOptions.body,
|
|
1071
1212
|
loading: renderOptions.loading,
|
|
1072
|
-
total,
|
|
1213
|
+
total: total.value,
|
|
1073
1214
|
load,
|
|
1074
1215
|
busy: busy.value,
|
|
1075
1216
|
data: data.value,
|
|
@@ -1078,16 +1219,19 @@ function createList(context) {
|
|
|
1078
1219
|
if (context.setup.emit) {
|
|
1079
1220
|
context.setup.emit('created', value);
|
|
1080
1221
|
}
|
|
1222
|
+
handleCreated(value);
|
|
1081
1223
|
},
|
|
1082
1224
|
onDeleted: (value)=>{
|
|
1083
1225
|
if (context.setup.emit) {
|
|
1084
1226
|
context.setup.emit('deleted', value);
|
|
1085
1227
|
}
|
|
1228
|
+
handleDeleted(value);
|
|
1086
1229
|
},
|
|
1087
1230
|
onUpdated: (value)=>{
|
|
1088
1231
|
if (context.setup.emit) {
|
|
1089
1232
|
context.setup.emit('updated', value);
|
|
1090
1233
|
}
|
|
1234
|
+
handleUpdated(value);
|
|
1091
1235
|
},
|
|
1092
1236
|
slotItems: context.setup.slots || {}
|
|
1093
1237
|
});
|
|
@@ -4067,7 +4211,11 @@ const AIdentityProviderPreset = defineComponent({
|
|
|
4067
4211
|
}
|
|
4068
4212
|
});
|
|
4069
4213
|
|
|
4070
|
-
|
|
4214
|
+
var _sfc_main = defineComponent({
|
|
4215
|
+
components: {
|
|
4216
|
+
AIdentityProviderPreset,
|
|
4217
|
+
AIdentityProviderProtocol
|
|
4218
|
+
},
|
|
4071
4219
|
props: {
|
|
4072
4220
|
protocol: {
|
|
4073
4221
|
type: String
|
|
@@ -4080,113 +4228,139 @@ const AIdentityProviderPicker = defineComponent({
|
|
|
4080
4228
|
'pick'
|
|
4081
4229
|
],
|
|
4082
4230
|
setup (props, setup) {
|
|
4083
|
-
const protocols =
|
|
4084
|
-
const presets =
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
id
|
|
4088
|
-
});
|
|
4089
|
-
return id;
|
|
4090
|
-
});
|
|
4091
|
-
Object.values(IdentityProviderPreset).map((id)=>{
|
|
4092
|
-
presets.push({
|
|
4093
|
-
id
|
|
4094
|
-
});
|
|
4095
|
-
return id;
|
|
4096
|
-
});
|
|
4097
|
-
const pick = (ctx)=>{
|
|
4098
|
-
setup.emit('pick', ctx);
|
|
4231
|
+
const protocols = Object.values(IdentityProviderProtocol);
|
|
4232
|
+
const presets = Object.values(IdentityProviderPreset);
|
|
4233
|
+
const pickProtocol = (protocol)=>{
|
|
4234
|
+
setup.emit('pick', 'protocol', protocol);
|
|
4099
4235
|
};
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
item: {
|
|
4109
|
-
class: [
|
|
4110
|
-
'me-1 list-item'
|
|
4111
|
-
],
|
|
4112
|
-
icon: false,
|
|
4113
|
-
content: (item)=>h(AIdentityProviderProtocol, {
|
|
4114
|
-
id: item.id
|
|
4115
|
-
}, {
|
|
4116
|
-
default: (element)=>[
|
|
4117
|
-
h('i', {
|
|
4118
|
-
class: [
|
|
4119
|
-
element.icon,
|
|
4120
|
-
'pe-1'
|
|
4121
|
-
]
|
|
4122
|
-
}),
|
|
4123
|
-
element.name,
|
|
4124
|
-
h('button', {
|
|
4125
|
-
class: 'btn btn-xs btn-dark ms-1',
|
|
4126
|
-
onClick ($event) {
|
|
4127
|
-
$event.preventDefault();
|
|
4128
|
-
pick({
|
|
4129
|
-
protocol: item.id
|
|
4130
|
-
});
|
|
4131
|
-
}
|
|
4132
|
-
}, [
|
|
4133
|
-
h('i', {
|
|
4134
|
-
class: 'fa fa-plus'
|
|
4135
|
-
})
|
|
4136
|
-
])
|
|
4137
|
-
]
|
|
4138
|
-
})
|
|
4139
|
-
}
|
|
4140
|
-
}
|
|
4141
|
-
});
|
|
4142
|
-
const protocolNodeConfigurationNode = buildList({
|
|
4143
|
-
data: presets,
|
|
4144
|
-
header: {
|
|
4145
|
-
content: h('h6', 'Presets')
|
|
4146
|
-
},
|
|
4147
|
-
body: {
|
|
4148
|
-
class: 'd-flex flex-row',
|
|
4149
|
-
item: {
|
|
4150
|
-
class: 'me-1 list-item',
|
|
4151
|
-
icon: false,
|
|
4152
|
-
content: (preset)=>h(AIdentityProviderPreset, {
|
|
4153
|
-
id: preset.id
|
|
4154
|
-
}, {
|
|
4155
|
-
default: (item)=>h('div', [
|
|
4156
|
-
h('i', {
|
|
4157
|
-
class: [
|
|
4158
|
-
item.icon,
|
|
4159
|
-
'pe-1'
|
|
4160
|
-
]
|
|
4161
|
-
}),
|
|
4162
|
-
item.name,
|
|
4163
|
-
h('button', {
|
|
4164
|
-
class: 'btn btn-xs btn-dark ms-1',
|
|
4165
|
-
onClick ($event) {
|
|
4166
|
-
$event.preventDefault();
|
|
4167
|
-
pick({
|
|
4168
|
-
preset: preset.id,
|
|
4169
|
-
protocol: getIdentityProviderProtocolForPreset(preset.id)
|
|
4170
|
-
});
|
|
4171
|
-
}
|
|
4172
|
-
}, [
|
|
4173
|
-
h('i', {
|
|
4174
|
-
class: 'fa fa-plus'
|
|
4175
|
-
})
|
|
4176
|
-
])
|
|
4177
|
-
])
|
|
4178
|
-
})
|
|
4179
|
-
}
|
|
4180
|
-
}
|
|
4181
|
-
});
|
|
4182
|
-
return [
|
|
4183
|
-
protocolNode,
|
|
4184
|
-
protocolNodeConfigurationNode
|
|
4185
|
-
];
|
|
4236
|
+
const pickPreset = (preset)=>{
|
|
4237
|
+
setup.emit('pick', 'preset', preset);
|
|
4238
|
+
};
|
|
4239
|
+
return {
|
|
4240
|
+
protocols,
|
|
4241
|
+
presets,
|
|
4242
|
+
pickProtocol,
|
|
4243
|
+
pickPreset
|
|
4186
4244
|
};
|
|
4187
4245
|
}
|
|
4188
4246
|
});
|
|
4189
4247
|
|
|
4248
|
+
var _export_sfc = (sfc, props) => {
|
|
4249
|
+
const target = sfc.__vccOpts || sfc;
|
|
4250
|
+
for (const [key, val] of props) {
|
|
4251
|
+
target[key] = val;
|
|
4252
|
+
}
|
|
4253
|
+
return target;
|
|
4254
|
+
};
|
|
4255
|
+
|
|
4256
|
+
const _hoisted_1 = {
|
|
4257
|
+
class: "d-flex flex-column gap-2"
|
|
4258
|
+
};
|
|
4259
|
+
const _hoisted_2 = {
|
|
4260
|
+
class: "d-flex flex-row gap-2 flex-wrap"
|
|
4261
|
+
};
|
|
4262
|
+
const _hoisted_3 = [
|
|
4263
|
+
"onClick"
|
|
4264
|
+
];
|
|
4265
|
+
const _hoisted_4 = {
|
|
4266
|
+
class: "d-flex flex-row gap-2 flex-wrap"
|
|
4267
|
+
};
|
|
4268
|
+
const _hoisted_5 = [
|
|
4269
|
+
"onClick"
|
|
4270
|
+
];
|
|
4271
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
4272
|
+
const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
|
|
4273
|
+
const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
|
|
4274
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
4275
|
+
createElementVNode("div", null, [
|
|
4276
|
+
_cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)),
|
|
4277
|
+
createElementVNode("div", _hoisted_2, [
|
|
4278
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key)=>{
|
|
4279
|
+
return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
|
|
4280
|
+
key,
|
|
4281
|
+
id: item
|
|
4282
|
+
}, {
|
|
4283
|
+
default: withCtx((props)=>[
|
|
4284
|
+
createElementVNode("div", {
|
|
4285
|
+
class: normalizeClass([
|
|
4286
|
+
{
|
|
4287
|
+
"active": item === _ctx.protocol && !_ctx.preset
|
|
4288
|
+
},
|
|
4289
|
+
"d-flex flex-column gap-1 text-center identity-provider-picker-item"
|
|
4290
|
+
]),
|
|
4291
|
+
onClick: withModifiers(($event)=>_ctx.pickProtocol(item), [
|
|
4292
|
+
"prevent"
|
|
4293
|
+
])
|
|
4294
|
+
}, [
|
|
4295
|
+
createElementVNode("div", null, [
|
|
4296
|
+
createElementVNode("i", {
|
|
4297
|
+
class: normalizeClass([
|
|
4298
|
+
"fa-2x",
|
|
4299
|
+
props.icon
|
|
4300
|
+
])
|
|
4301
|
+
}, null, 2)
|
|
4302
|
+
]),
|
|
4303
|
+
createElementVNode("div", null, toDisplayString(props.name), 1)
|
|
4304
|
+
], 10, _hoisted_3)
|
|
4305
|
+
]),
|
|
4306
|
+
_: 2
|
|
4307
|
+
}, 1032, [
|
|
4308
|
+
"id"
|
|
4309
|
+
]);
|
|
4310
|
+
}), 128))
|
|
4311
|
+
])
|
|
4312
|
+
]),
|
|
4313
|
+
createElementVNode("div", null, [
|
|
4314
|
+
_cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)),
|
|
4315
|
+
createElementVNode("div", _hoisted_4, [
|
|
4316
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key)=>{
|
|
4317
|
+
return openBlock(), createBlock(_component_AIdentityProviderPreset, {
|
|
4318
|
+
key,
|
|
4319
|
+
id: item
|
|
4320
|
+
}, {
|
|
4321
|
+
default: withCtx((props)=>[
|
|
4322
|
+
createElementVNode("div", {
|
|
4323
|
+
class: normalizeClass([
|
|
4324
|
+
{
|
|
4325
|
+
"active": item === _ctx.preset
|
|
4326
|
+
},
|
|
4327
|
+
"d-flex flex-column gap-1 text-center identity-provider-picker-item"
|
|
4328
|
+
]),
|
|
4329
|
+
onClick: withModifiers(($event)=>_ctx.pickPreset(item), [
|
|
4330
|
+
"prevent"
|
|
4331
|
+
])
|
|
4332
|
+
}, [
|
|
4333
|
+
createElementVNode("div", null, [
|
|
4334
|
+
createElementVNode("i", {
|
|
4335
|
+
class: normalizeClass([
|
|
4336
|
+
"fa-2x",
|
|
4337
|
+
props.icon
|
|
4338
|
+
])
|
|
4339
|
+
}, null, 2)
|
|
4340
|
+
]),
|
|
4341
|
+
createElementVNode("div", null, toDisplayString(props.name), 1)
|
|
4342
|
+
], 10, _hoisted_5)
|
|
4343
|
+
]),
|
|
4344
|
+
_: 2
|
|
4345
|
+
}, 1032, [
|
|
4346
|
+
"id"
|
|
4347
|
+
]);
|
|
4348
|
+
}), 128))
|
|
4349
|
+
])
|
|
4350
|
+
])
|
|
4351
|
+
]);
|
|
4352
|
+
}
|
|
4353
|
+
var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main, [
|
|
4354
|
+
[
|
|
4355
|
+
"render",
|
|
4356
|
+
_sfc_render
|
|
4357
|
+
],
|
|
4358
|
+
[
|
|
4359
|
+
"__scopeId",
|
|
4360
|
+
"data-v-0df1e731"
|
|
4361
|
+
]
|
|
4362
|
+
]);
|
|
4363
|
+
|
|
4190
4364
|
const AIdentityProviderOAuth2ClientFields = defineComponent({
|
|
4191
4365
|
props: {
|
|
4192
4366
|
entity: {
|
|
@@ -4724,17 +4898,16 @@ const AIdentityProviderForm = defineComponent({
|
|
|
4724
4898
|
set();
|
|
4725
4899
|
onChange(updatedAt, ()=>set());
|
|
4726
4900
|
const renderPicker = ()=>h(AIdentityProviderPicker, {
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
preset.value = value.preset;
|
|
4735
|
-
} else {
|
|
4736
|
-
preset.value = null;
|
|
4901
|
+
protocol: protocol.value,
|
|
4902
|
+
preset: preset.value,
|
|
4903
|
+
onPick (type, value) {
|
|
4904
|
+
if (type === 'preset') {
|
|
4905
|
+
preset.value = value;
|
|
4906
|
+
protocol.value = `${getIdentityProviderProtocolForPreset(value)}`;
|
|
4907
|
+
return;
|
|
4737
4908
|
}
|
|
4909
|
+
protocol.value = value;
|
|
4910
|
+
preset.value = null;
|
|
4738
4911
|
}
|
|
4739
4912
|
});
|
|
4740
4913
|
const render = (node)=>{
|
|
@@ -7114,5 +7287,5 @@ var index = {
|
|
|
7114
7287
|
install
|
|
7115
7288
|
};
|
|
7116
7289
|
|
|
7117
|
-
export { AClient, AClientForm, AClientRedirectUris, AClientRedirectUrisItem, AClientScope, AClientScopeAssignment, AClientScopeAssignments, AClientScopes, AClients, AEntityDelete, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments, AIdentityProviders, APagination, APermission, APermissionCheck, APermissionForm, APermissionRobotAssignments, APermissionRoleAssignments, APermissionUserAssignments, APermissions, ARealm, ARealmForm, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment, ARobotPermissionAssignments, ARobotRoleAssignment, ARobotRoleAssignments, ARobots, ARole, ARoleForm, ARolePermissionAssignment, ARolePermissionAssignments, ARoleRobotAssignments, ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATitle, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment, AUserPermissionAssignments, AUserRoleAssignment, AUserRoleAssignments, AUsers, EntityManagerError, HTTPClientSymbol, LanguageSwitcherDropdown, STORE_ID, SocketClientSymbol,
|
|
7290
|
+
export { AClient, AClientForm, AClientRedirectUris, AClientRedirectUrisItem, AClientScope, AClientScopeAssignment, AClientScopeAssignments, AClientScopes, AClients, AEntityDelete, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments, AIdentityProviders, APagination, APermission, APermissionCheck, APermissionForm, APermissionRobotAssignments, APermissionRoleAssignments, APermissionUserAssignments, APermissions, ARealm, ARealmForm, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment, ARobotPermissionAssignments, ARobotRoleAssignment, ARobotRoleAssignments, ARobots, ARole, ARoleForm, ARolePermissionAssignment, ARolePermissionAssignments, ARoleRobotAssignments, ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATitle, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment, AUserPermissionAssignments, AUserRoleAssignment, AUserRoleAssignments, AUsers, EntityManagerError, HTTPClientSymbol, LanguageSwitcherDropdown, STORE_ID, SocketClientSymbol, StoreDispatcherEventName, TranslatorTranslationClientKey, TranslatorTranslationDefaultKey, TranslatorTranslationGroup, TranslatorTranslationVuecsKey, VuelidateCustomRule, VuelidateCustomRuleKey, buildEntityManagerSlotProps, buildFormSubmitWithTranslations, buildListCreatedHandler, buildListDeletedHandler, buildListUpdatedHandler, createEntityManager, createFormSubmitTranslations, createList, createPermissionCheckerReactiveFn, createStore, createStoreDispatcher, index as default, defineEntityManagerEvents, defineEntityManagerProps, defineListEvents, defineListProps, extendObjectProperties, extractVuelidateResultsFromChild, getVuelidateSeverity, hasHTTPClient, hasNormalizedSlot, hasStoreFactory, initFormAttributesFromSource, inject$1 as inject, injectHTTPClient, injectSocketManager, injectStoreDispatcher, injectStoreFactory, injectTranslatorLocale, install, installHTTPClient, installSocketManager, installStore, installTranslator, isQuerySortedDescByDate, isSocketManagerUsable, mergeListOptions, normalizeSlot, onChange, provide, provideHTTPClient, provideSocketManager, provideStoreDispatcher, provideStoreFactory, renderEntityAssignAction, storeToRefs, useIsEditing, usePermissionCheck, useRealmResourceWritableCheck, useStore, useTranslation, useTranslationsForBaseValidation, useTranslationsForGroup, useTranslationsForNestedValidation, useUpdatedAt, wrapFnWithBusyState };
|
|
7118
7291
|
//# sourceMappingURL=index.mjs.map
|