@pnp/cli-microsoft365 10.0.0-beta.04ac437 → 10.0.0-beta.1a88ed2
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/.eslintrc.cjs +1 -0
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/Auth.js +3 -3
- package/dist/AuthServer.js +7 -7
- package/dist/api.js +1 -1
- package/dist/appInsights.js +6 -4
- package/dist/config.js +1 -0
- package/dist/m365/cli/commands/cli-doctor.js +2 -2
- package/dist/m365/cli/commands.js +1 -2
- package/dist/m365/commands/login.js +122 -69
- package/dist/m365/commands/setup.js +1 -1
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-add.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-get.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-list.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-add.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-get.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-member-list.js +0 -5
- package/dist/m365/entra/commands/administrativeunit/administrativeunit-remove.js +0 -5
- package/dist/m365/entra/commands/app/app-add.js +0 -5
- package/dist/m365/entra/commands/app/app-get.js +0 -5
- package/dist/m365/entra/commands/app/app-list.js +0 -5
- package/dist/m365/entra/commands/app/app-permission-add.js +0 -5
- package/dist/m365/entra/commands/app/app-remove.js +0 -5
- package/dist/m365/entra/commands/app/app-role-add.js +0 -5
- package/dist/m365/entra/commands/app/app-role-list.js +0 -5
- package/dist/m365/entra/commands/app/app-role-remove.js +0 -5
- package/dist/m365/entra/commands/app/app-set.js +0 -5
- package/dist/m365/entra/commands/approleassignment/approleassignment-add.js +0 -5
- package/dist/m365/entra/commands/approleassignment/approleassignment-list.js +0 -5
- package/dist/m365/entra/commands/approleassignment/approleassignment-remove.js +0 -5
- package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-add.js +0 -5
- package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-get.js +0 -5
- package/dist/m365/entra/commands/enterpriseapp/enterpriseapp-list.js +0 -5
- package/dist/m365/entra/commands/group/group-add.js +0 -4
- package/dist/m365/entra/commands/group/group-get.js +0 -5
- package/dist/m365/entra/commands/group/group-list.js +0 -5
- package/dist/m365/entra/commands/group/{group-user-add.js → group-member-add.js} +18 -18
- package/dist/m365/entra/commands/group/{group-user-list.js → group-member-list.js} +16 -21
- package/dist/m365/entra/commands/group/{group-user-set.js → group-member-set.js} +19 -19
- package/dist/m365/entra/commands/group/group-remove.js +0 -5
- package/dist/m365/entra/commands/groupsetting/groupsetting-add.js +0 -5
- package/dist/m365/entra/commands/groupsetting/groupsetting-get.js +0 -5
- package/dist/m365/entra/commands/groupsetting/groupsetting-list.js +0 -5
- package/dist/m365/entra/commands/groupsetting/groupsetting-remove.js +0 -5
- package/dist/m365/entra/commands/groupsetting/groupsetting-set.js +0 -5
- package/dist/m365/entra/commands/groupsettingtemplate/groupsettingtemplate-get.js +0 -5
- package/dist/m365/entra/commands/groupsettingtemplate/groupsettingtemplate-list.js +0 -5
- package/dist/m365/entra/commands/license/license-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-add.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-get.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-remove.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-renew.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-report-activitycounts.js +0 -4
- package/dist/m365/entra/commands/m365group/m365group-report-activitydetail.js +0 -4
- package/dist/m365/entra/commands/m365group/m365group-report-activityfilecounts.js +0 -4
- package/dist/m365/entra/commands/m365group/m365group-report-activitygroupcounts.js +0 -4
- package/dist/m365/entra/commands/m365group/m365group-report-activitystorage.js +0 -4
- package/dist/m365/entra/commands/m365group/m365group-set.js +159 -86
- package/dist/m365/entra/commands/m365group/m365group-teamify.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-user-add.js +5 -18
- package/dist/m365/entra/commands/m365group/m365group-user-list.js +0 -5
- package/dist/m365/entra/commands/m365group/m365group-user-remove.js +93 -62
- package/dist/m365/entra/commands/m365group/m365group-user-set.js +3 -15
- package/dist/m365/entra/commands/oauth2grant/oauth2grant-add.js +0 -5
- package/dist/m365/entra/commands/oauth2grant/oauth2grant-list.js +3 -17
- package/dist/m365/entra/commands/oauth2grant/oauth2grant-remove.js +0 -5
- package/dist/m365/entra/commands/oauth2grant/oauth2grant-set.js +0 -5
- package/dist/m365/entra/commands/policy/policy-list.js +0 -5
- package/dist/m365/entra/commands/siteclassification/siteclassification-disable.js +0 -5
- package/dist/m365/entra/commands/siteclassification/siteclassification-enable.js +0 -5
- package/dist/m365/entra/commands/siteclassification/siteclassification-get.js +0 -5
- package/dist/m365/entra/commands/siteclassification/siteclassification-set.js +0 -5
- package/dist/m365/entra/commands/user/user-add.js +0 -5
- package/dist/m365/entra/commands/user/user-get.js +0 -5
- package/dist/m365/entra/commands/user/user-guest-add.js +0 -5
- package/dist/m365/entra/commands/user/user-hibp.js +0 -5
- package/dist/m365/entra/commands/user/user-license-add.js +0 -5
- package/dist/m365/entra/commands/user/user-license-list.js +0 -5
- package/dist/m365/entra/commands/user/user-license-remove.js +0 -5
- package/dist/m365/entra/commands/user/user-list.js +0 -5
- package/dist/m365/entra/commands/user/user-password-validate.js +0 -5
- package/dist/m365/entra/commands/user/user-recyclebinitem-clear.js +0 -5
- package/dist/m365/entra/commands/user/user-recyclebinitem-list.js +0 -5
- package/dist/m365/entra/commands/user/user-recyclebinitem-remove.js +0 -5
- package/dist/m365/entra/commands/user/user-recyclebinitem-restore.js +0 -5
- package/dist/m365/entra/commands/user/user-registrationdetails-list.js +0 -4
- package/dist/m365/entra/commands/user/user-remove.js +0 -5
- package/dist/m365/entra/commands/user/user-set.js +0 -5
- package/dist/m365/entra/commands/user/user-signin-list.js +0 -5
- package/dist/m365/entra/commands.js +3 -3
- package/dist/m365/external/commands/item/item-add.js +2 -5
- package/dist/m365/file/commands/file-move.js +4 -4
- package/dist/m365/flow/commands/environment/environment-list.js +1 -1
- package/dist/m365/pa/commands/app/app-list.js +1 -6
- package/dist/m365/pa/commands/connector/connector-list.js +1 -6
- package/dist/m365/pa/commands/environment/environment-list.js +1 -1
- package/dist/m365/pp/commands/environment/environment-list.js +1 -1
- package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.20.0-rc.1.js → doctor-1.20.0.js} +4 -2
- package/dist/m365/spfx/commands/project/project-doctor/rules/FN002021_DEVDEP_rushstack_eslint_config.js +10 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.20.0-rc.1.js → upgrade-1.20.0.js} +28 -26
- package/dist/m365/spfx/commands/project/project-upgrade.js +13 -15
- package/dist/m365/spfx/commands/spfx-doctor.js +1 -1
- package/dist/m365/spo/commands/app/app-instance-list.js +3 -18
- package/dist/m365/spo/commands/app/app-list.js +1 -8
- package/dist/m365/spo/commands/feature/feature-list.js +1 -8
- package/dist/m365/spo/commands/file/file-copy.js +6 -6
- package/dist/m365/spo/commands/file/file-move.js +6 -6
- package/dist/m365/spo/commands/file/file-remove.js +7 -1
- package/dist/m365/spo/commands/folder/folder-move.js +43 -35
- package/dist/m365/spo/commands/group/group-member-add.js +3 -23
- package/dist/m365/spo/commands/group/group-member-remove.js +1 -18
- package/dist/m365/spo/commands/list/list-remove.js +14 -4
- package/dist/m365/spo/commands/list/list-webhook-list.js +1 -6
- package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +1 -8
- package/dist/m365/spo/commands/page/page-list.js +1 -1
- package/dist/m365/spo/commands/page/page-remove.js +37 -16
- package/dist/m365/spo/commands/page/page-template-list.js +1 -3
- package/dist/m365/spo/commands/site/site-admin-list.js +8 -9
- package/dist/m365/spo/commands/site/site-admin-remove.js +5 -4
- package/dist/m365/spo/commands/site/site-sharingpermission-set.js +68 -0
- package/dist/m365/spo/commands/sitescript/sitescript-list.js +1 -3
- package/dist/m365/spo/commands/tenant/tenant-site-membership-list.js +118 -0
- package/dist/m365/spo/commands/{site/site-rename.js → tenant/tenant-site-rename.js} +29 -32
- package/dist/m365/spo/commands/theme/theme-list.js +1 -1
- package/dist/m365/spo/commands/user/user-ensure.js +1 -11
- package/dist/m365/spo/commands/web/web-clientsidewebpart-list.js +1 -6
- package/dist/m365/spo/commands.js +3 -1
- package/dist/m365/spp/commands/model/model-list.js +57 -0
- package/dist/m365/spp/commands.js +2 -1
- package/dist/m365/teams/commands/channel/channel-get.js +15 -50
- package/dist/m365/teams/commands/tab/tab-list.js +5 -3
- package/dist/m365/teams/commands/team/team-get.js +16 -21
- package/dist/m365/viva/commands/engage/Community.js +2 -0
- package/dist/m365/viva/commands/engage/engage-community-list.js +28 -0
- package/dist/m365/viva/commands.js +1 -0
- package/dist/request.js +46 -61
- package/dist/telemetryRunner.js +2 -2
- package/dist/utils/spo.js +95 -28
- package/dist/utils/spp.js +22 -0
- package/dist/utils/teams.js +47 -5
- package/dist/utils/timersUtil.js +13 -0
- package/dist/utils/urlUtil.js +8 -0
- package/dist/utils/zod.js +11 -2
- package/docs/docs/cmd/cli/cli-doctor.mdx +24 -23
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-add.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-get.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-list.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-add.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-get.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-list.mdx +0 -6
- package/docs/docs/cmd/entra/administrativeunit/administrativeunit-remove.mdx +0 -6
- package/docs/docs/cmd/entra/app/app-add.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-get.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-list.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-permission-add.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-permission-list.mdx +0 -6
- package/docs/docs/cmd/entra/app/app-remove.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-role-add.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-role-list.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-role-remove.mdx +0 -1
- package/docs/docs/cmd/entra/app/app-set.mdx +0 -1
- package/docs/docs/cmd/entra/approleassignment/approleassignment-add.mdx +0 -6
- package/docs/docs/cmd/entra/approleassignment/approleassignment-list.mdx +0 -6
- package/docs/docs/cmd/entra/approleassignment/approleassignment-remove.mdx +0 -6
- package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-add.mdx +0 -1
- package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-get.mdx +0 -1
- package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-list.mdx +0 -1
- package/docs/docs/cmd/entra/group/group-add.mdx +0 -6
- package/docs/docs/cmd/entra/group/group-get.mdx +0 -6
- package/docs/docs/cmd/entra/group/group-list.mdx +0 -6
- package/docs/docs/cmd/entra/group/group-member-add.mdx +62 -0
- package/docs/docs/cmd/entra/group/{group-user-list.mdx → group-member-list.mdx} +14 -20
- package/docs/docs/cmd/entra/group/group-member-set.mdx +62 -0
- package/docs/docs/cmd/entra/group/group-remove.mdx +0 -6
- package/docs/docs/cmd/entra/groupsetting/groupsetting-add.mdx +0 -6
- package/docs/docs/cmd/entra/groupsetting/groupsetting-get.mdx +0 -6
- package/docs/docs/cmd/entra/groupsetting/groupsetting-list.mdx +0 -6
- package/docs/docs/cmd/entra/groupsetting/groupsetting-remove.mdx +0 -6
- package/docs/docs/cmd/entra/groupsetting/groupsetting-set.mdx +0 -6
- package/docs/docs/cmd/entra/groupsettingtemplate/groupsettingtemplate-get.mdx +0 -6
- package/docs/docs/cmd/entra/groupsettingtemplate/groupsettingtemplate-list.mdx +0 -6
- package/docs/docs/cmd/entra/license/license-list.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-add.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-conversation-list.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-conversation-post-list.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-get.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-list.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-clear.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-list.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-remove.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-restore.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-remove.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-renew.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-report-activitycounts.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-report-activitydetail.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-report-activityfilecounts.mdx +0 -6
- package/docs/docs/cmd/entra/m365group/m365group-report-activitygroupcounts.mdx +2 -8
- package/docs/docs/cmd/entra/m365group/m365group-report-activitystorage.mdx +2 -8
- package/docs/docs/cmd/entra/m365group/m365group-set.mdx +38 -23
- package/docs/docs/cmd/entra/m365group/m365group-teamify.mdx +5 -11
- package/docs/docs/cmd/entra/m365group/m365group-user-add.mdx +5 -14
- package/docs/docs/cmd/entra/m365group/m365group-user-list.mdx +0 -12
- package/docs/docs/cmd/entra/m365group/m365group-user-remove.mdx +29 -21
- package/docs/docs/cmd/entra/m365group/m365group-user-set.mdx +4 -17
- package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +3 -9
- package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +1 -7
- package/docs/docs/cmd/entra/oauth2grant/oauth2grant-remove.mdx +4 -10
- package/docs/docs/cmd/entra/oauth2grant/oauth2grant-set.mdx +3 -9
- package/docs/docs/cmd/entra/policy/policy-list.mdx +3 -9
- package/docs/docs/cmd/entra/siteclassification/siteclassification-disable.mdx +3 -9
- package/docs/docs/cmd/entra/siteclassification/siteclassification-enable.mdx +7 -13
- package/docs/docs/cmd/entra/siteclassification/siteclassification-get.mdx +1 -7
- package/docs/docs/cmd/entra/siteclassification/siteclassification-set.mdx +8 -14
- package/docs/docs/cmd/entra/user/user-add.mdx +4 -10
- package/docs/docs/cmd/entra/user/user-get.mdx +7 -13
- package/docs/docs/cmd/entra/user/user-guest-add.mdx +3 -9
- package/docs/docs/cmd/entra/user/user-hibp.mdx +2 -8
- package/docs/docs/cmd/entra/user/user-license-add.mdx +0 -6
- package/docs/docs/cmd/entra/user/user-license-list.mdx +0 -6
- package/docs/docs/cmd/entra/user/user-license-remove.mdx +2 -8
- package/docs/docs/cmd/entra/user/user-list.mdx +1 -7
- package/docs/docs/cmd/entra/user/user-password-validate.mdx +1 -7
- package/docs/docs/cmd/entra/user/user-recyclebinitem-clear.mdx +2 -8
- package/docs/docs/cmd/entra/user/user-recyclebinitem-list.mdx +0 -6
- package/docs/docs/cmd/entra/user/user-recyclebinitem-remove.mdx +2 -8
- package/docs/docs/cmd/entra/user/user-recyclebinitem-restore.mdx +0 -6
- package/docs/docs/cmd/entra/user/user-registrationdetails-list.mdx +7 -13
- package/docs/docs/cmd/entra/user/user-remove.mdx +2 -8
- package/docs/docs/cmd/entra/user/user-set.mdx +0 -6
- package/docs/docs/cmd/entra/user/user-signin-list.mdx +9 -15
- package/docs/docs/cmd/external/item/item-add.mdx +3 -3
- package/docs/docs/cmd/login.mdx +9 -0
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-move.mdx +1 -3
- package/docs/docs/cmd/spo/file/file-remove.mdx +13 -4
- package/docs/docs/cmd/spo/folder/folder-move.mdx +84 -13
- package/docs/docs/cmd/spo/group/group-member-add.mdx +8 -14
- package/docs/docs/cmd/spo/group/group-member-remove.mdx +5 -11
- package/docs/docs/cmd/spo/list/list-remove.mdx +10 -1
- package/docs/docs/cmd/spo/page/page-remove.mdx +30 -12
- package/docs/docs/cmd/spo/site/site-admin-list.mdx +64 -12
- package/docs/docs/cmd/spo/site/site-sharingpermission-set.mdx +58 -0
- package/docs/docs/cmd/spo/tenant/tenant-site-membership-list.mdx +122 -0
- package/docs/docs/cmd/spo/{site/site-rename.mdx → tenant/tenant-site-rename.mdx} +7 -7
- package/docs/docs/cmd/spo/user/user-ensure.mdx +2 -5
- package/docs/docs/cmd/spp/model/model-list.mdx +140 -0
- package/docs/docs/cmd/teams/tab/tab-list.mdx +1 -2
- package/docs/docs/cmd/viva/engage/engage-community-list.mdx +81 -0
- package/npm-shrinkwrap.json +2059 -389
- package/package.json +15 -15
- package/dist/m365/cli/commands/cli-reconsent.js +0 -29
- package/dist/m365/entra/aadCommands.js +0 -89
- package/dist/utils/driveUtil.js +0 -51
- package/docs/docs/cmd/cli/cli-reconsent.mdx +0 -62
- package/docs/docs/cmd/entra/group/group-user-add.mdx +0 -62
- package/docs/docs/cmd/entra/group/group-user-set.mdx +0 -62
|
@@ -5,11 +5,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
5
5
|
};
|
|
6
6
|
var _TeamsChannelGetCommand_instances, _TeamsChannelGetCommand_initTelemetry, _TeamsChannelGetCommand_initOptions, _TeamsChannelGetCommand_initValidators, _TeamsChannelGetCommand_initOptionSets;
|
|
7
7
|
import request from '../../../../request.js';
|
|
8
|
-
import { entraGroup } from '../../../../utils/entraGroup.js';
|
|
9
|
-
import { formatting } from '../../../../utils/formatting.js';
|
|
10
8
|
import { validation } from '../../../../utils/validation.js';
|
|
11
9
|
import GraphCommand from '../../../base/GraphCommand.js';
|
|
12
10
|
import commands from '../../commands.js';
|
|
11
|
+
import { teams } from '../../../../utils/teams.js';
|
|
13
12
|
class TeamsChannelGetCommand extends GraphCommand {
|
|
14
13
|
get name() {
|
|
15
14
|
return commands.CHANNEL_GET;
|
|
@@ -20,63 +19,29 @@ class TeamsChannelGetCommand extends GraphCommand {
|
|
|
20
19
|
constructor() {
|
|
21
20
|
super();
|
|
22
21
|
_TeamsChannelGetCommand_instances.add(this);
|
|
23
|
-
this.teamId = "";
|
|
24
22
|
__classPrivateFieldGet(this, _TeamsChannelGetCommand_instances, "m", _TeamsChannelGetCommand_initTelemetry).call(this);
|
|
25
23
|
__classPrivateFieldGet(this, _TeamsChannelGetCommand_instances, "m", _TeamsChannelGetCommand_initOptions).call(this);
|
|
26
24
|
__classPrivateFieldGet(this, _TeamsChannelGetCommand_instances, "m", _TeamsChannelGetCommand_initValidators).call(this);
|
|
27
25
|
__classPrivateFieldGet(this, _TeamsChannelGetCommand_instances, "m", _TeamsChannelGetCommand_initOptionSets).call(this);
|
|
28
26
|
}
|
|
29
|
-
async getTeamId(args) {
|
|
30
|
-
if (args.options.teamId) {
|
|
31
|
-
return args.options.teamId;
|
|
32
|
-
}
|
|
33
|
-
const group = await entraGroup.getGroupByDisplayName(args.options.teamName);
|
|
34
|
-
if (group.resourceProvisioningOptions.indexOf('Team') === -1) {
|
|
35
|
-
throw `The specified team does not exist in the Microsoft Teams`;
|
|
36
|
-
}
|
|
37
|
-
return group.id;
|
|
38
|
-
}
|
|
39
|
-
async getChannelId(args) {
|
|
40
|
-
if (args.options.id) {
|
|
41
|
-
return args.options.id;
|
|
42
|
-
}
|
|
43
|
-
if (args.options.primary) {
|
|
44
|
-
return '';
|
|
45
|
-
}
|
|
46
|
-
const channelRequestOptions = {
|
|
47
|
-
url: `${this.resource}/v1.0/teams/${formatting.encodeQueryParameter(this.teamId)}/channels?$filter=displayName eq '${formatting.encodeQueryParameter(args.options.name)}'`,
|
|
48
|
-
headers: {
|
|
49
|
-
accept: 'application/json;odata.metadata=none'
|
|
50
|
-
},
|
|
51
|
-
responseType: 'json'
|
|
52
|
-
};
|
|
53
|
-
const response = await request.get(channelRequestOptions);
|
|
54
|
-
const channelItem = response.value[0];
|
|
55
|
-
if (!channelItem) {
|
|
56
|
-
throw `The specified channel does not exist in the Microsoft Teams team`;
|
|
57
|
-
}
|
|
58
|
-
return channelItem.id;
|
|
59
|
-
}
|
|
60
27
|
async commandAction(logger, args) {
|
|
61
28
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
29
|
+
const teamId = args.options.teamId || await teams.getTeamIdByDisplayName(args.options.teamName);
|
|
30
|
+
let channel;
|
|
31
|
+
if (args.options.primary || args.options.id) {
|
|
32
|
+
const requestOptions = {
|
|
33
|
+
url: `${this.resource}/v1.0/teams/${teamId}/${args.options.primary ? 'primaryChannel' : `channels/${args.options.id}`}`,
|
|
34
|
+
headers: {
|
|
35
|
+
accept: 'application/json;odata.metadata=none'
|
|
36
|
+
},
|
|
37
|
+
responseType: 'json'
|
|
38
|
+
};
|
|
39
|
+
channel = await request.get(requestOptions);
|
|
67
40
|
}
|
|
68
41
|
else {
|
|
69
|
-
|
|
42
|
+
channel = await teams.getChannelByDisplayName(teamId, args.options.name);
|
|
70
43
|
}
|
|
71
|
-
|
|
72
|
-
url: url,
|
|
73
|
-
headers: {
|
|
74
|
-
accept: 'application/json;odata.metadata=none'
|
|
75
|
-
},
|
|
76
|
-
responseType: 'json'
|
|
77
|
-
};
|
|
78
|
-
const res = await request.get(requestOptions);
|
|
79
|
-
await logger.log(res);
|
|
44
|
+
await logger.log(channel);
|
|
80
45
|
}
|
|
81
46
|
catch (err) {
|
|
82
47
|
this.handleRejectedODataJsonPromise(err);
|
|
@@ -90,7 +55,7 @@ _TeamsChannelGetCommand_instances = new WeakSet(), _TeamsChannelGetCommand_initT
|
|
|
90
55
|
teamName: typeof args.options.teamName !== 'undefined',
|
|
91
56
|
id: typeof args.options.id !== 'undefined',
|
|
92
57
|
name: typeof args.options.name !== 'undefined',
|
|
93
|
-
primary:
|
|
58
|
+
primary: !!args.options.primary
|
|
94
59
|
});
|
|
95
60
|
});
|
|
96
61
|
}, _TeamsChannelGetCommand_initOptions = function _TeamsChannelGetCommand_initOptions() {
|
|
@@ -29,9 +29,11 @@ class TeamsTabListCommand extends GraphCommand {
|
|
|
29
29
|
const endpoint = `${this.resource}/v1.0/teams/${args.options.teamId}/channels/${formatting.encodeQueryParameter(args.options.channelId)}/tabs?$expand=teamsApp`;
|
|
30
30
|
try {
|
|
31
31
|
const items = await odata.getAllItems(endpoint);
|
|
32
|
-
|
|
33
|
-
i
|
|
34
|
-
|
|
32
|
+
if (args.options.output !== 'json') {
|
|
33
|
+
items.forEach(i => {
|
|
34
|
+
i.teamsAppTabId = i.teamsApp.id;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
35
37
|
await logger.log(items);
|
|
36
38
|
}
|
|
37
39
|
catch (err) {
|
|
@@ -5,11 +5,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
5
5
|
};
|
|
6
6
|
var _TeamsTeamGetCommand_instances, _TeamsTeamGetCommand_initTelemetry, _TeamsTeamGetCommand_initOptions, _TeamsTeamGetCommand_initValidators, _TeamsTeamGetCommand_initOptionSets;
|
|
7
7
|
import request from '../../../../request.js';
|
|
8
|
-
import { entraGroup } from '../../../../utils/entraGroup.js';
|
|
9
8
|
import { formatting } from '../../../../utils/formatting.js';
|
|
10
9
|
import { validation } from '../../../../utils/validation.js';
|
|
11
10
|
import GraphCommand from '../../../base/GraphCommand.js';
|
|
12
11
|
import commands from '../../commands.js';
|
|
12
|
+
import { teams } from '../../../../utils/teams.js';
|
|
13
13
|
class TeamsTeamGetCommand extends GraphCommand {
|
|
14
14
|
get name() {
|
|
15
15
|
return commands.TEAM_GET;
|
|
@@ -25,28 +25,23 @@ class TeamsTeamGetCommand extends GraphCommand {
|
|
|
25
25
|
__classPrivateFieldGet(this, _TeamsTeamGetCommand_instances, "m", _TeamsTeamGetCommand_initValidators).call(this);
|
|
26
26
|
__classPrivateFieldGet(this, _TeamsTeamGetCommand_instances, "m", _TeamsTeamGetCommand_initOptionSets).call(this);
|
|
27
27
|
}
|
|
28
|
-
async getTeamId(args) {
|
|
29
|
-
if (args.options.id) {
|
|
30
|
-
return args.options.id;
|
|
31
|
-
}
|
|
32
|
-
const group = await entraGroup.getGroupByDisplayName(args.options.name);
|
|
33
|
-
if (group.resourceProvisioningOptions.indexOf('Team') === -1) {
|
|
34
|
-
throw 'The specified team does not exist in the Microsoft Teams';
|
|
35
|
-
}
|
|
36
|
-
return group.id;
|
|
37
|
-
}
|
|
38
28
|
async commandAction(logger, args) {
|
|
39
29
|
try {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
30
|
+
let team;
|
|
31
|
+
if (args.options.id) {
|
|
32
|
+
const requestOptions = {
|
|
33
|
+
url: `${this.resource}/v1.0/teams/${formatting.encodeQueryParameter(args.options.id)}`,
|
|
34
|
+
headers: {
|
|
35
|
+
accept: 'application/json;odata.metadata=none'
|
|
36
|
+
},
|
|
37
|
+
responseType: 'json'
|
|
38
|
+
};
|
|
39
|
+
team = await request.get(requestOptions);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
team = await teams.getTeamByDisplayName(args.options.name);
|
|
43
|
+
}
|
|
44
|
+
await logger.log(team);
|
|
50
45
|
}
|
|
51
46
|
catch (err) {
|
|
52
47
|
this.handleRejectedODataJsonPromise(err);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { odata } from '../../../../utils/odata.js';
|
|
2
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
3
|
+
import commands from '../../commands.js';
|
|
4
|
+
class VivaEngageCommunityListCommand extends GraphCommand {
|
|
5
|
+
get name() {
|
|
6
|
+
return commands.ENGAGE_COMMUNITY_LIST;
|
|
7
|
+
}
|
|
8
|
+
get description() {
|
|
9
|
+
return 'Lists all Viva Engage communities';
|
|
10
|
+
}
|
|
11
|
+
defaultProperties() {
|
|
12
|
+
return ['id', 'displayName', 'privacy'];
|
|
13
|
+
}
|
|
14
|
+
async commandAction(logger) {
|
|
15
|
+
if (this.verbose) {
|
|
16
|
+
await logger.logToStderr('Getting all Viva Engage communities...');
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const results = await odata.getAllItems(`${this.resource}/v1.0/employeeExperience/communities`);
|
|
20
|
+
await logger.log(results);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
this.handleRejectedODataJsonPromise(err);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export default new VivaEngageCommunityListCommand();
|
|
28
|
+
//# sourceMappingURL=engage-community-list.js.map
|
|
@@ -3,6 +3,7 @@ export default {
|
|
|
3
3
|
CONNECTIONS_APP_CREATE: `${prefix} connections app create`,
|
|
4
4
|
ENGAGE_COMMUNITY_ADD: `${prefix} engage community add`,
|
|
5
5
|
ENGAGE_COMMUNITY_GET: `${prefix} engage community get`,
|
|
6
|
+
ENGAGE_COMMUNITY_LIST: `${prefix} engage community list`,
|
|
6
7
|
ENGAGE_GROUP_LIST: `${prefix} engage group list`,
|
|
7
8
|
ENGAGE_GROUP_USER_ADD: `${prefix} engage group user add`,
|
|
8
9
|
ENGAGE_GROUP_USER_REMOVE: `${prefix} engage group user remove`,
|
package/dist/request.js
CHANGED
|
@@ -4,6 +4,7 @@ import auth, { Auth } from './Auth.js';
|
|
|
4
4
|
import { app } from './utils/app.js';
|
|
5
5
|
import { formatting } from './utils/formatting.js';
|
|
6
6
|
import { timings } from './cli/timings.js';
|
|
7
|
+
import { timersUtil } from './utils/timersUtil.js';
|
|
7
8
|
class Request {
|
|
8
9
|
set debug(debug) {
|
|
9
10
|
// if the value to set is the same as current value return early to avoid
|
|
@@ -125,76 +126,60 @@ class Request {
|
|
|
125
126
|
options.method = 'HEAD';
|
|
126
127
|
return this.execute(options);
|
|
127
128
|
}
|
|
128
|
-
execute(options
|
|
129
|
+
async execute(options) {
|
|
129
130
|
const start = process.hrtime.bigint();
|
|
130
131
|
if (!this._logger) {
|
|
131
|
-
|
|
132
|
+
throw 'Logger not set on the request object';
|
|
132
133
|
}
|
|
133
134
|
this.updateRequestForCloudType(options, auth.connection.cloudType);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
.
|
|
146
|
-
|
|
147
|
-
if (options.headers['x-anonymous']) {
|
|
148
|
-
delete options.headers['x-anonymous'];
|
|
149
|
-
}
|
|
150
|
-
if (options.headers['x-resource']) {
|
|
151
|
-
delete options.headers['x-resource'];
|
|
152
|
-
}
|
|
153
|
-
if (accessToken !== '') {
|
|
154
|
-
options.headers.authorization = `Bearer ${accessToken}`;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
|
|
158
|
-
if (proxyUrl) {
|
|
159
|
-
options.proxy = this.createProxyConfigFromUrl(proxyUrl);
|
|
135
|
+
try {
|
|
136
|
+
let accessToken = '';
|
|
137
|
+
if (options.headers && options.headers['x-anonymous']) {
|
|
138
|
+
accessToken = '';
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
const url = options.headers && options.headers['x-resource'] ? options.headers['x-resource'] : options.url;
|
|
142
|
+
const resource = Auth.getResourceFromUrl(url);
|
|
143
|
+
accessToken = await auth.ensureAccessToken(resource, this._logger, this._debug);
|
|
144
|
+
}
|
|
145
|
+
if (options.headers) {
|
|
146
|
+
if (options.headers['x-anonymous']) {
|
|
147
|
+
delete options.headers['x-anonymous'];
|
|
160
148
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
.then((res) => {
|
|
164
|
-
if (resolve) {
|
|
165
|
-
resolve((options.responseType === 'stream' || options.fullResponse) ? res : res.data);
|
|
149
|
+
if (options.headers['x-resource']) {
|
|
150
|
+
delete options.headers['x-resource'];
|
|
166
151
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
timings.api.push(Number(end - start));
|
|
170
|
-
_resolve((options.responseType === 'stream' || options.fullResponse) ? res : res.data);
|
|
152
|
+
if (accessToken !== '') {
|
|
153
|
+
options.headers.authorization = `Bearer ${accessToken}`;
|
|
171
154
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
155
|
+
}
|
|
156
|
+
const proxyUrl = process.env.HTTP_PROXY || process.env.HTTPS_PROXY;
|
|
157
|
+
if (proxyUrl) {
|
|
158
|
+
options.proxy = this.createProxyConfigFromUrl(proxyUrl);
|
|
159
|
+
}
|
|
160
|
+
const res = await this.req(options);
|
|
161
|
+
const end = process.hrtime.bigint();
|
|
162
|
+
timings.api.push(Number(end - start));
|
|
163
|
+
return options.responseType === 'stream' || options.fullResponse ?
|
|
164
|
+
res :
|
|
165
|
+
res.data;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
const end = process.hrtime.bigint();
|
|
169
|
+
timings.api.push(Number(end - start));
|
|
170
|
+
if (error && error.response && (error.response.status === 429 || error.response.status === 503)) {
|
|
171
|
+
let retryAfter = parseInt(error.response.headers['retry-after'] || '10');
|
|
172
|
+
if (isNaN(retryAfter)) {
|
|
173
|
+
retryAfter = 10;
|
|
185
174
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
reject(error);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
const end = process.hrtime.bigint();
|
|
192
|
-
timings.api.push(Number(end - start));
|
|
193
|
-
_reject(error);
|
|
194
|
-
}
|
|
175
|
+
if (this._debug) {
|
|
176
|
+
await this._logger.log(`Request throttled. Waiting ${retryAfter} sec before retrying...`);
|
|
195
177
|
}
|
|
196
|
-
|
|
197
|
-
|
|
178
|
+
await timersUtil.setTimeout(retryAfter * 1000);
|
|
179
|
+
return this.execute(options);
|
|
180
|
+
}
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
198
183
|
}
|
|
199
184
|
updateRequestForCloudType(options, cloudType) {
|
|
200
185
|
const url = new URL(options.url);
|
package/dist/telemetryRunner.js
CHANGED
|
@@ -8,7 +8,7 @@ try {
|
|
|
8
8
|
const data = JSON.parse(input);
|
|
9
9
|
const { commandName, properties, exception, shell, session } = data;
|
|
10
10
|
appInsights.commonProperties.shell = shell;
|
|
11
|
-
appInsights.context.tags[
|
|
11
|
+
appInsights.context.tags[appInsights.context.keys.sessionId] = session;
|
|
12
12
|
if (exception) {
|
|
13
13
|
appInsights.trackException({
|
|
14
14
|
exception
|
|
@@ -20,7 +20,7 @@ try {
|
|
|
20
20
|
properties
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
appInsights.flush();
|
|
23
|
+
await appInsights.flush();
|
|
24
24
|
}
|
|
25
25
|
catch { }
|
|
26
26
|
//# sourceMappingURL=telemetryRunner.js.map
|
package/dist/utils/spo.js
CHANGED
|
@@ -11,17 +11,20 @@ import { odata } from './odata.js';
|
|
|
11
11
|
import { RoleType } from '../m365/spo/commands/roledefinition/RoleType.js';
|
|
12
12
|
import { entraGroup } from './entraGroup.js';
|
|
13
13
|
import { SharingCapabilities } from '../m365/spo/commands/site/SharingCapabilities.js';
|
|
14
|
-
import {
|
|
15
|
-
export var
|
|
16
|
-
(function (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})(
|
|
14
|
+
import { timersUtil } from './timersUtil.js';
|
|
15
|
+
export var CreateFileCopyJobsNameConflictBehavior;
|
|
16
|
+
(function (CreateFileCopyJobsNameConflictBehavior) {
|
|
17
|
+
CreateFileCopyJobsNameConflictBehavior[CreateFileCopyJobsNameConflictBehavior["Fail"] = 0] = "Fail";
|
|
18
|
+
CreateFileCopyJobsNameConflictBehavior[CreateFileCopyJobsNameConflictBehavior["Replace"] = 1] = "Replace";
|
|
19
|
+
CreateFileCopyJobsNameConflictBehavior[CreateFileCopyJobsNameConflictBehavior["Rename"] = 2] = "Rename";
|
|
20
|
+
})(CreateFileCopyJobsNameConflictBehavior || (CreateFileCopyJobsNameConflictBehavior = {}));
|
|
21
|
+
export var CreateFolderCopyJobsNameConflictBehavior;
|
|
22
|
+
(function (CreateFolderCopyJobsNameConflictBehavior) {
|
|
23
|
+
CreateFolderCopyJobsNameConflictBehavior[CreateFolderCopyJobsNameConflictBehavior["Fail"] = 0] = "Fail";
|
|
24
|
+
CreateFolderCopyJobsNameConflictBehavior[CreateFolderCopyJobsNameConflictBehavior["Rename"] = 2] = "Rename";
|
|
25
|
+
})(CreateFolderCopyJobsNameConflictBehavior || (CreateFolderCopyJobsNameConflictBehavior = {}));
|
|
21
26
|
// Wrapping this into a settings object so we can alter the values in tests
|
|
22
|
-
|
|
23
|
-
pollingInterval: 3000
|
|
24
|
-
};
|
|
27
|
+
const pollingInterval = 3000;
|
|
25
28
|
export const spo = {
|
|
26
29
|
async getRequestDigest(siteUrl) {
|
|
27
30
|
const requestOptions = {
|
|
@@ -79,7 +82,7 @@ export const spo = {
|
|
|
79
82
|
}
|
|
80
83
|
return;
|
|
81
84
|
}
|
|
82
|
-
await setTimeout(
|
|
85
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
83
86
|
await spo.waitUntilFinished({
|
|
84
87
|
operationId: JSON.stringify(operation._ObjectIdentity_),
|
|
85
88
|
siteUrl,
|
|
@@ -691,7 +694,7 @@ export const spo = {
|
|
|
691
694
|
if (!wait || isComplete) {
|
|
692
695
|
return;
|
|
693
696
|
}
|
|
694
|
-
await setTimeout(
|
|
697
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
695
698
|
await spo.waitUntilFinished({
|
|
696
699
|
operationId: JSON.stringify(operation._ObjectIdentity_),
|
|
697
700
|
siteUrl: spoAdminUrl,
|
|
@@ -905,7 +908,7 @@ export const spo = {
|
|
|
905
908
|
if (!wait || isComplete) {
|
|
906
909
|
return;
|
|
907
910
|
}
|
|
908
|
-
await setTimeout(
|
|
911
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
909
912
|
await spo.waitUntilFinished({
|
|
910
913
|
operationId: JSON.stringify(operation._ObjectIdentity_),
|
|
911
914
|
siteUrl: spoAdminUrl,
|
|
@@ -1051,7 +1054,7 @@ export const spo = {
|
|
|
1051
1054
|
const operation = json[json.length - 1];
|
|
1052
1055
|
const isComplete = operation.IsComplete;
|
|
1053
1056
|
if (!isComplete) {
|
|
1054
|
-
await setTimeout(
|
|
1057
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
1055
1058
|
await spo.waitUntilFinished({
|
|
1056
1059
|
operationId: JSON.stringify(operation._ObjectIdentity_),
|
|
1057
1060
|
siteUrl: spoAdminUrl,
|
|
@@ -1551,14 +1554,14 @@ export const spo = {
|
|
|
1551
1554
|
return file;
|
|
1552
1555
|
},
|
|
1553
1556
|
/**
|
|
1554
|
-
* Create a SharePoint copy job to copy a file
|
|
1555
|
-
* @param webUrl Absolute web URL where the source file
|
|
1556
|
-
* @param sourceUrl Absolute URL of the source file
|
|
1557
|
+
* Create a SharePoint copy job to copy a file to another location.
|
|
1558
|
+
* @param webUrl Absolute web URL where the source file is located.
|
|
1559
|
+
* @param sourceUrl Absolute URL of the source file.
|
|
1557
1560
|
* @param destinationUrl Absolute URL of the destination folder.
|
|
1558
1561
|
* @param options Options for the copy job.
|
|
1559
1562
|
* @returns Copy job information. Use {@link spo.getCopyJobResult} to get the result of the copy job.
|
|
1560
1563
|
*/
|
|
1561
|
-
async
|
|
1564
|
+
async createFileCopyJob(webUrl, sourceUrl, destinationUrl, options) {
|
|
1562
1565
|
const requestOptions = {
|
|
1563
1566
|
url: `${webUrl}/_api/Site/CreateCopyJobs`,
|
|
1564
1567
|
headers: {
|
|
@@ -1569,7 +1572,7 @@ export const spo = {
|
|
|
1569
1572
|
destinationUri: destinationUrl,
|
|
1570
1573
|
exportObjectUris: [sourceUrl],
|
|
1571
1574
|
options: {
|
|
1572
|
-
NameConflictBehavior: options?.nameConflictBehavior ??
|
|
1575
|
+
NameConflictBehavior: options?.nameConflictBehavior ?? CreateFileCopyJobsNameConflictBehavior.Fail,
|
|
1573
1576
|
AllowSchemaMismatch: true,
|
|
1574
1577
|
BypassSharedLock: !!options?.bypassSharedLock,
|
|
1575
1578
|
IgnoreVersionHistory: !!options?.ignoreVersionHistory,
|
|
@@ -1583,6 +1586,36 @@ export const spo = {
|
|
|
1583
1586
|
const response = await request.post(requestOptions);
|
|
1584
1587
|
return response.value[0];
|
|
1585
1588
|
},
|
|
1589
|
+
/**
|
|
1590
|
+
* Create a SharePoint copy job to copy a folder to another location.
|
|
1591
|
+
* @param webUrl Absolute web URL where the source folder is located.
|
|
1592
|
+
* @param sourceUrl Absolute URL of the source folder.
|
|
1593
|
+
* @param destinationUrl Absolute URL of the destination folder.
|
|
1594
|
+
* @param options Options for the copy job.
|
|
1595
|
+
* @returns Copy job information. Use {@link spo.getCopyJobResult} to get the result of the copy job.
|
|
1596
|
+
*/
|
|
1597
|
+
async createFolderCopyJob(webUrl, sourceUrl, destinationUrl, options) {
|
|
1598
|
+
const requestOptions = {
|
|
1599
|
+
url: `${webUrl}/_api/Site/CreateCopyJobs`,
|
|
1600
|
+
headers: {
|
|
1601
|
+
accept: 'application/json;odata=nometadata'
|
|
1602
|
+
},
|
|
1603
|
+
responseType: 'json',
|
|
1604
|
+
data: {
|
|
1605
|
+
destinationUri: destinationUrl,
|
|
1606
|
+
exportObjectUris: [sourceUrl],
|
|
1607
|
+
options: {
|
|
1608
|
+
NameConflictBehavior: options?.nameConflictBehavior ?? CreateFolderCopyJobsNameConflictBehavior.Fail,
|
|
1609
|
+
AllowSchemaMismatch: true,
|
|
1610
|
+
CustomizedItemName: options?.newName ? [options.newName] : undefined,
|
|
1611
|
+
SameWebCopyMoveOptimization: true,
|
|
1612
|
+
IsMoveMode: options?.operation === 'move'
|
|
1613
|
+
}
|
|
1614
|
+
}
|
|
1615
|
+
};
|
|
1616
|
+
const response = await request.post(requestOptions);
|
|
1617
|
+
return response.value[0];
|
|
1618
|
+
},
|
|
1586
1619
|
/**
|
|
1587
1620
|
* Poll until the copy job is finished and return the result.
|
|
1588
1621
|
* @param webUrl Absolute web URL where the copy job was created.
|
|
@@ -1601,12 +1634,20 @@ export const spo = {
|
|
|
1601
1634
|
copyJobInfo: copyJobInfo
|
|
1602
1635
|
}
|
|
1603
1636
|
};
|
|
1637
|
+
const logs = [];
|
|
1604
1638
|
let progress = await request.post(requestOptions);
|
|
1639
|
+
const newLogs = progress.Logs?.map(l => JSON.parse(l));
|
|
1640
|
+
if (newLogs?.length > 0) {
|
|
1641
|
+
logs.push(...newLogs);
|
|
1642
|
+
}
|
|
1605
1643
|
while (progress.JobState !== 0) {
|
|
1606
|
-
await setTimeout(
|
|
1644
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
1607
1645
|
progress = await request.post(requestOptions);
|
|
1646
|
+
const newLogs = progress.Logs?.map(l => JSON.parse(l));
|
|
1647
|
+
if (newLogs?.length > 0) {
|
|
1648
|
+
logs.push(...newLogs);
|
|
1649
|
+
}
|
|
1608
1650
|
}
|
|
1609
|
-
const logs = progress.Logs.map(l => JSON.parse(l));
|
|
1610
1651
|
// Check if the job has failed
|
|
1611
1652
|
const errorLog = logs.find(l => l.Event === 'JobError');
|
|
1612
1653
|
if (errorLog) {
|
|
@@ -1617,7 +1658,7 @@ export const spo = {
|
|
|
1617
1658
|
return objectInfo;
|
|
1618
1659
|
},
|
|
1619
1660
|
/**
|
|
1620
|
-
* Gets the
|
|
1661
|
+
* Gets the primary owner login from a site as admin.
|
|
1621
1662
|
* @param adminUrl The SharePoint admin URL
|
|
1622
1663
|
* @param siteId The site ID
|
|
1623
1664
|
* @param logger The logger object
|
|
@@ -1631,13 +1672,12 @@ export const spo = {
|
|
|
1631
1672
|
const requestOptions = {
|
|
1632
1673
|
url: `${adminUrl}/_api/SPO.Tenant/sites('${siteId}')?$select=OwnerLoginName`,
|
|
1633
1674
|
headers: {
|
|
1634
|
-
accept: 'application/json;odata=nometadata'
|
|
1635
|
-
|
|
1636
|
-
|
|
1675
|
+
accept: 'application/json;odata=nometadata'
|
|
1676
|
+
},
|
|
1677
|
+
responseType: 'json'
|
|
1637
1678
|
};
|
|
1638
1679
|
const response = await request.get(requestOptions);
|
|
1639
|
-
|
|
1640
|
-
return responseContent.OwnerLoginName;
|
|
1680
|
+
return response.OwnerLoginName;
|
|
1641
1681
|
},
|
|
1642
1682
|
/**
|
|
1643
1683
|
* Gets the primary owner login from a site.
|
|
@@ -1652,7 +1692,6 @@ export const spo = {
|
|
|
1652
1692
|
}
|
|
1653
1693
|
const requestOptions = {
|
|
1654
1694
|
url: `${siteUrl}/_api/site/owner`,
|
|
1655
|
-
method: 'GET',
|
|
1656
1695
|
headers: {
|
|
1657
1696
|
'accept': 'application/json;odata=nometadata'
|
|
1658
1697
|
},
|
|
@@ -1660,6 +1699,34 @@ export const spo = {
|
|
|
1660
1699
|
};
|
|
1661
1700
|
const responseContent = await request.get(requestOptions);
|
|
1662
1701
|
return responseContent?.LoginName;
|
|
1702
|
+
},
|
|
1703
|
+
/**
|
|
1704
|
+
* Retrieves the site admin properties for a given site URL.
|
|
1705
|
+
* @param adminUrl The SharePoint admin url.
|
|
1706
|
+
* @param siteUrl URL of the site for which to retrieve properties.
|
|
1707
|
+
* @param includeDetail Set to true to include detailed properties.
|
|
1708
|
+
* @param logger The logger object.
|
|
1709
|
+
* @param verbose Set for verbose logging.
|
|
1710
|
+
* @returns Tenant Site properties.
|
|
1711
|
+
*/
|
|
1712
|
+
async getSiteAdminPropertiesByUrl(siteUrl, includeDetail, logger, verbose) {
|
|
1713
|
+
if (verbose) {
|
|
1714
|
+
await logger.logToStderr(`Getting site admin properties for URL: ${siteUrl}...`);
|
|
1715
|
+
}
|
|
1716
|
+
const adminUrl = await spo.getSpoAdminUrl(logger, !!verbose);
|
|
1717
|
+
const requestOptions = {
|
|
1718
|
+
url: `${adminUrl}/_api/SPO.Tenant/GetSitePropertiesByUrl`,
|
|
1719
|
+
headers: {
|
|
1720
|
+
accept: 'application/json;odata=nometadata',
|
|
1721
|
+
'content-type': 'application/json;charset=utf-8'
|
|
1722
|
+
},
|
|
1723
|
+
data: {
|
|
1724
|
+
url: siteUrl,
|
|
1725
|
+
includeDetail: includeDetail
|
|
1726
|
+
},
|
|
1727
|
+
responseType: 'json'
|
|
1728
|
+
};
|
|
1729
|
+
return request.post(requestOptions);
|
|
1663
1730
|
}
|
|
1664
1731
|
};
|
|
1665
1732
|
//# sourceMappingURL=spo.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import request from '../request.js';
|
|
2
|
+
export const spp = {
|
|
3
|
+
/**
|
|
4
|
+
* Asserts whether the specified site is a content center.
|
|
5
|
+
* @param siteUrl The URL of the site to check.
|
|
6
|
+
* @throws Error when the site is not a content center.
|
|
7
|
+
*/
|
|
8
|
+
async assertSiteIsContentCenter(siteUrl) {
|
|
9
|
+
const requestOptions = {
|
|
10
|
+
url: `${siteUrl}/_api/web?$select=WebTemplateConfiguration`,
|
|
11
|
+
headers: {
|
|
12
|
+
accept: 'application/json;odata=nometadata'
|
|
13
|
+
},
|
|
14
|
+
responseType: 'json'
|
|
15
|
+
};
|
|
16
|
+
const response = await request.get(requestOptions);
|
|
17
|
+
if (response.WebTemplateConfiguration !== 'CONTENTCTR#0') {
|
|
18
|
+
throw Error(`${siteUrl} is not a content site.`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=spp.js.map
|