@esri/hub-common 14.5.2 → 14.7.0
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/esm/content/_internal/computeProps.js +12 -1
- package/dist/esm/content/_internal/computeProps.js.map +1 -1
- package/dist/esm/groups/_internal/AddOrInviteUsersToGroupUtils.js +195 -0
- package/dist/esm/groups/_internal/AddOrInviteUsersToGroupUtils.js.map +1 -0
- package/dist/esm/groups/_internal/autoAddUsersAsAdmins.js +24 -0
- package/dist/esm/groups/_internal/autoAddUsersAsAdmins.js.map +1 -0
- package/dist/esm/groups/_internal/processAutoAddUsers.js +62 -0
- package/dist/esm/groups/_internal/processAutoAddUsers.js.map +1 -0
- package/dist/esm/groups/_internal/processEmailUsers.js +50 -0
- package/dist/esm/groups/_internal/processEmailUsers.js.map +1 -0
- package/dist/esm/groups/_internal/processInviteUsers.js +51 -0
- package/dist/esm/groups/_internal/processInviteUsers.js.map +1 -0
- package/dist/esm/groups/add-users-workflow/add-users-to-group.js +1 -1
- package/dist/esm/groups/add-users-workflow/add-users-to-group.js.map +1 -1
- package/dist/esm/groups/add-users-workflow/index.js +0 -1
- package/dist/esm/groups/add-users-workflow/index.js.map +1 -1
- package/dist/esm/groups/add-users-workflow/output-processors/_process-auto-add.js +2 -2
- package/dist/esm/groups/add-users-workflow/output-processors/_process-auto-add.js.map +1 -1
- package/dist/esm/groups/add-users-workflow/output-processors/_process-invite.js +2 -2
- package/dist/esm/groups/add-users-workflow/output-processors/_process-invite.js.map +1 -1
- package/dist/esm/groups/add-users-workflow/output-processors/_process-primary-email.js +2 -2
- package/dist/esm/groups/add-users-workflow/output-processors/_process-primary-email.js.map +1 -1
- package/dist/esm/groups/add-users-workflow/output-processors/_process-secondary-email.js +3 -3
- package/dist/esm/groups/add-users-workflow/output-processors/_process-secondary-email.js.map +1 -1
- package/dist/esm/groups/addOrInviteUsersToGroup.js +67 -0
- package/dist/esm/groups/addOrInviteUsersToGroup.js.map +1 -0
- package/dist/esm/groups/addOrInviteUsersToGroups.js +51 -0
- package/dist/esm/groups/addOrInviteUsersToGroups.js.map +1 -0
- package/dist/esm/groups/{add-users-workflow/workflow-sections/auto-add-users.js → autoAddUsers.js} +4 -4
- package/dist/esm/groups/autoAddUsers.js.map +1 -0
- package/dist/esm/groups/{add-users-workflow/workflow-sections/email-org-users.js → emailOrgUsers.js} +3 -3
- package/dist/esm/groups/emailOrgUsers.js.map +1 -0
- package/dist/esm/groups/index.js +8 -0
- package/dist/esm/groups/index.js.map +1 -1
- package/dist/esm/groups/{add-users-workflow/workflow-sections/invite-users.js → inviteUsers.js} +1 -1
- package/dist/esm/groups/inviteUsers.js.map +1 -0
- package/dist/esm/groups/types/index.js +1 -0
- package/dist/esm/groups/types/index.js.map +1 -1
- package/dist/esm/groups/types/types.js +1 -0
- package/dist/esm/groups/types/types.js.map +1 -0
- package/dist/esm/pages/_internal/computeProps.js +12 -1
- package/dist/esm/pages/_internal/computeProps.js.map +1 -1
- package/dist/esm/sites/_internal/computeProps.js +12 -1
- package/dist/esm/sites/_internal/computeProps.js.map +1 -1
- package/dist/node/content/_internal/computeProps.js +12 -1
- package/dist/node/content/_internal/computeProps.js.map +1 -1
- package/dist/node/groups/_internal/AddOrInviteUsersToGroupUtils.js +205 -0
- package/dist/node/groups/_internal/AddOrInviteUsersToGroupUtils.js.map +1 -0
- package/dist/node/groups/_internal/autoAddUsersAsAdmins.js +28 -0
- package/dist/node/groups/_internal/autoAddUsersAsAdmins.js.map +1 -0
- package/dist/node/groups/_internal/processAutoAddUsers.js +66 -0
- package/dist/node/groups/_internal/processAutoAddUsers.js.map +1 -0
- package/dist/node/groups/_internal/processEmailUsers.js +54 -0
- package/dist/node/groups/_internal/processEmailUsers.js.map +1 -0
- package/dist/node/groups/_internal/processInviteUsers.js +55 -0
- package/dist/node/groups/_internal/processInviteUsers.js.map +1 -0
- package/dist/node/groups/add-users-workflow/add-users-to-group.js +1 -1
- package/dist/node/groups/add-users-workflow/add-users-to-group.js.map +1 -1
- package/dist/node/groups/add-users-workflow/index.js +0 -1
- package/dist/node/groups/add-users-workflow/index.js.map +1 -1
- package/dist/node/groups/add-users-workflow/output-processors/_process-auto-add.js +2 -2
- package/dist/node/groups/add-users-workflow/output-processors/_process-auto-add.js.map +1 -1
- package/dist/node/groups/add-users-workflow/output-processors/_process-invite.js +2 -2
- package/dist/node/groups/add-users-workflow/output-processors/_process-invite.js.map +1 -1
- package/dist/node/groups/add-users-workflow/output-processors/_process-primary-email.js +2 -2
- package/dist/node/groups/add-users-workflow/output-processors/_process-primary-email.js.map +1 -1
- package/dist/node/groups/add-users-workflow/output-processors/_process-secondary-email.js +3 -3
- package/dist/node/groups/add-users-workflow/output-processors/_process-secondary-email.js.map +1 -1
- package/dist/node/groups/addOrInviteUsersToGroup.js +71 -0
- package/dist/node/groups/addOrInviteUsersToGroup.js.map +1 -0
- package/dist/node/groups/addOrInviteUsersToGroups.js +55 -0
- package/dist/node/groups/addOrInviteUsersToGroups.js.map +1 -0
- package/dist/node/groups/{add-users-workflow/workflow-sections/auto-add-users.js → autoAddUsers.js} +3 -3
- package/dist/node/groups/autoAddUsers.js.map +1 -0
- package/dist/node/groups/{add-users-workflow/workflow-sections/email-org-users.js → emailOrgUsers.js} +2 -2
- package/dist/node/groups/emailOrgUsers.js.map +1 -0
- package/dist/node/groups/index.js +8 -0
- package/dist/node/groups/index.js.map +1 -1
- package/dist/node/groups/{add-users-workflow/workflow-sections/invite-users.js → inviteUsers.js} +1 -1
- package/dist/node/groups/inviteUsers.js.map +1 -0
- package/dist/node/groups/types/index.js +1 -0
- package/dist/node/groups/types/index.js.map +1 -1
- package/dist/node/groups/types/types.js +3 -0
- package/dist/node/groups/types/types.js.map +1 -0
- package/dist/node/pages/_internal/computeProps.js +12 -1
- package/dist/node/pages/_internal/computeProps.js.map +1 -1
- package/dist/node/sites/_internal/computeProps.js +12 -1
- package/dist/node/sites/_internal/computeProps.js.map +1 -1
- package/dist/types/content/_internal/computeProps.d.ts +2 -1
- package/dist/types/content/_internal/internalContentUtils.d.ts +8 -0
- package/dist/types/core/types/IHubEntityBase.d.ts +49 -2
- package/dist/types/core/types/IHubItemEntity.d.ts +5 -1
- package/dist/types/groups/_internal/AddOrInviteUsersToGroupUtils.d.ts +82 -0
- package/dist/types/groups/_internal/autoAddUsersAsAdmins.d.ts +13 -0
- package/dist/types/groups/_internal/processAutoAddUsers.d.ts +15 -0
- package/dist/types/groups/_internal/processEmailUsers.d.ts +14 -0
- package/dist/types/groups/_internal/processInviteUsers.d.ts +13 -0
- package/dist/types/groups/add-users-workflow/add-users-to-group.d.ts +2 -1
- package/dist/types/groups/add-users-workflow/index.d.ts +0 -1
- package/dist/types/groups/add-users-workflow/interfaces.d.ts +1 -5
- package/dist/types/groups/addOrInviteUsersToGroup.d.ts +18 -0
- package/dist/types/groups/addOrInviteUsersToGroups.d.ts +30 -0
- package/dist/types/groups/{add-users-workflow/workflow-sections/auto-add-users.d.ts → autoAddUsers.d.ts} +1 -1
- package/dist/types/groups/{add-users-workflow/workflow-sections/email-org-users.d.ts → emailOrgUsers.d.ts} +2 -2
- package/dist/types/groups/index.d.ts +5 -0
- package/dist/types/groups/{add-users-workflow/workflow-sections/invite-users.d.ts → inviteUsers.d.ts} +1 -1
- package/dist/types/groups/types/index.d.ts +1 -0
- package/dist/types/groups/types/types.d.ts +72 -0
- package/dist/types/pages/_internal/computeProps.d.ts +1 -1
- package/dist/types/search/types/IHubSearchResult.d.ts +0 -40
- package/dist/types/sites/_internal/computeProps.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/groups/add-users-workflow/workflow-sections/auto-add-users.js.map +0 -1
- package/dist/esm/groups/add-users-workflow/workflow-sections/email-org-users.js.map +0 -1
- package/dist/esm/groups/add-users-workflow/workflow-sections/index.js +0 -4
- package/dist/esm/groups/add-users-workflow/workflow-sections/index.js.map +0 -1
- package/dist/esm/groups/add-users-workflow/workflow-sections/invite-users.js.map +0 -1
- package/dist/node/groups/add-users-workflow/workflow-sections/auto-add-users.js.map +0 -1
- package/dist/node/groups/add-users-workflow/workflow-sections/email-org-users.js.map +0 -1
- package/dist/node/groups/add-users-workflow/workflow-sections/index.js +0 -7
- package/dist/node/groups/add-users-workflow/workflow-sections/index.js.map +0 -1
- package/dist/node/groups/add-users-workflow/workflow-sections/invite-users.js.map +0 -1
- package/dist/types/groups/add-users-workflow/workflow-sections/index.d.ts +0 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processAutoAddUsers = void 0;
|
|
4
|
+
const get_prop_1 = require("../../objects/get-prop");
|
|
5
|
+
const autoAddUsers_1 = require("../autoAddUsers");
|
|
6
|
+
const processEmailUsers_1 = require("./processEmailUsers");
|
|
7
|
+
const autoAddUsersAsAdmins_1 = require("./autoAddUsersAsAdmins");
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
* Governs logic for automatically adding N users to a group.
|
|
11
|
+
* Users are added as either a regular user OR as an administrator of the group
|
|
12
|
+
* depending on the addUserAsGroupAdmin prop on the IAddOrInviteContext.
|
|
13
|
+
* If there is an email object on the IAddOrInviteContext, then email notifications are sent.
|
|
14
|
+
*
|
|
15
|
+
* @export
|
|
16
|
+
* @param {IAddOrInviteContext} context context object
|
|
17
|
+
* @param {string} userType what type of user is it: org | world | community
|
|
18
|
+
* @param {boolean} [shouldEmail=false] should the user be emailed?
|
|
19
|
+
* @return {IAddOrInviteResponse} response object
|
|
20
|
+
*/
|
|
21
|
+
async function processAutoAddUsers(context, userType, shouldEmail = false) {
|
|
22
|
+
// fetch users out of context object
|
|
23
|
+
const users = get_prop_1.getProp(context, userType);
|
|
24
|
+
let autoAddResponse;
|
|
25
|
+
let emailResponse;
|
|
26
|
+
let notAdded = [];
|
|
27
|
+
let errors = [];
|
|
28
|
+
// fetch addUserAsGroupAdmin out of context
|
|
29
|
+
const { addUserAsGroupAdmin } = context;
|
|
30
|
+
if (addUserAsGroupAdmin) {
|
|
31
|
+
// if is core group we elevate user to admin
|
|
32
|
+
autoAddResponse = await autoAddUsersAsAdmins_1.autoAddUsersAsAdmins(get_prop_1.getProp(context, "groupId"), users, get_prop_1.getProp(context, "primaryRO"));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// if not then we are just auto adding them
|
|
36
|
+
autoAddResponse = await autoAddUsers_1.autoAddUsers(get_prop_1.getProp(context, "groupId"), users, get_prop_1.getProp(context, "primaryRO"));
|
|
37
|
+
}
|
|
38
|
+
// handle notAdded users
|
|
39
|
+
if (autoAddResponse.notAdded) {
|
|
40
|
+
notAdded = notAdded.concat(autoAddResponse.notAdded);
|
|
41
|
+
}
|
|
42
|
+
// Merge errors into empty array
|
|
43
|
+
if (autoAddResponse.errors) {
|
|
44
|
+
errors = errors.concat(autoAddResponse.errors);
|
|
45
|
+
}
|
|
46
|
+
// run email process
|
|
47
|
+
if (shouldEmail) {
|
|
48
|
+
emailResponse = await processEmailUsers_1.processEmailUsers(context);
|
|
49
|
+
// merge errors in to overall errors array to keep things flat
|
|
50
|
+
if (emailResponse.errors && emailResponse.errors.length > 0) {
|
|
51
|
+
errors = errors.concat(emailResponse.errors);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// if you leave out any of the props
|
|
55
|
+
// from the final object and you are concatting together arrays you can concat
|
|
56
|
+
// an undeifined inside an array which will throw off array lengths.
|
|
57
|
+
return {
|
|
58
|
+
users: users.map((u) => u.username),
|
|
59
|
+
notAdded,
|
|
60
|
+
errors,
|
|
61
|
+
notEmailed: (emailResponse === null || emailResponse === void 0 ? void 0 : emailResponse.notEmailed) || [],
|
|
62
|
+
notInvited: [],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.processAutoAddUsers = processAutoAddUsers;
|
|
66
|
+
//# sourceMappingURL=processAutoAddUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processAutoAddUsers.js","sourceRoot":"","sources":["../../../../src/groups/_internal/processAutoAddUsers.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAEjD,kDAA+C;AAC/C,2DAAwD;AACxD,iEAA8D;AAE9D;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAA4B,EAC5B,QAK8B,EAC9B,cAAuB,KAAK;IAE5B,oCAAoC;IACpC,MAAM,KAAK,GAAY,kBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,eAAe,CAAC;IACpB,IAAI,aAAa,CAAC;IAClB,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAyB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAExC,IAAI,mBAAmB,EAAE;QACvB,4CAA4C;QAC5C,eAAe,GAAG,MAAM,2CAAoB,CAC1C,kBAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3B,KAAK,EACL,kBAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAC9B,CAAC;KACH;SAAM;QACL,2CAA2C;QAC3C,eAAe,GAAG,MAAM,2BAAY,CAClC,kBAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3B,KAAK,EACL,kBAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAC9B,CAAC;KACH;IACD,wBAAwB;IACxB,IAAI,eAAe,CAAC,QAAQ,EAAE;QAC5B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KACtD;IACD,gCAAgC;IAChC,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KAChD;IACD,oBAAoB;IACpB,IAAI,WAAW,EAAE;QACf,aAAa,GAAG,MAAM,qCAAiB,CAAC,OAAO,CAAC,CAAC;QACjD,8DAA8D;QAC9D,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAC9C;KACF;IACD,oCAAoC;IACpC,8EAA8E;IAC9E,oEAAoE;IACpE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnC,QAAQ;QACR,MAAM;QACN,UAAU,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,KAAI,EAAE;QAC3C,UAAU,EAAE,EAAE;KACf,CAAC;AACJ,CAAC;AA5DD,kDA4DC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processEmailUsers = void 0;
|
|
4
|
+
const get_prop_1 = require("../../objects/get-prop");
|
|
5
|
+
const emailOrgUsers_1 = require("../emailOrgUsers");
|
|
6
|
+
/**
|
|
7
|
+
* @private
|
|
8
|
+
* Governs the logic for emailing N users. It acts under the assumption
|
|
9
|
+
* that all the 'community' users are the ones being emailed (this is due to platform rules we conform to)
|
|
10
|
+
* Function is called upstream depending on if an email object is attached to the context.
|
|
11
|
+
* Email object contains its own auth as it'll require the community admin to send the email itself.
|
|
12
|
+
* An individual email call goes out for each user due to how the response of multiple users in a single call works.
|
|
13
|
+
*
|
|
14
|
+
* @export
|
|
15
|
+
* @param {IAddOrInviteContext} context context object
|
|
16
|
+
* @return {IAddOrInviteResponse} response object
|
|
17
|
+
*/
|
|
18
|
+
async function processEmailUsers(context) {
|
|
19
|
+
// Fetch users out of context. We only email community users so we are
|
|
20
|
+
// explicit about that
|
|
21
|
+
const users = get_prop_1.getProp(context, "community");
|
|
22
|
+
const notEmailed = [];
|
|
23
|
+
let errors = [];
|
|
24
|
+
// iterate through users as we want a distinct email call per user due to how
|
|
25
|
+
// batch email will only respond with success: true/false
|
|
26
|
+
// and if there is an error then it gets priority even though successes do still go through
|
|
27
|
+
for (const user of users) {
|
|
28
|
+
// Make email call...
|
|
29
|
+
const emailResponse = await emailOrgUsers_1.emailOrgUsers([user], get_prop_1.getProp(context, "email.message"), get_prop_1.getProp(context, "email.auth"), true);
|
|
30
|
+
// If it's just a failed email
|
|
31
|
+
// then add username to notEmailed array
|
|
32
|
+
if (!emailResponse.success) {
|
|
33
|
+
notEmailed.push(user.username);
|
|
34
|
+
// If there was a legit error
|
|
35
|
+
// Then only the error returns from
|
|
36
|
+
// online. Add error AND include username in notEmailed array.
|
|
37
|
+
if (emailResponse.errors) {
|
|
38
|
+
errors = errors.concat(emailResponse.errors);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// if you leave out any of the props
|
|
43
|
+
// from the final object and you are concatting together arrays you can concat
|
|
44
|
+
// an undeifined inside an array which will throw off array lengths.
|
|
45
|
+
return {
|
|
46
|
+
users: users.map((u) => u.username),
|
|
47
|
+
notEmailed,
|
|
48
|
+
errors,
|
|
49
|
+
notInvited: [],
|
|
50
|
+
notAdded: [],
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.processEmailUsers = processEmailUsers;
|
|
54
|
+
//# sourceMappingURL=processEmailUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processEmailUsers.js","sourceRoot":"","sources":["../../../../src/groups/_internal/processEmailUsers.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAEjD,oDAAiD;AAEjD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAA4B;IAE5B,sEAAsE;IACtE,sBAAsB;IACtB,MAAM,KAAK,GAAY,kBAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,MAAM,GAAyB,EAAE,CAAC;IACtC,6EAA6E;IAC7E,yDAAyD;IACzD,2FAA2F;IAC3F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,6BAAa,CACvC,CAAC,IAAI,CAAC,EACN,kBAAO,CAAC,OAAO,EAAE,eAAe,CAAC,EACjC,kBAAO,CAAC,OAAO,EAAE,YAAY,CAAC,EAC9B,IAAI,CACL,CAAC;QACF,8BAA8B;QAC9B,wCAAwC;QACxC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,6BAA6B;YAC7B,mCAAmC;YACnC,8DAA8D;YAC9D,IAAI,aAAa,CAAC,MAAM,EAAE;gBACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAC9C;SACF;KACF;IACD,oCAAoC;IACpC,8EAA8E;IAC9E,oEAAoE;IACpE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnC,UAAU;QACV,MAAM;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAzCD,8CAyCC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processInviteUsers = void 0;
|
|
4
|
+
const get_prop_1 = require("../../objects/get-prop");
|
|
5
|
+
const inviteUsers_1 = require("../inviteUsers");
|
|
6
|
+
/**
|
|
7
|
+
* @private
|
|
8
|
+
* Governs the logic for inviting N users to a single group.
|
|
9
|
+
* An individual invite call goes out for each user and the results are consolidated.
|
|
10
|
+
* See comment in function about the for...of loop which explains reasoning.
|
|
11
|
+
*
|
|
12
|
+
* @export
|
|
13
|
+
* @param {IAddOrInviteContext} context context object
|
|
14
|
+
* @param {string} userType what type of user is it: org | world | community
|
|
15
|
+
* @return {IAddOrInviteResponse} response object
|
|
16
|
+
*/
|
|
17
|
+
async function processInviteUsers(context, userType) {
|
|
18
|
+
// Fetch users out of context based on userType
|
|
19
|
+
const users = get_prop_1.getProp(context, userType);
|
|
20
|
+
const notInvited = [];
|
|
21
|
+
let errors = [];
|
|
22
|
+
const { addUserAsGroupAdmin } = context;
|
|
23
|
+
// iterate through users as we want a distinct invite call per user due to how
|
|
24
|
+
// batch invites will only respond with success: true/false
|
|
25
|
+
// and if there is an error then it gets priority even though successes do still go through
|
|
26
|
+
for (const user of users) {
|
|
27
|
+
// Invite users call
|
|
28
|
+
const inviteResponse = await inviteUsers_1.inviteUsers(get_prop_1.getProp(context, "groupId"), [user], get_prop_1.getProp(context, "primaryRO"), 20160, // timeout
|
|
29
|
+
addUserAsGroupAdmin ? "group_admin" : "group_member" // if we are in a core group we want to invite them as a group admin, otherwise a group member
|
|
30
|
+
);
|
|
31
|
+
// If it's just a failed invite then
|
|
32
|
+
// add username to notInvited array
|
|
33
|
+
if (!inviteResponse.success) {
|
|
34
|
+
notInvited.push(user.username);
|
|
35
|
+
// If there was a legit error
|
|
36
|
+
// Then only the error returns from
|
|
37
|
+
// online. Add error AND include username in notInvited array.
|
|
38
|
+
if (inviteResponse.errors) {
|
|
39
|
+
errors = errors.concat(inviteResponse.errors);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// if you leave out any of the props
|
|
44
|
+
// from the final object and you are concatting together arrays you can concat
|
|
45
|
+
// an undeifined inside an array which will throw off array lengths.
|
|
46
|
+
return {
|
|
47
|
+
users: users.map((u) => u.username),
|
|
48
|
+
notInvited,
|
|
49
|
+
errors,
|
|
50
|
+
notEmailed: [],
|
|
51
|
+
notAdded: [],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.processInviteUsers = processInviteUsers;
|
|
55
|
+
//# sourceMappingURL=processInviteUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processInviteUsers.js","sourceRoot":"","sources":["../../../../src/groups/_internal/processInviteUsers.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAEjD,gDAA6C;AAC7C;;;;;;;;;;GAUG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAA4B,EAC5B,QAAqD;IAErD,+CAA+C;IAC/C,MAAM,KAAK,GAAY,kBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,MAAM,GAAyB,EAAE,CAAC;IACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IACxC,8EAA8E;IAC9E,2DAA2D;IAC3D,2FAA2F;IAC3F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,yBAAW,CACtC,kBAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3B,CAAC,IAAI,CAAC,EACN,kBAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EAC7B,KAAK,EAAE,UAAU;QACjB,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,8FAA8F;SACpJ,CAAC;QACF,oCAAoC;QACpC,mCAAmC;QACnC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,6BAA6B;YAC7B,mCAAmC;YACnC,8DAA8D;YAC9D,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aAC/C;SACF;KACF;IACD,oCAAoC;IACpC,8EAA8E;IAC9E,oEAAoE;IACpE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnC,UAAU;QACV,MAAM;QACN,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AA3CD,gDA2CC"}
|
|
@@ -55,7 +55,7 @@ function addUsersToGroup(groupId, allUsers, primaryRO, email, secondaryRO) {
|
|
|
55
55
|
requestingUser,
|
|
56
56
|
usersToAutoAdd: _get_auto_add_users_1._getAutoAddUsers(allUsers, requestingUser),
|
|
57
57
|
usersToInvite: _get_invite_users_1._getInviteUsers(allUsers, requestingUser),
|
|
58
|
-
usersToEmail: _get_email_users_1._getEmailUsers(allUsers, requestingUser, get_prop_1.getProp(email, "copyMe"))
|
|
58
|
+
usersToEmail: _get_email_users_1._getEmailUsers(allUsers, requestingUser, get_prop_1.getProp(email, "copyMe")),
|
|
59
59
|
};
|
|
60
60
|
return _process_auto_add_1._processAutoAdd(context)
|
|
61
61
|
.then(_process_invite_1._processInvite)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-users-to-group.js","sourceRoot":"","sources":["../../../../src/groups/add-users-workflow/add-users-to-group.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AACjD,qEAAgE;AAEhE,qCAAyC;AAEzC,mFAA+E;AAC/E,6EAAwE;AACxE,yEAAqE;AACrE,uFAAkF;AAClF,2FAAsF;AACtF,qEAA+D;AAC/D,+DAA0D;AAC1D,iEAA4D;
|
|
1
|
+
{"version":3,"file":"add-users-to-group.js","sourceRoot":"","sources":["../../../../src/groups/add-users-workflow/add-users-to-group.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AACjD,qEAAgE;AAEhE,qCAAyC;AAEzC,mFAA+E;AAC/E,6EAAwE;AACxE,yEAAqE;AACrE,uFAAkF;AAClF,2FAAsF;AACtF,qEAA+D;AAC/D,+DAA0D;AAC1D,iEAA4D;AAG5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,eAAe,CAC7B,OAAe,EACf,QAAiB,EACjB,SAA6B,EAC7B,KAAc,EACd,WAAgC;IAEhC,0BAA0B;IAC1B,MAAM,cAAc,GAAG,kBAAW,CAChC,iCAAc,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,CAAC,CACjD,CAAC;IACF,cAAc,CAAC,MAAM,GAAG,kBAAO,CAC7B,SAAS,EACT,6DAA6D,CAC9D,CAAC;IAEF,mCAAmC;IACnC,MAAM,OAAO,GAAG;QACd,OAAO;QACP,QAAQ;QACR,SAAS;QACT,KAAK;QACL,WAAW;QACX,cAAc;QACd,cAAc,EAAE,sCAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC1D,aAAa,EAAE,mCAAe,CAAC,QAAQ,EAAE,cAAc,CAAC;QACxD,YAAY,EAAE,iCAAc,CAC1B,QAAQ,EACR,cAAc,EACd,kBAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CACzB;KACF,CAAC;IAEF,OAAO,mCAAe,CAAC,OAAO,CAAC;SAC5B,IAAI,CAAC,gCAAc,CAAC;SACpB,IAAI,CAAC,6CAAoB,CAAC;SAC1B,IAAI,CAAC,iDAAsB,CAAC;SAC5B,IAAI,CAAC,0CAAmB,CAAC,CAAC;AAC/B,CAAC;AAtCD,0CAsCC"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./output-processors"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./utils"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./workflow-sections"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./add-users-to-group"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./interfaces"), exports);
|
|
9
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/groups/add-users-workflow/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kDAAwB;AACxB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/groups/add-users-workflow/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kDAAwB;AACxB,+DAAqC;AACrC,uDAA6B"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._processAutoAdd = void 0;
|
|
4
4
|
const get_prop_1 = require("../../../objects/get-prop");
|
|
5
|
-
const
|
|
5
|
+
const autoAddUsers_1 = require("../../autoAddUsers");
|
|
6
6
|
const _format_auto_add_response_1 = require("./_format-auto-add-response");
|
|
7
7
|
/**
|
|
8
8
|
* @private
|
|
9
9
|
*/
|
|
10
10
|
function _processAutoAdd(context) {
|
|
11
|
-
return
|
|
11
|
+
return autoAddUsers_1.autoAddUsers(get_prop_1.getProp(context, "groupId"), get_prop_1.getProp(context, "usersToAutoAdd"), get_prop_1.getProp(context, "primaryRO.authentication")).then((rawResponse) => _format_auto_add_response_1._formatAutoAddResponse(rawResponse, context));
|
|
12
12
|
}
|
|
13
13
|
exports._processAutoAdd = _processAutoAdd;
|
|
14
14
|
//# sourceMappingURL=_process-auto-add.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_process-auto-add.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-auto-add.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"_process-auto-add.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-auto-add.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,qDAAkD;AAClD,2EAAqE;AAErE;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAA0B;IAE1B,OAAO,2BAAY,CACjB,kBAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3B,kBAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAClC,kBAAO,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAC7C,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kDAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AARD,0CAQC"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._processInvite = void 0;
|
|
4
4
|
const get_prop_1 = require("../../../objects/get-prop");
|
|
5
|
-
const
|
|
5
|
+
const inviteUsers_1 = require("../../inviteUsers");
|
|
6
6
|
/**
|
|
7
7
|
* @private
|
|
8
8
|
*/
|
|
9
9
|
function _processInvite(context) {
|
|
10
|
-
return
|
|
10
|
+
return inviteUsers_1.inviteUsers(get_prop_1.getProp(context, "groupId"), get_prop_1.getProp(context, "usersToInvite"), get_prop_1.getProp(context, "primaryRO.authentication")).then((result) => {
|
|
11
11
|
context.inviteResult = result;
|
|
12
12
|
return context;
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_process-invite.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-invite.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"_process-invite.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-invite.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,mDAAgD;AAEhD;;GAEG;AACH,SAAgB,cAAc,CAC5B,OAA0B;IAE1B,OAAO,yBAAW,CAChB,kBAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAC3B,kBAAO,CAAC,OAAO,EAAE,eAAe,CAAC,EACjC,kBAAO,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAC7C,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAXD,wCAWC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._processPrimaryEmail = void 0;
|
|
4
4
|
const get_prop_1 = require("../../../objects/get-prop");
|
|
5
5
|
const _is_org_admin_1 = require("../utils/_is-org-admin");
|
|
6
|
-
const
|
|
6
|
+
const emailOrgUsers_1 = require("../../emailOrgUsers");
|
|
7
7
|
/**
|
|
8
8
|
* @private
|
|
9
9
|
*
|
|
@@ -14,7 +14,7 @@ function _processPrimaryEmail(context) {
|
|
|
14
14
|
let response = Promise.resolve(context);
|
|
15
15
|
// Email users if invite succeeds
|
|
16
16
|
if (context.email && get_prop_1.getProp(context, "inviteResult.success")) {
|
|
17
|
-
response =
|
|
17
|
+
response = emailOrgUsers_1.emailOrgUsers(context.usersToEmail, context.email, context.primaryRO.authentication, _is_org_admin_1._isOrgAdmin(context.requestingUser)).then((result) => {
|
|
18
18
|
context.primaryEmailResult = result;
|
|
19
19
|
return context;
|
|
20
20
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_process-primary-email.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-primary-email.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,0DAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"_process-primary-email.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-primary-email.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,0DAAqD;AACrD,uDAAoD;AAEpD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,OAA0B;IAE1B,IAAI,QAAQ,GAA+B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,iCAAiC;IACjC,IAAI,OAAO,CAAC,KAAK,IAAI,kBAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAAE;QAC7D,QAAQ,GAAG,6BAAa,CACtB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,CAAC,cAAc,EAChC,2BAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CACpC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACpC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAlBD,oDAkBC"}
|
|
@@ -4,7 +4,7 @@ exports._processSecondaryEmail = void 0;
|
|
|
4
4
|
const _can_email_user_1 = require("../../add-users-workflow/utils/_can-email-user");
|
|
5
5
|
const _is_org_admin_1 = require("../../add-users-workflow/utils/_is-org-admin");
|
|
6
6
|
const objects_1 = require("../../../objects");
|
|
7
|
-
const
|
|
7
|
+
const emailOrgUsers_1 = require("../../emailOrgUsers");
|
|
8
8
|
/**
|
|
9
9
|
* @private
|
|
10
10
|
*
|
|
@@ -22,8 +22,8 @@ function _processSecondaryEmail(context) {
|
|
|
22
22
|
context.secondaryRO &&
|
|
23
23
|
objects_1.getProp(context, "inviteResult.success")) {
|
|
24
24
|
const secondaryUser = objects_1.getWithDefault(context, "secondaryRO.portalSelf.user", {});
|
|
25
|
-
const secondaryOrgUsersToEmail = context.usersToInvite.filter(u => _can_email_user_1._canEmailUser(u, secondaryUser));
|
|
26
|
-
response =
|
|
25
|
+
const secondaryOrgUsersToEmail = context.usersToInvite.filter((u) => _can_email_user_1._canEmailUser(u, secondaryUser));
|
|
26
|
+
response = emailOrgUsers_1.emailOrgUsers(secondaryOrgUsersToEmail, context.email, context.secondaryRO.authentication, _is_org_admin_1._isOrgAdmin(secondaryUser)).then((result) => {
|
|
27
27
|
context.secondaryEmailResult = result;
|
|
28
28
|
return context;
|
|
29
29
|
});
|
package/dist/node/groups/add-users-workflow/output-processors/_process-secondary-email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_process-secondary-email.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-secondary-email.ts"],"names":[],"mappings":";;;AACA,oFAA+E;AAC/E,gFAA2E;AAC3E,8CAA2D;AAE3D,
|
|
1
|
+
{"version":3,"file":"_process-secondary-email.js","sourceRoot":"","sources":["../../../../../src/groups/add-users-workflow/output-processors/_process-secondary-email.ts"],"names":[],"mappings":";;;AACA,oFAA+E;AAC/E,gFAA2E;AAC3E,8CAA2D;AAE3D,uDAAoD;AAEpD;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CACpC,OAA0B;IAE1B,IAAI,QAAQ,GAA+B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE,gHAAgH;IAChH,IACE,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,WAAW;QACnB,iBAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,EACxC;QACA,MAAM,aAAa,GAAU,wBAAc,CACzC,OAAO,EACP,6BAA6B,EAC7B,EAAE,CACH,CAAC;QACF,MAAM,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAClE,+BAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAChC,CAAC;QACF,QAAQ,GAAG,6BAAa,CACtB,wBAAwB,EACxB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,WAAW,CAAC,cAAc,EAClC,2BAAW,CAAC,aAAa,CAAC,CAC3B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,OAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AA/BD,wDA+BC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addOrInviteUsersToGroup = void 0;
|
|
4
|
+
const AddOrInviteUsersToGroupUtils_1 = require("./_internal/AddOrInviteUsersToGroupUtils");
|
|
5
|
+
/**
|
|
6
|
+
* Add or invite N users to a single group
|
|
7
|
+
* Org|community|world logic flows are run even if there are no users applicable for that particular path.
|
|
8
|
+
* Results from each path are consolidated and surfaced in the return object as failures and errors are of
|
|
9
|
+
* more importance than successes.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @param {string} groupId Group we are adding users to
|
|
13
|
+
* @param {IUserWithOrgType[]} users array of users to add
|
|
14
|
+
* @param {IAuthenticationManager} primaryRO primary requestOptions
|
|
15
|
+
* @param {boolean} canAutoAddUser Can we automatically add a user to the group?
|
|
16
|
+
* @param {boolean} addUserAsGroupAdmin Should the user be added as a group administrator
|
|
17
|
+
* @param {IAddOrInviteEmail} email Email object
|
|
18
|
+
* @return {IAddOrInviteToGroupResult} Result object
|
|
19
|
+
*/
|
|
20
|
+
async function addOrInviteUsersToGroup(groupId, users, primaryRO, canAutoAddUser, addUserAsGroupAdmin, email) {
|
|
21
|
+
// Group users by their org relationship
|
|
22
|
+
const parsedUsers = AddOrInviteUsersToGroupUtils_1.groupUsersByOrgRelationship(users);
|
|
23
|
+
// build up params for the context
|
|
24
|
+
const inputParams = {
|
|
25
|
+
groupId,
|
|
26
|
+
primaryRO,
|
|
27
|
+
allUsers: users,
|
|
28
|
+
canAutoAddUser,
|
|
29
|
+
addUserAsGroupAdmin,
|
|
30
|
+
email,
|
|
31
|
+
};
|
|
32
|
+
// create context from params and parsed users
|
|
33
|
+
const context = Object.assign(inputParams, parsedUsers);
|
|
34
|
+
// result obj by org relationship
|
|
35
|
+
const result = {
|
|
36
|
+
community: await AddOrInviteUsersToGroupUtils_1.addOrInviteCommunityUsers(context),
|
|
37
|
+
org: await AddOrInviteUsersToGroupUtils_1.addOrInviteOrgUsers(context),
|
|
38
|
+
world: await AddOrInviteUsersToGroupUtils_1.addOrInviteWorldUsers(context),
|
|
39
|
+
partnered: await AddOrInviteUsersToGroupUtils_1.addOrInvitePartneredUsers(context),
|
|
40
|
+
collaborationCoordinator: await AddOrInviteUsersToGroupUtils_1.addOrInviteCollaborationCoordinators(context),
|
|
41
|
+
notAdded: [],
|
|
42
|
+
notInvited: [],
|
|
43
|
+
notEmailed: [],
|
|
44
|
+
errors: [],
|
|
45
|
+
groupId,
|
|
46
|
+
};
|
|
47
|
+
// Bring not added / invited / emailed / errors up to the top level
|
|
48
|
+
result.notAdded = [
|
|
49
|
+
...result.community.notAdded,
|
|
50
|
+
...result.org.notAdded,
|
|
51
|
+
...result.world.notAdded,
|
|
52
|
+
];
|
|
53
|
+
result.notInvited = [
|
|
54
|
+
...result.community.notInvited,
|
|
55
|
+
...result.org.notInvited,
|
|
56
|
+
...result.world.notInvited,
|
|
57
|
+
];
|
|
58
|
+
result.notEmailed = [
|
|
59
|
+
...result.community.notEmailed,
|
|
60
|
+
...result.org.notEmailed,
|
|
61
|
+
...result.world.notEmailed,
|
|
62
|
+
];
|
|
63
|
+
result.errors = [
|
|
64
|
+
...result.community.errors,
|
|
65
|
+
...result.org.errors,
|
|
66
|
+
...result.world.errors,
|
|
67
|
+
];
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
exports.addOrInviteUsersToGroup = addOrInviteUsersToGroup;
|
|
71
|
+
//# sourceMappingURL=addOrInviteUsersToGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addOrInviteUsersToGroup.js","sourceRoot":"","sources":["../../../src/groups/addOrInviteUsersToGroup.ts"],"names":[],"mappings":";;;AAQA,2FAOkD;AAElD;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,uBAAuB,CAC3C,OAAe,EACf,KAAyB,EACzB,SAAiC,EACjC,cAAuB,EACvB,mBAA4B,EAC5B,KAAwB;IAExB,wCAAwC;IACxC,MAAM,WAAW,GAAyB,0DAA2B,CAAC,KAAK,CAAC,CAAC;IAC7E,kCAAkC;IAClC,MAAM,WAAW,GAAG;QAClB,OAAO;QACP,SAAS;QACT,QAAQ,EAAE,KAAK;QACf,cAAc;QACd,mBAAmB;QACnB,KAAK;KACN,CAAC;IACF,8CAA8C;IAC9C,MAAM,OAAO,GAAwB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC7E,iCAAiC;IACjC,MAAM,MAAM,GAA8B;QACxC,SAAS,EAAE,MAAM,wDAAyB,CAAC,OAAO,CAAC;QACnD,GAAG,EAAE,MAAM,kDAAmB,CAAC,OAAO,CAAC;QACvC,KAAK,EAAE,MAAM,oDAAqB,CAAC,OAAO,CAAC;QAC3C,SAAS,EAAE,MAAM,wDAAyB,CAAC,OAAO,CAAC;QACnD,wBAAwB,EAAE,MAAM,mEAAoC,CAClE,OAAO,CACR;QACD,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,OAAO;KACR,CAAC;IACF,mEAAmE;IACnE,MAAM,CAAC,QAAQ,GAAG;QAChB,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;QAC5B,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ;QACtB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ;KACzB,CAAC;IACF,MAAM,CAAC,UAAU,GAAG;QAClB,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QAC9B,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU;QACxB,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU;KAC3B,CAAC;IACF,MAAM,CAAC,UAAU,GAAG;QAClB,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;QAC9B,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU;QACxB,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU;KAC3B,CAAC;IACF,MAAM,CAAC,MAAM,GAAG;QACd,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM;QAC1B,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM;QACpB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;KACvB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1DD,0DA0DC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addOrInviteUsersToGroups = void 0;
|
|
4
|
+
const addOrInviteUsersToGroup_1 = require("./addOrInviteUsersToGroup");
|
|
5
|
+
/**
|
|
6
|
+
* addOrInviteUsersToGroups adds/invites N users to N groups
|
|
7
|
+
* Initial entry point function for add/invite members flow
|
|
8
|
+
* when dealing with multiple groups.
|
|
9
|
+
* Responses from each group are then consolidated into the final returned object.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @param {string[]} groupIds array of groups we are adding users to
|
|
13
|
+
* @param {IUserWithOrgType[]} users array of users to add to those groups
|
|
14
|
+
* @param {IAuthenticationManager} primaryRO primary requestOptions
|
|
15
|
+
* @param {boolean} [canAutoAddUser=false] Can we automatically add a user to the group?
|
|
16
|
+
* @param {boolean} [addUserAsGroupAdmin=false] Can the user be added to a group as an administrator of that group?
|
|
17
|
+
* @param {IAddOrInviteEmail} [email] Email object contains auth for the email && the email object itself
|
|
18
|
+
* @return {*} {Promise<{
|
|
19
|
+
* notAdded: string[];
|
|
20
|
+
* notInvited: string[];
|
|
21
|
+
* notEmailed: string[];
|
|
22
|
+
* errors: ArcGISRequestError[];
|
|
23
|
+
* responses: IAddOrInviteToGroupResult[];
|
|
24
|
+
* }>} Results object
|
|
25
|
+
*/
|
|
26
|
+
async function addOrInviteUsersToGroups(groupIds, users, primaryRO, canAutoAddUser = false, addUserAsGroupAdmin = false, email) {
|
|
27
|
+
let notAdded = [];
|
|
28
|
+
let notInvited = [];
|
|
29
|
+
let notEmailed = [];
|
|
30
|
+
let errors = [];
|
|
31
|
+
const responses = [];
|
|
32
|
+
// need to for..of loop this as a reduce will overwrite promises during execution
|
|
33
|
+
// this way we get an object of each group id nicely.
|
|
34
|
+
for (const groupId of groupIds) {
|
|
35
|
+
// For each group we'll add the users to them.
|
|
36
|
+
const result = await addOrInviteUsersToGroup_1.addOrInviteUsersToGroup(groupId, users, primaryRO, canAutoAddUser, addUserAsGroupAdmin, email);
|
|
37
|
+
// attach each groups results
|
|
38
|
+
responses.push(result);
|
|
39
|
+
// surface results to the top of the stack...
|
|
40
|
+
notAdded = notAdded.concat(result.notAdded);
|
|
41
|
+
errors = errors.concat(result.errors);
|
|
42
|
+
notInvited = notInvited.concat(result.notInvited);
|
|
43
|
+
notEmailed = notEmailed.concat(result.notEmailed);
|
|
44
|
+
}
|
|
45
|
+
// Return built up result object.
|
|
46
|
+
return {
|
|
47
|
+
notAdded,
|
|
48
|
+
notInvited,
|
|
49
|
+
notEmailed,
|
|
50
|
+
errors,
|
|
51
|
+
responses,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.addOrInviteUsersToGroups = addOrInviteUsersToGroups;
|
|
55
|
+
//# sourceMappingURL=addOrInviteUsersToGroups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addOrInviteUsersToGroups.js","sourceRoot":"","sources":["../../../src/groups/addOrInviteUsersToGroups.ts"],"names":[],"mappings":";;;AASA,uEAAoE;AAEpE;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAkB,EAClB,KAAyB,EACzB,SAAiC,EACjC,iBAA0B,KAAK,EAC/B,sBAA+B,KAAK,EACpC,KAAyB;IAQzB,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAyB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,iFAAiF;IACjF,qDAAqD;IACrD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,iDAAuB,CAC1C,OAAO,EACP,KAAK,EACL,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,KAAK,CACN,CAAC;QACF,6BAA6B;QAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,6CAA6C;QAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACnD;IACD,iCAAiC;IACjC,OAAO;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC;AA/CD,4DA+CC"}
|
package/dist/node/groups/{add-users-workflow/workflow-sections/auto-add-users.js → autoAddUsers.js}
RENAMED
|
@@ -17,12 +17,12 @@ function autoAddUsers(id, users, authentication) {
|
|
|
17
17
|
if (users.length) {
|
|
18
18
|
const args = {
|
|
19
19
|
id,
|
|
20
|
-
users: users.map(u => u.username),
|
|
21
|
-
authentication
|
|
20
|
+
users: users.map((u) => u.username),
|
|
21
|
+
authentication,
|
|
22
22
|
};
|
|
23
23
|
response = arcgis_rest_portal_1.addGroupUsers(args);
|
|
24
24
|
}
|
|
25
25
|
return response;
|
|
26
26
|
}
|
|
27
27
|
exports.autoAddUsers = autoAddUsers;
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=autoAddUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoAddUsers.js","sourceRoot":"","sources":["../../../src/groups/autoAddUsers.ts"],"names":[],"mappings":";;;AACA,iEAIkC;AAGlC;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,EAAU,EACV,KAAc,EACd,cAAsC;IAEtC,IAAI,QAAQ,GAAyC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,IAAI,GAA0B;YAClC,EAAE;YACF,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnC,cAAc;SACf,CAAC;QACF,QAAQ,GAAG,kCAAa,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAhBD,oCAgBC"}
|
|
@@ -20,7 +20,7 @@ function emailOrgUsers(users, email, authentication, isOrgAdmin) {
|
|
|
20
20
|
message: email.body,
|
|
21
21
|
subject: email.subject,
|
|
22
22
|
notificationChannelType: "email",
|
|
23
|
-
users: users.map(u => u.username)
|
|
23
|
+
users: users.map((u) => u.username),
|
|
24
24
|
};
|
|
25
25
|
if (!isOrgAdmin) {
|
|
26
26
|
args.batchSize = 1;
|
|
@@ -30,4 +30,4 @@ function emailOrgUsers(users, email, authentication, isOrgAdmin) {
|
|
|
30
30
|
return response;
|
|
31
31
|
}
|
|
32
32
|
exports.emailOrgUsers = emailOrgUsers;
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=emailOrgUsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailOrgUsers.js","sourceRoot":"","sources":["../../../src/groups/emailOrgUsers.ts"],"names":[],"mappings":";;;AACA,iEAIkC;AAIlC;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,KAAc,EACd,KAAa,EACb,cAAsC,EACtC,UAAmB;IAEnB,IAAI,QAAQ,GACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,IAAI,GAAkC;YAC1C,cAAc;YACd,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,uBAAuB,EAAE,OAAO;YAChC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACpC,CAAC;QACF,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,QAAQ,GAAG,0CAAqB,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAvBD,sCAuBC"}
|
|
@@ -6,4 +6,12 @@ tslib_1.__exportStar(require("./add-users-workflow"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./types"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./HubGroups"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./HubGroup"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./addOrInviteUsersToGroup"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./addOrInviteUsersToGroups"), exports);
|
|
11
|
+
// TODO: The below are being used in hub-teams. When we deprecate that package we can move
|
|
12
|
+
// The below into _internal and remove the exports from here. They were previously in
|
|
13
|
+
// the add-users-workflow directory
|
|
14
|
+
tslib_1.__exportStar(require("./autoAddUsers"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./inviteUsers"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./emailOrgUsers"), exports);
|
|
9
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groups/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,+DAAqC;AACrC,kDAAwB;AACxB,sDAA4B;AAC5B,qDAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groups/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,+DAAqC;AACrC,kDAAwB;AACxB,sDAA4B;AAC5B,qDAA2B;AAC3B,oEAA0C;AAC1C,qEAA2C;AAC3C,0FAA0F;AAC1F,qFAAqF;AACrF,mCAAmC;AACnC,yDAA+B;AAC/B,wDAA8B;AAC9B,0DAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inviteUsers.js","sourceRoot":"","sources":["../../../src/groups/inviteUsers.ts"],"names":[],"mappings":";;;AACA,iEAIkC;AAGlC;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CACzB,EAAU,EACV,KAAc,EACd,cAAsC,EACtC,UAAU,GAAG,KAAK,EAAE,+DAA+D;AACnF,OAAuC,cAAc,CAAC,4DAA4D;;IAElH,IAAI,QAAQ,GAA4C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,IAAI,GAA6B;YACrC,EAAE;YACF,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnC,cAAc;YACd,IAAI;YACJ,UAAU;SACX,CAAC;QAEF,QAAQ,GAAG,qCAAgB,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AArBD,kCAqBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/groups/types/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/groups/types/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C;AAC1C,kDAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/groups/types/types.ts"],"names":[],"mappings":""}
|
|
@@ -4,6 +4,8 @@ exports.computeProps = void 0;
|
|
|
4
4
|
const resources_1 = require("../../resources");
|
|
5
5
|
const processEntityFeatures_1 = require("../../permissions/_internal/processEntityFeatures");
|
|
6
6
|
const PageBusinessRules_1 = require("./PageBusinessRules");
|
|
7
|
+
const get_item_home_url_1 = require("../../urls/get-item-home-url");
|
|
8
|
+
const getRelativeWorkspaceUrl_1 = require("../../core/getRelativeWorkspaceUrl");
|
|
7
9
|
/**
|
|
8
10
|
* Given a model and a page, set various computed properties that can't be directly mapped
|
|
9
11
|
* @private
|
|
@@ -20,7 +22,16 @@ function computeProps(model, page, requestOptions) {
|
|
|
20
22
|
token = session.token;
|
|
21
23
|
}
|
|
22
24
|
// thumbnail url
|
|
23
|
-
|
|
25
|
+
const thumbnailUrl = resources_1.getItemThumbnailUrl(model.item, requestOptions, token);
|
|
26
|
+
// TODO: Remove this once opendata-ui starts using `links.thumbnail` instead
|
|
27
|
+
page.thumbnailUrl = thumbnailUrl;
|
|
28
|
+
page.links = {
|
|
29
|
+
self: get_item_home_url_1.getItemHomeUrl(page.id, requestOptions),
|
|
30
|
+
siteRelative: `/pages/${page.id}`,
|
|
31
|
+
workspaceRelative: getRelativeWorkspaceUrl_1.getRelativeWorkspaceUrl("page", page.id),
|
|
32
|
+
layoutRelative: `/pages/${page.id}/edit`,
|
|
33
|
+
thumbnail: thumbnailUrl,
|
|
34
|
+
};
|
|
24
35
|
// Handle Dates
|
|
25
36
|
page.createdDate = new Date(model.item.created);
|
|
26
37
|
page.createdDateSource = "item.created";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;
|
|
1
|
+
{"version":3,"file":"computeProps.js","sourceRoot":"","sources":["../../../../src/pages/_internal/computeProps.ts"],"names":[],"mappings":";;;AAEA,+CAAsD;AAGtD,6FAA0F;AAC1F,2DAA0D;AAC1D,oEAA8D;AAG9D,gFAA6E;AAE7E;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,IAAuB,EACvB,cAA+B;;IAE/B,IAAI,KAAa,CAAC;IAClB,IAAI,cAAc,CAAC,cAAc,EAAE;QACjC,MAAM,OAAO,GAAgB,cAAc,CAAC,cAA6B,CAAC;QAC1E,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;KACvB;IACD,gBAAgB;IAChB,MAAM,YAAY,GAAG,+BAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAC5E,4EAA4E;IAC5E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,IAAI,CAAC,KAAK,GAAG;QACX,IAAI,EAAE,kCAAc,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;QAC7C,YAAY,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE;QACjC,iBAAiB,EAAE,iDAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3D,cAAc,EAAE,UAAU,IAAI,CAAC,EAAE,OAAO;QACxC,SAAS,EAAE,YAAY;KACxB,CAAC;IAEF,eAAe;IACf,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,iBAAiB,GAAG,cAAc,CAAC;IACxC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAEzC;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,6CAAqB,CACnC,OAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,EACnC,uCAAmB,CACpB,CAAC;IAEF,wDAAwD;IACxD,OAAO,IAAgB,CAAC;AAC1B,CAAC;AAvCD,oCAuCC"}
|