@beam3_dev/api_module 0.0.243 → 0.0.245
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/wb3Api.js +81 -65
- package/dist/wb3Api.js.map +1 -1
- package/dist/wb3Api.umd.cjs +6 -6
- package/dist/wb3Api.umd.cjs.map +1 -1
- package/package.json +1 -1
package/dist/wb3Api.js
CHANGED
|
@@ -195,7 +195,7 @@ function Y() {
|
|
|
195
195
|
};
|
|
196
196
|
}), console.log("%cRETOUR API :", "color:blue", e), e;
|
|
197
197
|
}
|
|
198
|
-
function
|
|
198
|
+
function O(e, t = void 0, n = void 0) {
|
|
199
199
|
if (e.tenant) {
|
|
200
200
|
const s = `https://${e.tenant}-eu1-apps.3dexperience.3ds.com/enovia/resources/AppsMngt/api/v1/services?tenant=${e.tenant}&cors=true&xrequestedwith=xmlhttprequest`;
|
|
201
201
|
m(s, {
|
|
@@ -284,7 +284,7 @@ function Fe(e, t, n = void 0, s = void 0) {
|
|
|
284
284
|
}
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
|
-
const
|
|
287
|
+
const k = {
|
|
288
288
|
"Content-Type": "application/json",
|
|
289
289
|
Accept: "application/json,text/javascript,*/*"
|
|
290
290
|
};
|
|
@@ -305,7 +305,7 @@ function je(e, t, n = void 0, s = void 0) {
|
|
|
305
305
|
};
|
|
306
306
|
m(a, {
|
|
307
307
|
method: "POST",
|
|
308
|
-
headers:
|
|
308
|
+
headers: k,
|
|
309
309
|
data: JSON.stringify(c),
|
|
310
310
|
onComplete(d) {
|
|
311
311
|
n && n(JSON.parse(d));
|
|
@@ -317,7 +317,7 @@ function je(e, t, n = void 0, s = void 0) {
|
|
|
317
317
|
}
|
|
318
318
|
});
|
|
319
319
|
}
|
|
320
|
-
function
|
|
320
|
+
function ke(e, t, n = void 0, s = void 0) {
|
|
321
321
|
const { space: i, tenant: r } = e, o = i, a = `/3drdfpersist/v1/resources/${t}`, c = `?$mask=dsaccess:Mask.GroupUI.Properties&tenant=dstenant:${r}`, d = `${o}${a}${c}`;
|
|
322
322
|
m(d, {
|
|
323
323
|
opts: {
|
|
@@ -352,7 +352,7 @@ function q(e, t = void 0, n = void 0) {
|
|
|
352
352
|
}
|
|
353
353
|
});
|
|
354
354
|
}
|
|
355
|
-
function
|
|
355
|
+
function Ae(e, t = void 0, n = void 0) {
|
|
356
356
|
const { space: s, currentUser: i } = e, a = `${s}/3drdfpersist/resources/v1/usersgroup?select=uri,title,description,owner,members,pending_members,creation_date,modification_date,visibility`, d = { method: "GET", headers: {
|
|
357
357
|
"Content-Type": "application/json",
|
|
358
358
|
Accept: "application/json,text/javascript,*/*"
|
|
@@ -400,7 +400,7 @@ function xe(e, t, n, s = void 0, i = void 0) {
|
|
|
400
400
|
OPTsTenant: `tenant=dstenant:${o}`
|
|
401
401
|
}, c = n, d = `${r}${a.URIUGr}/${t}`, u = JSON.stringify(c);
|
|
402
402
|
m(d, {
|
|
403
|
-
headers:
|
|
403
|
+
headers: k,
|
|
404
404
|
method: "PATCH",
|
|
405
405
|
data: u,
|
|
406
406
|
type: "json",
|
|
@@ -416,7 +416,7 @@ function Pe(e, t, n, s = void 0, i = void 0) {
|
|
|
416
416
|
const { space: r } = e, a = `${r}/3drdfpersist/resources/v1/usersgroup/${t}/sharing`;
|
|
417
417
|
m(a, {
|
|
418
418
|
method: "PATCH",
|
|
419
|
-
headers:
|
|
419
|
+
headers: k,
|
|
420
420
|
data: JSON.stringify(n),
|
|
421
421
|
type: "json",
|
|
422
422
|
onComplete(d) {
|
|
@@ -553,7 +553,7 @@ function F(e, t = void 0, n = void 0) {
|
|
|
553
553
|
}
|
|
554
554
|
});
|
|
555
555
|
} else
|
|
556
|
-
|
|
556
|
+
b(
|
|
557
557
|
e,
|
|
558
558
|
(s) => {
|
|
559
559
|
console.log("_3DSpace_get_csrf / _3DSpace_csrf", s), t && t(s);
|
|
@@ -563,7 +563,7 @@ function F(e, t = void 0, n = void 0) {
|
|
|
563
563
|
}
|
|
564
564
|
);
|
|
565
565
|
}
|
|
566
|
-
function
|
|
566
|
+
function b(e, t = void 0, n = void 0) {
|
|
567
567
|
if (e.space) {
|
|
568
568
|
const s = e.space + "/resources/v1/application/CSRF";
|
|
569
569
|
m(s, {
|
|
@@ -582,7 +582,7 @@ function O(e, t = void 0, n = void 0) {
|
|
|
582
582
|
} else
|
|
583
583
|
n && n("ERROR : url du 3DSpace non défini.");
|
|
584
584
|
}
|
|
585
|
-
function
|
|
585
|
+
function A(e, t = void 0, n = void 0) {
|
|
586
586
|
let s = e.space + `/resources/v1/modeler/documents/${e.objID}/files/DownloadTicket`;
|
|
587
587
|
F(
|
|
588
588
|
e,
|
|
@@ -912,7 +912,7 @@ async function L(e, t = void 0, n = void 0) {
|
|
|
912
912
|
console.log("☠️ error => ", s);
|
|
913
913
|
}
|
|
914
914
|
), new Promise((s, i) => {
|
|
915
|
-
|
|
915
|
+
A(
|
|
916
916
|
e,
|
|
917
917
|
(r) => {
|
|
918
918
|
e?.returnType === "blob" ? (console.log("ticketURL blob", r), fetch(r).then((o) => o.blob()).then((o) => {
|
|
@@ -1017,7 +1017,7 @@ function ae(e, t, n = void 0, s = void 0, i = void 0) {
|
|
|
1017
1017
|
}
|
|
1018
1018
|
function Ge(e, t, n = void 0, s = void 0) {
|
|
1019
1019
|
return new Promise((i) => {
|
|
1020
|
-
if (e.token === "" &&
|
|
1020
|
+
if (e.token === "" && b(e), t !== void 0 && t !== "" && t !== null) {
|
|
1021
1021
|
const r = `${e.space}/resources/v1/modeler/dslc/maturity/getNextStates`;
|
|
1022
1022
|
let o = {
|
|
1023
1023
|
method: "POST",
|
|
@@ -1048,7 +1048,7 @@ function Ge(e, t, n = void 0, s = void 0) {
|
|
|
1048
1048
|
}
|
|
1049
1049
|
function Ke(e, t, n, s = void 0, i = void 0) {
|
|
1050
1050
|
return new Promise((r) => {
|
|
1051
|
-
if (e.token === "" &&
|
|
1051
|
+
if (e.token === "" && b(e), t !== void 0 && t !== "" && t !== null) {
|
|
1052
1052
|
const o = `${e.space}/resources/v1/modeler/dslc/maturity/changeState`;
|
|
1053
1053
|
let a = {
|
|
1054
1054
|
method: "POST",
|
|
@@ -1080,7 +1080,7 @@ function Ke(e, t, n, s = void 0, i = void 0) {
|
|
|
1080
1080
|
}
|
|
1081
1081
|
function Ee(e, t, n = void 0, s = void 0) {
|
|
1082
1082
|
return new Promise((i) => {
|
|
1083
|
-
if (e.token === "" &&
|
|
1083
|
+
if (e.token === "" && b(e), t !== void 0 && t !== "" && t !== null) {
|
|
1084
1084
|
const r = `${e.space}/resources/v1/dslc/versiongraph?withThumbnail=0&withIsLastVersion=0&withAttributes=0&withCopyFrom=0&tenant=${e.tenant}`;
|
|
1085
1085
|
j(
|
|
1086
1086
|
e.space,
|
|
@@ -1121,7 +1121,7 @@ function Ee(e, t, n = void 0, s = void 0) {
|
|
|
1121
1121
|
}
|
|
1122
1122
|
function Be(e, t, n = void 0, s = void 0) {
|
|
1123
1123
|
return new Promise((i) => {
|
|
1124
|
-
if (e.token === "" &&
|
|
1124
|
+
if (e.token === "" && b(e), t !== void 0 && t !== "" && t !== null) {
|
|
1125
1125
|
const r = `${e.space}/resources/lifecycle/revise/prepare_revise_maskattributes?tenant=${e.tenant}`;
|
|
1126
1126
|
j(
|
|
1127
1127
|
e.space,
|
|
@@ -1168,7 +1168,7 @@ function Be(e, t, n = void 0, s = void 0) {
|
|
|
1168
1168
|
}
|
|
1169
1169
|
function We(e, t, n, s = void 0, i = void 0) {
|
|
1170
1170
|
return new Promise((r) => {
|
|
1171
|
-
if (e.token === "" &&
|
|
1171
|
+
if (e.token === "" && b(e), t !== void 0 && t !== "" && t !== null) {
|
|
1172
1172
|
const o = `${e.space}/resources/lifecycle/revise/major?tenant=${e.tenant}`;
|
|
1173
1173
|
j(
|
|
1174
1174
|
e.space,
|
|
@@ -1292,7 +1292,7 @@ function Ye(e, t = void 0, n = void 0) {
|
|
|
1292
1292
|
});
|
|
1293
1293
|
}
|
|
1294
1294
|
function qe(e, t, n, s) {
|
|
1295
|
-
|
|
1295
|
+
A(
|
|
1296
1296
|
e.space,
|
|
1297
1297
|
t,
|
|
1298
1298
|
(i) => {
|
|
@@ -1310,7 +1310,7 @@ function qe(e, t, n, s) {
|
|
|
1310
1310
|
}
|
|
1311
1311
|
async function He(e, t, n = void 0, s = void 0) {
|
|
1312
1312
|
return new Promise((i) => {
|
|
1313
|
-
|
|
1313
|
+
A(e, t, (r) => {
|
|
1314
1314
|
m(r, {
|
|
1315
1315
|
onComplete: (o, a, c) => (i(JSON.parse(o)), n && n(JSON.parse(o), a, c), i),
|
|
1316
1316
|
onFailure: (o, a, c) => {
|
|
@@ -1354,7 +1354,7 @@ async function Qe(e, t = void 0, n = void 0) {
|
|
|
1354
1354
|
(s) => {
|
|
1355
1355
|
n && n(s);
|
|
1356
1356
|
}
|
|
1357
|
-
) : (e.objID === null || e.objID === "") &&
|
|
1357
|
+
) : (e.objID === null || e.objID === "") && b(
|
|
1358
1358
|
e,
|
|
1359
1359
|
(s) => {
|
|
1360
1360
|
t && t({ rep: s, msg: "Pas d'objID, ou invalide" });
|
|
@@ -2346,14 +2346,16 @@ function St(e, t = void 0, n = void 0) {
|
|
|
2346
2346
|
m(a, d);
|
|
2347
2347
|
}
|
|
2348
2348
|
function _t(e, t = void 0, n = void 0) {
|
|
2349
|
-
e.tenant &&
|
|
2349
|
+
e.tenant && O(e, (s) => {
|
|
2350
2350
|
const i = s.services.find((r) => r.id === "businessprocess")?.url + "/api/v2";
|
|
2351
2351
|
return t && t(i), i;
|
|
2352
2352
|
});
|
|
2353
2353
|
}
|
|
2354
2354
|
function wt(e, t = void 0, n = void 0) {
|
|
2355
|
-
e.tenant &&
|
|
2356
|
-
const i = s.services.find(
|
|
2355
|
+
e.tenant && O(e, (s) => {
|
|
2356
|
+
const i = s.services.find(
|
|
2357
|
+
(a) => a.id === "3dpassport"
|
|
2358
|
+
)?.url, r = s.services.find((a) => a.id === "businessprocess")?.url + "/api/v2", o = `${i}/login/?service=${r}/auth/cas`;
|
|
2357
2359
|
m(o, {
|
|
2358
2360
|
async onComplete(a) {
|
|
2359
2361
|
const c = typeof a == "string" ? JSON.parse(a)?.x3ds_service_redirect_url : a?.x3ds_service_redirect_url;
|
|
@@ -2382,11 +2384,14 @@ function Ct(e, t = void 0, n = void 0) {
|
|
|
2382
2384
|
}
|
|
2383
2385
|
}
|
|
2384
2386
|
async function Tt(e, t, n = void 0, s = void 0) {
|
|
2385
|
-
e.tenant &&
|
|
2387
|
+
e.tenant && O(e, (i) => {
|
|
2386
2388
|
const o = `${i.services.find((c) => c.id === "businessprocess")?.url + "/api/v2"}/identity/users`, a = e.tenant.toLowerCase();
|
|
2387
|
-
fetch(
|
|
2388
|
-
|
|
2389
|
-
|
|
2389
|
+
fetch(
|
|
2390
|
+
`https://api.uixhome.fr/${a}/iterop/listusers?t=${t}&s=${o}`,
|
|
2391
|
+
{
|
|
2392
|
+
method: "POST"
|
|
2393
|
+
}
|
|
2394
|
+
).then((c) => c.json()).then((c) => {
|
|
2390
2395
|
n && n(c);
|
|
2391
2396
|
}).catch((c) => {
|
|
2392
2397
|
s && s(c);
|
|
@@ -2394,23 +2399,29 @@ async function Tt(e, t, n = void 0, s = void 0) {
|
|
|
2394
2399
|
});
|
|
2395
2400
|
}
|
|
2396
2401
|
async function bt(e, t, n = void 0, s = void 0) {
|
|
2397
|
-
e.tenant
|
|
2398
|
-
const
|
|
2399
|
-
fetch(
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2402
|
+
if (e.tenant) {
|
|
2403
|
+
const i = e.tenant.toLowerCase();
|
|
2404
|
+
fetch(
|
|
2405
|
+
`https://api.uixhome.fr/${i}/iterop/repository/data/tables?t=${t}`,
|
|
2406
|
+
{
|
|
2407
|
+
method: "GET"
|
|
2408
|
+
}
|
|
2409
|
+
).then((r) => r.json()).then((r) => {
|
|
2410
|
+
n && n(r);
|
|
2411
|
+
}).catch((r) => {
|
|
2412
|
+
s && s(r);
|
|
2405
2413
|
});
|
|
2406
|
-
}
|
|
2414
|
+
}
|
|
2407
2415
|
}
|
|
2408
2416
|
async function Ot(e, t, n, s = void 0, i = void 0) {
|
|
2409
2417
|
if (e.tenant) {
|
|
2410
2418
|
const r = e.tenant.toLowerCase();
|
|
2411
|
-
fetch(
|
|
2412
|
-
|
|
2413
|
-
|
|
2419
|
+
fetch(
|
|
2420
|
+
`https://api.uixhome.fr/${r}/iterop/businesstable/one/${n}?t=${t}`,
|
|
2421
|
+
{
|
|
2422
|
+
method: "POST"
|
|
2423
|
+
}
|
|
2424
|
+
).then((o) => o.json()).then((o) => {
|
|
2414
2425
|
s && s(o);
|
|
2415
2426
|
}).catch((o) => {
|
|
2416
2427
|
i && i(o);
|
|
@@ -2420,9 +2431,12 @@ async function Ot(e, t, n, s = void 0, i = void 0) {
|
|
|
2420
2431
|
async function $t(e, t, n, s = void 0, i = void 0) {
|
|
2421
2432
|
if (e.tenant) {
|
|
2422
2433
|
const r = e.tenant.toLowerCase();
|
|
2423
|
-
fetch(
|
|
2424
|
-
|
|
2425
|
-
|
|
2434
|
+
fetch(
|
|
2435
|
+
`https://api.uixhome.fr/${r}/iterop/businesstable/rows/${n}/?t=${t}`,
|
|
2436
|
+
{
|
|
2437
|
+
method: "POST"
|
|
2438
|
+
}
|
|
2439
|
+
).then((o) => o.json()).then((o) => {
|
|
2426
2440
|
s && s(o);
|
|
2427
2441
|
}).catch((o) => {
|
|
2428
2442
|
i && i(o);
|
|
@@ -2430,17 +2444,19 @@ async function $t(e, t, n, s = void 0, i = void 0) {
|
|
|
2430
2444
|
}
|
|
2431
2445
|
}
|
|
2432
2446
|
async function Nt(e, t, n, s, i = void 0, r = void 0) {
|
|
2433
|
-
e.tenant
|
|
2434
|
-
o.
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2447
|
+
if (e.tenant) {
|
|
2448
|
+
const o = e.tenant.toLowerCase();
|
|
2449
|
+
fetch(
|
|
2450
|
+
`https://api.uixhome.fr/${o}/iterop/businesstable/patch/rows/${n}/?t=${t}&b=${s}`,
|
|
2451
|
+
{
|
|
2452
|
+
method: "POST"
|
|
2453
|
+
}
|
|
2454
|
+
).then((a) => a.json()).then((a) => {
|
|
2455
|
+
i && i(a);
|
|
2456
|
+
}).catch((a) => {
|
|
2457
|
+
r && r(a, n, s);
|
|
2442
2458
|
});
|
|
2443
|
-
}
|
|
2459
|
+
}
|
|
2444
2460
|
}
|
|
2445
2461
|
async function It(e, t, n, s, i, r = void 0, o = void 0) {
|
|
2446
2462
|
if (e.tenant) {
|
|
@@ -2479,7 +2495,7 @@ async function vt(e, t, n, s, i = void 0, r = void 0) {
|
|
|
2479
2495
|
}
|
|
2480
2496
|
}
|
|
2481
2497
|
async function Ft(e, t, n, s, i = void 0, r = void 0) {
|
|
2482
|
-
e.tenant &&
|
|
2498
|
+
e.tenant && O(e, (o) => {
|
|
2483
2499
|
o.services.find((c) => c.id === "businessprocess")?.url + "";
|
|
2484
2500
|
const a = e.tenant.toLowerCase();
|
|
2485
2501
|
fetch(
|
|
@@ -2495,7 +2511,7 @@ async function Ft(e, t, n, s, i = void 0, r = void 0) {
|
|
|
2495
2511
|
});
|
|
2496
2512
|
}
|
|
2497
2513
|
async function jt(e, t, n, s = void 0, i = void 0) {
|
|
2498
|
-
e.tenant &&
|
|
2514
|
+
e.tenant && O(e, (r) => {
|
|
2499
2515
|
r.services.find((a) => a.id === "businessprocess")?.url + "";
|
|
2500
2516
|
const o = e.tenant.toLowerCase();
|
|
2501
2517
|
fetch(
|
|
@@ -2510,8 +2526,8 @@ async function jt(e, t, n, s = void 0, i = void 0) {
|
|
|
2510
2526
|
});
|
|
2511
2527
|
});
|
|
2512
2528
|
}
|
|
2513
|
-
async function
|
|
2514
|
-
e.tenant &&
|
|
2529
|
+
async function kt(e, t, n, s, i, r = void 0, o = void 0) {
|
|
2530
|
+
e.tenant && O(e, (a) => {
|
|
2515
2531
|
a.services.find((d) => d.id === "businessprocess")?.url + "";
|
|
2516
2532
|
const c = e.tenant.toLowerCase();
|
|
2517
2533
|
fetch(
|
|
@@ -2526,8 +2542,8 @@ async function At(e, t, n, s, i, r = void 0, o = void 0) {
|
|
|
2526
2542
|
});
|
|
2527
2543
|
});
|
|
2528
2544
|
}
|
|
2529
|
-
async function
|
|
2530
|
-
e.tenant &&
|
|
2545
|
+
async function At(e, t, n, s, i = void 0, r = void 0) {
|
|
2546
|
+
e.tenant && O(e, (o) => {
|
|
2531
2547
|
o.services.find((c) => c.id === "businessprocess")?.url + "";
|
|
2532
2548
|
const a = e.tenant.toLowerCase();
|
|
2533
2549
|
fetch(
|
|
@@ -2565,7 +2581,7 @@ function xt(e) {
|
|
|
2565
2581
|
}
|
|
2566
2582
|
function Pt(e, t = void 0, n = void 0) {
|
|
2567
2583
|
return console.log("credentials", e), new Promise((s) => {
|
|
2568
|
-
if (e.token === "" &&
|
|
2584
|
+
if (e.token === "" && b(e), !e.space || e.space === "") {
|
|
2569
2585
|
const o = Y();
|
|
2570
2586
|
console.log("platformeInfo", o);
|
|
2571
2587
|
}
|
|
@@ -2649,7 +2665,7 @@ export {
|
|
|
2649
2665
|
Me as _3DSpace_Update_Doc,
|
|
2650
2666
|
Ve as _3DSpace_bookmark_addSubsciptions,
|
|
2651
2667
|
Xe as _3DSpace_bookmark_newWorkspace,
|
|
2652
|
-
|
|
2668
|
+
b as _3DSpace_csrf,
|
|
2653
2669
|
L as _3DSpace_download_doc,
|
|
2654
2670
|
ie as _3DSpace_download_multidoc,
|
|
2655
2671
|
D as _3DSpace_file_update,
|
|
@@ -2660,7 +2676,7 @@ export {
|
|
|
2660
2676
|
ae as _3DSpace_get_downloadTicket_multidoc,
|
|
2661
2677
|
De as _3DSpace_get_multiDocInfo,
|
|
2662
2678
|
j as _3DSpace_get_securityContexts,
|
|
2663
|
-
|
|
2679
|
+
A as _3DSpace_get_ticket,
|
|
2664
2680
|
We as _3DSpace_lifecycle_changeRevision,
|
|
2665
2681
|
Ke as _3DSpace_lifecycle_changeState,
|
|
2666
2682
|
Ee as _3DSpace_lifecycle_getGraph,
|
|
@@ -2692,8 +2708,8 @@ export {
|
|
|
2692
2708
|
jt as _Iterop_GetOneDependencyTable,
|
|
2693
2709
|
Ut as _Iterop_GetOneList,
|
|
2694
2710
|
Tt as _Iterop_ListUsers,
|
|
2695
|
-
|
|
2696
|
-
|
|
2711
|
+
kt as _Iterop_PatchDependencyTable,
|
|
2712
|
+
At as _Iterop_PutDependencyTable,
|
|
2697
2713
|
It as _Iterop_businessTableSearchInRows,
|
|
2698
2714
|
bt as _Iterop_getAllBusinessTables,
|
|
2699
2715
|
Ot as _Iterop_getOneBusinessTable,
|
|
@@ -2703,7 +2719,7 @@ export {
|
|
|
2703
2719
|
vt as _Iterop_updateBusinessTable,
|
|
2704
2720
|
Y as _getPlateformInfos,
|
|
2705
2721
|
$e as _getPlatformServices,
|
|
2706
|
-
|
|
2722
|
+
O as _getServiceUrl,
|
|
2707
2723
|
Ne as _getServiceUrl_3DPassport,
|
|
2708
2724
|
_t as _getServiceUrl_Iterop,
|
|
2709
2725
|
m as _httpCallAuthenticated,
|
|
@@ -2721,14 +2737,14 @@ export {
|
|
|
2721
2737
|
Ye as getAllContextSecurity,
|
|
2722
2738
|
H as getCSRFToken,
|
|
2723
2739
|
Se as getCommunes,
|
|
2724
|
-
|
|
2740
|
+
ke as getComplementUG,
|
|
2725
2741
|
qe as getDataFrom3DSpace,
|
|
2726
2742
|
we as getDataFromGouvFr,
|
|
2727
2743
|
Ze as getDatasByTenant,
|
|
2728
2744
|
et as getDatasFrom3DSpace,
|
|
2729
2745
|
He as getDownloadDocument,
|
|
2730
2746
|
st as getInfoDocTags,
|
|
2731
|
-
|
|
2747
|
+
Ae as getUserGroupsList,
|
|
2732
2748
|
q as getUsersGroupRules,
|
|
2733
2749
|
Qe as get_3DSpace_csrf,
|
|
2734
2750
|
xe as patchUserGroups,
|