@pnp/cli-microsoft365 10.0.0-beta.e925c1c → 10.0.0-beta.fd332f4
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 +6 -4
- package/dist/AuthServer.js +7 -7
- package/dist/Command.js +4 -1
- package/dist/api.js +1 -1
- package/dist/appInsights.js +6 -4
- package/dist/config.js +1 -0
- package/dist/m365/base/PowerAutomateCommand.js +1 -1
- package/dist/m365/cli/commands/cli-doctor.js +2 -2
- package/dist/m365/cli/commands/config/config-set.js +0 -1
- 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/commands/setupPresets.js +2 -4
- 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 +84 -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 +135 -0
- package/dist/m365/file/commands.js +2 -1
- package/dist/m365/flow/commands/environment/environment-get.js +1 -1
- package/dist/m365/flow/commands/environment/environment-list.js +2 -2
- package/dist/m365/flow/commands/flow-disable.js +1 -1
- package/dist/m365/flow/commands/flow-enable.js +1 -1
- package/dist/m365/flow/commands/flow-export.js +17 -16
- package/dist/m365/flow/commands/flow-get.js +1 -1
- package/dist/m365/flow/commands/flow-list.js +1 -1
- package/dist/m365/flow/commands/flow-remove.js +1 -1
- package/dist/m365/flow/commands/owner/owner-ensure.js +1 -1
- package/dist/m365/flow/commands/owner/owner-list.js +1 -1
- package/dist/m365/flow/commands/owner/owner-remove.js +1 -1
- package/dist/m365/flow/commands/recyclebinitem/recyclebinitem-list.js +47 -0
- package/dist/m365/flow/commands/recyclebinitem/recyclebinitem-restore.js +48 -0
- package/dist/m365/flow/commands/run/run-cancel.js +1 -1
- package/dist/m365/flow/commands/run/run-get.js +1 -1
- package/dist/m365/flow/commands/run/run-list.js +1 -1
- package/dist/m365/flow/commands/run/run-resubmit.js +2 -2
- package/dist/m365/flow/commands.js +2 -0
- 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.js +27 -0
- 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 +2 -1
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.20.0.js +59 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
- package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
- 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/contenttype/contenttype-field-remove.js +8 -8
- package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +2 -2
- package/dist/m365/spo/commands/feature/feature-list.js +1 -8
- package/dist/m365/spo/commands/file/file-copy.js +11 -7
- package/dist/m365/spo/commands/file/file-move.js +55 -33
- package/dist/m365/spo/commands/file/file-remove.js +7 -1
- package/dist/m365/spo/commands/file/file-roleassignment-add.js +17 -54
- package/dist/m365/spo/commands/file/file-roleassignment-remove.js +13 -40
- package/dist/m365/spo/commands/file/file-roleinheritance-break.js +5 -13
- package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +5 -13
- package/dist/m365/spo/commands/folder/folder-copy.js +43 -35
- package/dist/m365/spo/commands/folder/folder-move.js +43 -35
- package/dist/m365/spo/commands/folder/folder-sharinglink-add.js +143 -0
- package/dist/m365/spo/commands/folder/folder-sharinglink-clear.js +111 -0
- package/dist/m365/spo/commands/folder/folder-sharinglink-remove.js +95 -0
- 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-get.js +17 -4
- 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-section-add.js +185 -34
- package/dist/m365/spo/commands/page/page-template-list.js +1 -3
- package/dist/m365/spo/commands/site/SiteAdmin.js +2 -0
- package/dist/m365/spo/commands/site/site-admin-add.js +252 -0
- package/dist/m365/spo/commands/site/site-admin-list.js +10 -36
- package/dist/m365/spo/commands/site/site-admin-remove.js +194 -0
- package/dist/m365/spo/commands/site/site-sharingpermission-set.js +68 -0
- package/dist/m365/spo/commands/sitescript/sitescript-get.js +3 -2
- 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/user/user-get.js +67 -9
- package/dist/m365/spo/commands/userprofile/userprofile-get.js +1 -1
- package/dist/m365/spo/commands/web/web-clientsidewebpart-list.js +1 -6
- package/dist/m365/spo/commands.js +8 -1
- package/dist/m365/spp/commands/contentcenter/contentcenter-list.js +56 -0
- package/dist/m365/spp/commands/model/model-list.js +57 -0
- package/dist/m365/spp/commands.js +6 -0
- package/dist/m365/teams/MeetingTranscript.js +2 -0
- package/dist/m365/teams/commands/channel/channel-get.js +15 -50
- package/dist/m365/teams/commands/meeting/meeting-transcript-get.js +152 -0
- 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/teams/commands.js +1 -0
- 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/settingsNames.js +0 -1
- package/dist/telemetryRunner.js +2 -2
- package/dist/utils/spo.js +166 -29
- 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 +12 -3
- package/docs/docs/_clisettings.mdx +0 -1
- 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 +3 -9
- 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 +26 -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/file/file-move.mdx +79 -0
- package/docs/docs/cmd/flow/recyclebinitem/recyclebinitem-list.mdx +132 -0
- package/docs/docs/cmd/flow/recyclebinitem/recyclebinitem-restore.mdx +55 -0
- package/docs/docs/cmd/login.mdx +9 -0
- package/docs/docs/cmd/setup.mdx +1 -3
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-get.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-origin-add.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-origin-list.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-origin-remove.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-policy-list.mdx +1 -1
- package/docs/docs/cmd/spo/cdn/cdn-policy-set.mdx +1 -1
- package/docs/docs/cmd/spo/contenttype/contenttype-field-remove.mdx +7 -7
- package/docs/docs/cmd/spo/contenttype/contenttype-field-set.mdx +2 -2
- package/docs/docs/cmd/spo/externaluser/externaluser-list.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-move.mdx +116 -11
- package/docs/docs/cmd/spo/file/file-remove.mdx +13 -4
- package/docs/docs/cmd/spo/folder/folder-copy.mdx +84 -13
- package/docs/docs/cmd/spo/folder/folder-move.mdx +84 -13
- package/docs/docs/cmd/spo/folder/folder-sharinglink-add.mdx +125 -0
- package/docs/docs/cmd/spo/folder/folder-sharinglink-clear.mdx +50 -0
- package/docs/docs/cmd/spo/folder/folder-sharinglink-remove.mdx +50 -0
- 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/hidedefaultthemes/hidedefaultthemes-get.mdx +1 -1
- package/docs/docs/cmd/spo/hidedefaultthemes/hidedefaultthemes-set.mdx +1 -1
- package/docs/docs/cmd/spo/homesite/homesite-remove.mdx +1 -1
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-get.mdx +1 -1
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-remove.mdx +1 -1
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-set.mdx +1 -1
- package/docs/docs/cmd/spo/list/list-remove.mdx +10 -1
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +1 -1
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.mdx +1 -1
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-remove.mdx +1 -1
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-list.mdx +1 -1
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-remove.mdx +1 -1
- package/docs/docs/cmd/spo/orgnewssite/orgnewssite-set.mdx +1 -1
- package/docs/docs/cmd/spo/page/page-remove.mdx +30 -12
- package/docs/docs/cmd/spo/page/page-section-add.mdx +57 -2
- package/docs/docs/cmd/spo/site/site-admin-add.mdx +67 -0
- package/docs/docs/cmd/spo/site/site-admin-list.mdx +64 -12
- package/docs/docs/cmd/spo/site/site-admin-remove.mdx +67 -0
- package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-list.mdx +6 -4
- package/docs/docs/cmd/spo/site/site-set.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-sharingpermission-set.mdx +58 -0
- package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +14 -1
- package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +1 -1
- package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-settings-list.mdx +1 -1
- 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/theme/theme-apply.mdx +1 -1
- package/docs/docs/cmd/spo/theme/theme-get.mdx +1 -1
- package/docs/docs/cmd/spo/theme/theme-list.mdx +1 -1
- package/docs/docs/cmd/spo/theme/theme-remove.mdx +1 -1
- package/docs/docs/cmd/spo/theme/theme-set.mdx +1 -1
- package/docs/docs/cmd/spo/user/user-ensure.mdx +2 -5
- package/docs/docs/cmd/spo/user/user-get.mdx +35 -9
- package/docs/docs/cmd/spp/contentcenter/contentcenter-list.mdx +287 -0
- package/docs/docs/cmd/spp/model/model-list.mdx +140 -0
- package/docs/docs/cmd/teams/meeting/meeting-transcript-get.mdx +132 -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 +2215 -717
- package/package.json +20 -21
- package/dist/m365/cli/commands/cli-reconsent.js +0 -29
- package/dist/m365/entra/aadCommands.js +0 -89
- 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,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);
|
|
@@ -32,6 +32,7 @@ export default {
|
|
|
32
32
|
MEETING_LIST: `${prefix} meeting list`,
|
|
33
33
|
MEETING_ATTENDANCEREPORT_GET: `${prefix} meeting attendancereport get`,
|
|
34
34
|
MEETING_ATTENDANCEREPORT_LIST: `${prefix} meeting attendancereport list`,
|
|
35
|
+
MEETING_TRANSCRIPT_GET: `${prefix} meeting transcript get`,
|
|
35
36
|
MEETING_TRANSCRIPT_LIST: `${prefix} meeting transcript list`,
|
|
36
37
|
MEMBERSETTINGS_LIST: `${prefix} membersettings list`,
|
|
37
38
|
MEMBERSETTINGS_SET: `${prefix} membersettings set`,
|
|
@@ -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/settingsNames.js
CHANGED
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,
|
|
@@ -500,10 +503,10 @@ export const spo = {
|
|
|
500
503
|
* @param webUrl Web url
|
|
501
504
|
* @param email The email of the user
|
|
502
505
|
* @param logger the Logger object
|
|
503
|
-
* @param verbose set
|
|
506
|
+
* @param verbose set for verbose logging
|
|
504
507
|
*/
|
|
505
508
|
async getUserByEmail(webUrl, email, logger, verbose) {
|
|
506
|
-
if (verbose) {
|
|
509
|
+
if (verbose && logger) {
|
|
507
510
|
await logger.logToStderr(`Retrieving the spo user by email ${email}`);
|
|
508
511
|
}
|
|
509
512
|
const requestUrl = `${webUrl}/_api/web/siteusers/GetByEmail('${formatting.encodeQueryParameter(email)}')`;
|
|
@@ -574,10 +577,10 @@ export const spo = {
|
|
|
574
577
|
* @param webUrl Web url
|
|
575
578
|
* @param name The name of the group
|
|
576
579
|
* @param logger the Logger object
|
|
577
|
-
* @param verbose set
|
|
580
|
+
* @param verbose set for verbose logging
|
|
578
581
|
*/
|
|
579
582
|
async getGroupByName(webUrl, name, logger, verbose) {
|
|
580
|
-
if (verbose) {
|
|
583
|
+
if (verbose && logger) {
|
|
581
584
|
await logger.logToStderr(`Retrieving the group by name ${name}`);
|
|
582
585
|
}
|
|
583
586
|
const requestUrl = `${webUrl}/_api/web/sitegroups/GetByName('${formatting.encodeQueryParameter(name)}')`;
|
|
@@ -596,10 +599,10 @@ export const spo = {
|
|
|
596
599
|
* @param webUrl Web url
|
|
597
600
|
* @param name the name of the role definition
|
|
598
601
|
* @param logger the Logger object
|
|
599
|
-
* @param
|
|
602
|
+
* @param verbose set for verbose logging
|
|
600
603
|
*/
|
|
601
|
-
async getRoleDefinitionByName(webUrl, name, logger,
|
|
602
|
-
if (
|
|
604
|
+
async getRoleDefinitionByName(webUrl, name, logger, verbose) {
|
|
605
|
+
if (verbose && logger) {
|
|
603
606
|
await logger.logToStderr(`Retrieving the role definitions for ${name}`);
|
|
604
607
|
}
|
|
605
608
|
const roledefinitions = await odata.getAllItems(`${webUrl}/_api/web/roledefinitions`);
|
|
@@ -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,
|
|
@@ -1528,14 +1531,37 @@ export const spo = {
|
|
|
1528
1531
|
return (itemsResponse);
|
|
1529
1532
|
},
|
|
1530
1533
|
/**
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
+
* Retrieves the file by id.
|
|
1535
|
+
* Returns a FileProperties object
|
|
1536
|
+
* @param webUrl Web url
|
|
1537
|
+
* @param id the id of the file
|
|
1538
|
+
* @param logger the Logger object
|
|
1539
|
+
* @param verbose set for verbose logging
|
|
1540
|
+
*/
|
|
1541
|
+
async getFileById(webUrl, id, logger, verbose) {
|
|
1542
|
+
if (verbose && logger) {
|
|
1543
|
+
await logger.logToStderr(`Retrieving the file with id ${id}`);
|
|
1544
|
+
}
|
|
1545
|
+
const requestUrl = `${webUrl}/_api/web/GetFileById('${formatting.encodeQueryParameter(id)}')`;
|
|
1546
|
+
const requestOptions = {
|
|
1547
|
+
url: requestUrl,
|
|
1548
|
+
headers: {
|
|
1549
|
+
'accept': 'application/json;odata=nometadata'
|
|
1550
|
+
},
|
|
1551
|
+
responseType: 'json'
|
|
1552
|
+
};
|
|
1553
|
+
const file = await request.get(requestOptions);
|
|
1554
|
+
return file;
|
|
1555
|
+
},
|
|
1556
|
+
/**
|
|
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.
|
|
1534
1560
|
* @param destinationUrl Absolute URL of the destination folder.
|
|
1535
1561
|
* @param options Options for the copy job.
|
|
1536
1562
|
* @returns Copy job information. Use {@link spo.getCopyJobResult} to get the result of the copy job.
|
|
1537
1563
|
*/
|
|
1538
|
-
async
|
|
1564
|
+
async createFileCopyJob(webUrl, sourceUrl, destinationUrl, options) {
|
|
1539
1565
|
const requestOptions = {
|
|
1540
1566
|
url: `${webUrl}/_api/Site/CreateCopyJobs`,
|
|
1541
1567
|
headers: {
|
|
@@ -1546,12 +1572,44 @@ export const spo = {
|
|
|
1546
1572
|
destinationUri: destinationUrl,
|
|
1547
1573
|
exportObjectUris: [sourceUrl],
|
|
1548
1574
|
options: {
|
|
1549
|
-
NameConflictBehavior: options?.nameConflictBehavior ??
|
|
1575
|
+
NameConflictBehavior: options?.nameConflictBehavior ?? CreateFileCopyJobsNameConflictBehavior.Fail,
|
|
1550
1576
|
AllowSchemaMismatch: true,
|
|
1551
1577
|
BypassSharedLock: !!options?.bypassSharedLock,
|
|
1552
1578
|
IgnoreVersionHistory: !!options?.ignoreVersionHistory,
|
|
1579
|
+
IncludeItemPermissions: !!options?.includeItemPermissions,
|
|
1553
1580
|
CustomizedItemName: options?.newName ? [options.newName] : undefined,
|
|
1554
|
-
SameWebCopyMoveOptimization: true
|
|
1581
|
+
SameWebCopyMoveOptimization: true,
|
|
1582
|
+
IsMoveMode: options?.operation === 'move'
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
};
|
|
1586
|
+
const response = await request.post(requestOptions);
|
|
1587
|
+
return response.value[0];
|
|
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'
|
|
1555
1613
|
}
|
|
1556
1614
|
}
|
|
1557
1615
|
};
|
|
@@ -1576,12 +1634,20 @@ export const spo = {
|
|
|
1576
1634
|
copyJobInfo: copyJobInfo
|
|
1577
1635
|
}
|
|
1578
1636
|
};
|
|
1637
|
+
const logs = [];
|
|
1579
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
|
+
}
|
|
1580
1643
|
while (progress.JobState !== 0) {
|
|
1581
|
-
await setTimeout(
|
|
1644
|
+
await timersUtil.setTimeout(pollingInterval);
|
|
1582
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
|
+
}
|
|
1583
1650
|
}
|
|
1584
|
-
const logs = progress.Logs.map(l => JSON.parse(l));
|
|
1585
1651
|
// Check if the job has failed
|
|
1586
1652
|
const errorLog = logs.find(l => l.Event === 'JobError');
|
|
1587
1653
|
if (errorLog) {
|
|
@@ -1590,6 +1656,77 @@ export const spo = {
|
|
|
1590
1656
|
// Get the destination object information
|
|
1591
1657
|
const objectInfo = logs.find(l => l.Event === 'JobFinishedObjectInfo');
|
|
1592
1658
|
return objectInfo;
|
|
1659
|
+
},
|
|
1660
|
+
/**
|
|
1661
|
+
* Gets the primary owner login from a site as admin.
|
|
1662
|
+
* @param adminUrl The SharePoint admin URL
|
|
1663
|
+
* @param siteId The site ID
|
|
1664
|
+
* @param logger The logger object
|
|
1665
|
+
* @param verbose If in verbose mode
|
|
1666
|
+
* @returns Owner login name
|
|
1667
|
+
*/
|
|
1668
|
+
async getPrimaryAdminLoginNameAsAdmin(adminUrl, siteId, logger, verbose) {
|
|
1669
|
+
if (verbose) {
|
|
1670
|
+
await logger.logToStderr('Getting the primary admin login name...');
|
|
1671
|
+
}
|
|
1672
|
+
const requestOptions = {
|
|
1673
|
+
url: `${adminUrl}/_api/SPO.Tenant/sites('${siteId}')?$select=OwnerLoginName`,
|
|
1674
|
+
headers: {
|
|
1675
|
+
accept: 'application/json;odata=nometadata'
|
|
1676
|
+
},
|
|
1677
|
+
responseType: 'json'
|
|
1678
|
+
};
|
|
1679
|
+
const response = await request.get(requestOptions);
|
|
1680
|
+
return response.OwnerLoginName;
|
|
1681
|
+
},
|
|
1682
|
+
/**
|
|
1683
|
+
* Gets the primary owner login from a site.
|
|
1684
|
+
* @param siteUrl The site URL
|
|
1685
|
+
* @param logger The logger object
|
|
1686
|
+
* @param verbose If in verbose mode
|
|
1687
|
+
* @returns Owner login name
|
|
1688
|
+
*/
|
|
1689
|
+
async getPrimaryOwnerLoginFromSite(siteUrl, logger, verbose) {
|
|
1690
|
+
if (verbose) {
|
|
1691
|
+
await logger.logToStderr('Getting the primary admin login name...');
|
|
1692
|
+
}
|
|
1693
|
+
const requestOptions = {
|
|
1694
|
+
url: `${siteUrl}/_api/site/owner`,
|
|
1695
|
+
headers: {
|
|
1696
|
+
'accept': 'application/json;odata=nometadata'
|
|
1697
|
+
},
|
|
1698
|
+
responseType: 'json'
|
|
1699
|
+
};
|
|
1700
|
+
const responseContent = await request.get(requestOptions);
|
|
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);
|
|
1593
1730
|
}
|
|
1594
1731
|
};
|
|
1595
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
|
package/dist/utils/teams.js
CHANGED
|
@@ -3,6 +3,25 @@ import { odata } from './odata.js';
|
|
|
3
3
|
import { cli } from '../cli/cli.js';
|
|
4
4
|
const graphResource = 'https://graph.microsoft.com';
|
|
5
5
|
export const teams = {
|
|
6
|
+
/**
|
|
7
|
+
* Retrieve a team by its name.
|
|
8
|
+
* @param displayName Name of the team to retrieve.
|
|
9
|
+
* @throws Error if the team cannot be found.
|
|
10
|
+
* @throws Error when multiple teams with the same name and prompting is disabled.
|
|
11
|
+
* @returns The Teams team.
|
|
12
|
+
*/
|
|
13
|
+
async getTeamByDisplayName(displayName) {
|
|
14
|
+
const teams = await odata.getAllItems(`${graphResource}/v1.0/teams?$filter=displayName eq '${formatting.encodeQueryParameter(displayName)}'`);
|
|
15
|
+
if (!teams.length) {
|
|
16
|
+
throw Error(`The specified team '${displayName}' does not exist.`);
|
|
17
|
+
}
|
|
18
|
+
if (teams.length === 1) {
|
|
19
|
+
return teams[0];
|
|
20
|
+
}
|
|
21
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', teams);
|
|
22
|
+
const result = await cli.handleMultipleResultsFound(`Multiple teams with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
23
|
+
return result;
|
|
24
|
+
},
|
|
6
25
|
/**
|
|
7
26
|
* Retrieve the id of a team by its name.
|
|
8
27
|
* @param displayName Name of the team to retrieve.
|
|
@@ -15,12 +34,35 @@ export const teams = {
|
|
|
15
34
|
if (!teams.length) {
|
|
16
35
|
throw Error(`The specified team '${displayName}' does not exist.`);
|
|
17
36
|
}
|
|
18
|
-
if (teams.length
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
37
|
+
if (teams.length === 1) {
|
|
38
|
+
return teams[0].id;
|
|
39
|
+
}
|
|
40
|
+
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', teams);
|
|
41
|
+
const result = await cli.handleMultipleResultsFound(`Multiple teams with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
42
|
+
return result.id;
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* Retrieves a channel by its name in a Microsoft Teams team.
|
|
46
|
+
* @param teamId The ID of the team.
|
|
47
|
+
* @param name The name of the channel.
|
|
48
|
+
* @throws Throws an error if the specified channel does not exist in the team.
|
|
49
|
+
* @returns The Teams channel.
|
|
50
|
+
*/
|
|
51
|
+
async getChannelByDisplayName(teamId, name) {
|
|
52
|
+
const channelRequestOptions = {
|
|
53
|
+
url: `${graphResource}/v1.0/teams/${teamId}/channels?$filter=displayName eq '${formatting.encodeQueryParameter(name)}'`,
|
|
54
|
+
headers: {
|
|
55
|
+
accept: 'application/json;odata.metadata=none'
|
|
56
|
+
},
|
|
57
|
+
responseType: 'json'
|
|
58
|
+
};
|
|
59
|
+
const response = await odata.getAllItems(channelRequestOptions);
|
|
60
|
+
// Only one channel can have the same name in a team
|
|
61
|
+
const channelItem = response[0];
|
|
62
|
+
if (!channelItem) {
|
|
63
|
+
throw Error(`The channel '${name}' does not exist in the Microsoft Teams team with ID '${teamId}'.`);
|
|
22
64
|
}
|
|
23
|
-
return
|
|
65
|
+
return channelItem;
|
|
24
66
|
},
|
|
25
67
|
/**
|
|
26
68
|
* Retrieves the channel ID by its name in a Microsoft Teams team.
|