@pnp/cli-microsoft365 7.2.0-beta.f440e15 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devcontainer/Dockerfile +0 -1
- package/.eslintrc.cjs +2 -0
- package/Dockerfile +0 -1
- package/allCommands.json +1 -0
- package/allCommandsFull.json +1 -0
- package/dist/Auth.js +1 -1
- package/dist/Command.js +18 -28
- package/dist/api.js +5 -7
- package/dist/chili/chili.js +40 -51
- package/dist/cli/Cli.js +121 -131
- package/dist/cli/timings.js +9 -0
- package/dist/index.js +8 -14
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-add.js +3 -3
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-get.js +2 -15
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-remove.js +5 -22
- package/dist/m365/aad/commands/app/app-remove.js +2 -7
- package/dist/m365/aad/commands/app/app-role-remove.js +2 -7
- package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +2 -7
- package/dist/m365/aad/commands/group/group-remove.js +2 -7
- package/dist/m365/aad/commands/groupsetting/groupsetting-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-clear.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-recyclebinitem-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-remove.js +2 -7
- package/dist/m365/aad/commands/m365group/m365group-user-remove.js +2 -7
- package/dist/m365/aad/commands/oauth2grant/oauth2grant-remove.js +2 -7
- package/dist/m365/aad/commands/siteclassification/siteclassification-disable.js +2 -7
- package/dist/m365/aad/commands/user/user-license-remove.js +2 -7
- package/dist/m365/aad/commands/user/user-recyclebinitem-clear.js +2 -7
- package/dist/m365/aad/commands/user/user-recyclebinitem-remove.js +2 -7
- package/dist/m365/aad/commands/user/user-remove.js +2 -7
- package/dist/m365/cli/commands/config/config-set.js +13 -0
- package/dist/m365/commands/login.js +12 -8
- package/dist/m365/commands/setup.js +31 -37
- package/dist/m365/context/commands/context-remove.js +2 -7
- package/dist/m365/context/commands/option/option-remove.js +2 -7
- package/dist/m365/{search/commands/externalconnection/externalconnection-add.js → external/commands/connection/connection-add.js} +16 -13
- package/dist/m365/{search/commands/externalconnection/externalconnection-get.js → external/commands/connection/connection-get.js} +16 -13
- package/dist/m365/{search/commands/externalconnection/externalconnection-list.js → external/commands/connection/connection-list.js} +7 -4
- package/dist/m365/{search/commands/externalconnection/externalconnection-remove.js → external/commands/connection/connection-remove.js} +19 -21
- package/dist/m365/{search/commands/externalconnection/externalconnection-schema-add.js → external/commands/connection/connection-schema-add.js} +14 -11
- package/dist/m365/external/commands.js +15 -0
- package/dist/m365/flow/commands/environment/environment-list.js +6 -4
- package/dist/m365/flow/commands/flow-remove.js +2 -7
- package/dist/m365/flow/commands/owner/owner-remove.js +2 -7
- package/dist/m365/flow/commands/run/run-cancel.js +2 -7
- package/dist/m365/flow/commands/run/run-resubmit.js +2 -7
- package/dist/m365/graph/commands/schemaextension/schemaextension-remove.js +2 -7
- package/dist/m365/pa/commands/app/app-consent-set.js +2 -7
- package/dist/m365/pa/commands/app/app-permission-remove.js +2 -7
- package/dist/m365/pa/commands/app/app-remove.js +2 -7
- package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -7
- package/dist/m365/planner/commands/plan/plan-remove.js +2 -7
- package/dist/m365/planner/commands/roster/roster-member-remove.js +4 -14
- package/dist/m365/planner/commands/roster/roster-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-checklistitem-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-reference-remove.js +2 -7
- package/dist/m365/planner/commands/task/task-remove.js +2 -7
- package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-remove.js +2 -7
- package/dist/m365/pp/commands/card/card-remove.js +2 -7
- package/dist/m365/pp/commands/chatbot/chatbot-remove.js +2 -7
- package/dist/m365/pp/commands/dataverse/dataverse-table-remove.js +2 -7
- package/dist/m365/pp/commands/dataverse/dataverse-table-row-remove.js +2 -7
- package/dist/m365/pp/commands/solution/solution-publisher-remove.js +2 -7
- package/dist/m365/pp/commands/solution/solution-remove.js +2 -7
- package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +2 -7
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +2 -7
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +2 -7
- package/dist/m365/spfx/commands/project/DeployWorkflow.js +4 -4
- package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.1-rc.0.js → doctor-1.18.1.js} +1 -1
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.18.2.js +21 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +6 -3
- package/dist/m365/spfx/commands/project/project-github-workflow-add.js +17 -0
- package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.1-rc.0.js → upgrade-1.18.1.js} +26 -26
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.2.js +53 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +18 -17
- package/dist/m365/spfx/commands/spfx-doctor.js +16 -1
- package/dist/m365/spo/commands/app/app-remove.js +2 -7
- package/dist/m365/spo/commands/app/app-retract.js +2 -7
- package/dist/m365/spo/commands/app/app-uninstall.js +2 -7
- package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-remove.js +2 -7
- package/dist/m365/spo/commands/cdn/cdn-origin-remove.js +2 -7
- package/dist/m365/spo/commands/commandset/commandset-remove.js +2 -7
- package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +2 -7
- package/dist/m365/spo/commands/contenttype/contenttype-remove.js +2 -2
- package/dist/m365/spo/commands/customaction/customaction-clear.js +2 -7
- package/dist/m365/spo/commands/customaction/customaction-remove.js +2 -7
- package/dist/m365/spo/commands/eventreceiver/eventreceiver-remove.js +2 -7
- package/dist/m365/spo/commands/field/field-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-checkout-undo.js +2 -7
- package/dist/m365/spo/commands/file/file-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +14 -23
- package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +21 -34
- package/dist/m365/spo/commands/file/file-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/file/file-sharinglink-clear.js +2 -7
- package/dist/m365/spo/commands/file/file-sharinglink-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-version-clear.js +2 -7
- package/dist/m365/spo/commands/file/file-version-remove.js +2 -7
- package/dist/m365/spo/commands/file/file-version-restore.js +2 -7
- package/dist/m365/spo/commands/folder/folder-remove.js +2 -7
- package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +9 -29
- package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +11 -35
- package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/group/group-member-remove.js +2 -7
- package/dist/m365/spo/commands/group/group-remove.js +2 -7
- package/dist/m365/spo/commands/homesite/homesite-remove.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-disconnect.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-rights-revoke.js +2 -7
- package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +2 -7
- package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-contenttype-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-retentionlabel-ensure.js +27 -37
- package/dist/m365/spo/commands/list/list-retentionlabel-remove.js +8 -26
- package/dist/m365/spo/commands/list/list-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/list/list-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/list/list-view-field-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-view-remove.js +2 -7
- package/dist/m365/spo/commands/list/list-webhook-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-batch-add.js +5 -0
- package/dist/m365/spo/commands/listitem/listitem-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +36 -37
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +38 -39
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +2 -7
- package/dist/m365/spo/commands/navigation/navigation-node-remove.js +2 -7
- package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +2 -7
- package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +2 -7
- package/dist/m365/spo/commands/page/page-remove.js +2 -7
- package/dist/m365/spo/commands/propertybag/propertybag-remove.js +2 -7
- package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +2 -7
- package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-grant-revoke.js +49 -12
- package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-set.js +2 -7
- package/dist/m365/spo/commands/site/site-add.js +45 -12
- package/dist/m365/spo/commands/site/site-apppermission-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-clear.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-move.js +2 -7
- package/dist/m365/spo/commands/site/site-recyclebinitem-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-remove.js +2 -7
- package/dist/m365/spo/commands/site/site-set.js +33 -1
- package/dist/m365/spo/commands/sitedesign/sitedesign-remove.js +2 -7
- package/dist/m365/spo/commands/sitedesign/sitedesign-rights-revoke.js +2 -7
- package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +2 -7
- package/dist/m365/spo/commands/sitescript/sitescript-get.js +8 -2
- package/dist/m365/spo/commands/sitescript/sitescript-remove.js +2 -7
- package/dist/m365/spo/commands/storageentity/storageentity-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-commandset-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +2 -7
- package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-restore.js +19 -2
- package/dist/m365/spo/commands/theme/theme-remove.js +2 -7
- package/dist/m365/spo/commands/user/user-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-roleassignment-remove.js +2 -7
- package/dist/m365/spo/commands/web/web-roleinheritance-break.js +2 -7
- package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +2 -7
- package/dist/m365/teams/commands/app/app-remove.js +2 -7
- package/dist/m365/teams/commands/app/app-uninstall.js +2 -7
- package/dist/m365/teams/commands/cache/cache-remove.js +2 -7
- package/dist/m365/teams/commands/channel/channel-member-remove.js +2 -7
- package/dist/m365/teams/commands/channel/channel-remove.js +2 -7
- package/dist/m365/teams/commands/chat/chat-member-remove.js +2 -7
- package/dist/m365/teams/commands/tab/tab-remove.js +2 -7
- package/dist/m365/teams/commands/team/team-remove.js +2 -7
- package/dist/m365/teams/commands/user/user-app-remove.js +19 -11
- package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +131 -0
- package/dist/m365/tenant/commands/people/people-profilecardproperty-get.js +75 -0
- package/dist/m365/tenant/commands/people/people-profilecardproperty-list.js +53 -0
- package/dist/m365/tenant/commands/people/people-profilecardproperty-remove.js +79 -0
- package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +118 -0
- package/dist/m365/tenant/commands/people/profileCardProperties.js +24 -0
- package/dist/m365/tenant/commands.js +5 -0
- package/dist/m365/todo/commands/list/list-remove.js +2 -7
- package/dist/m365/todo/commands/task/task-remove.js +2 -7
- package/dist/m365/yammer/commands/group/group-user-remove.js +2 -7
- package/dist/m365/yammer/commands/message/message-like-set.js +3 -8
- package/dist/m365/yammer/commands/message/message-remove.js +2 -7
- package/dist/request.js +6 -0
- package/dist/settingsNames.js +2 -0
- package/dist/utils/aadAdministrativeUnit.js +25 -0
- package/dist/utils/prompt.js +30 -7
- package/dist/utils/spo.js +109 -0
- package/docs/docs/_clisettings.mdx +2 -0
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-add.mdx +6 -2
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-get.mdx +5 -1
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-list.mdx +5 -1
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-remove.mdx +6 -2
- package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +1 -1
- package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +2 -2
- package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +1 -1
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +1 -1
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +2 -2
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +2 -2
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +2 -2
- package/docs/docs/cmd/aad/policy/policy-list.mdx +1 -1
- package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +1 -1
- package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +1 -1
- package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +1 -1
- package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +1 -1
- package/docs/docs/cmd/aad/sp/sp-add.mdx +2 -2
- package/docs/docs/cmd/aad/sp/sp-get.mdx +2 -2
- package/docs/docs/cmd/aad/user/user-add.mdx +3 -3
- package/docs/docs/cmd/aad/user/user-guest-add.mdx +1 -1
- package/docs/docs/cmd/aad/user/user-set.mdx +3 -3
- package/docs/docs/cmd/{search/externalconnection/externalconnection-add.mdx → external/connection/connection-add.mdx} +16 -10
- package/docs/docs/cmd/{search/externalconnection/externalconnection-get.mdx → external/connection/connection-get.mdx} +16 -11
- package/docs/docs/cmd/{search/externalconnection/externalconnection-list.mdx → external/connection/connection-list.mdx} +12 -7
- package/docs/docs/cmd/external/connection/connection-remove.mdx +54 -0
- package/docs/docs/cmd/external/connection/connection-schema-add.mdx +41 -0
- package/docs/docs/cmd/flow/run/run-cancel.mdx +3 -0
- package/docs/docs/cmd/graph/changelog/changelog-list.mdx +5 -5
- package/docs/docs/cmd/login.mdx +1 -1
- package/docs/docs/cmd/onenote/notebook/notebook-list.mdx +1 -1
- package/docs/docs/cmd/outlook/message/message-list.mdx +1 -1
- package/docs/docs/cmd/outlook/message/message-move.mdx +1 -1
- package/docs/docs/cmd/planner/bucket/bucket-add.mdx +1 -1
- package/docs/docs/cmd/planner/bucket/bucket-set.mdx +1 -1
- package/docs/docs/cmd/planner/plan/plan-set.mdx +3 -3
- package/docs/docs/cmd/planner/task/task-set.mdx +1 -1
- package/docs/docs/cmd/purview/auditlog/auditlog-list.mdx +3 -3
- package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +1 -1
- package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +1 -1
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +1 -1
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +1 -1
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +1 -1
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +1 -1
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +1 -1
- package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-policysettings-list.mdx +4 -4
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-add.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-deploy.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-get.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-install.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-list.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-remove.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-retract.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-uninstall.mdx +1 -1
- package/docs/docs/cmd/spo/app/app-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/contenttype/contenttype-add.mdx +1 -1
- package/docs/docs/cmd/spo/contenttype/contenttype-set.mdx +1 -1
- package/docs/docs/cmd/spo/file/file-rename.mdx +2 -0
- 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/serviceprincipal/serviceprincipal-grant-revoke.mdx +10 -1
- package/docs/docs/cmd/spo/site/site-add.mdx +25 -4
- 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-groupify.mdx +1 -1
- package/docs/docs/cmd/spo/site/site-set.mdx +15 -0
- package/docs/docs/cmd/spo/sitedesign/sitedesign-add.mdx +3 -3
- package/docs/docs/cmd/spo/sitedesign/sitedesign-apply.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-get.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-list.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-remove.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-run-list.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-set.mdx +3 -3
- package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-task-list.mdx +1 -1
- package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.mdx +1 -1
- package/docs/docs/cmd/spo/sitescript/sitescript-add.mdx +1 -1
- package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +73 -3
- package/docs/docs/cmd/spo/sitescript/sitescript-list.mdx +1 -1
- package/docs/docs/cmd/spo/sitescript/sitescript-remove.mdx +1 -1
- package/docs/docs/cmd/spo/sitescript/sitescript-set.mdx +1 -1
- package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +1 -1
- package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +1 -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/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/user/user-remove.mdx +1 -1
- package/docs/docs/cmd/spo/web/web-set.mdx +1 -1
- package/docs/docs/cmd/teams/channel/channel-remove.mdx +1 -1
- package/docs/docs/cmd/teams/meeting/meeting-get.mdx +1 -1
- package/docs/docs/cmd/teams/meeting/meeting-transcript-list.mdx +1 -1
- package/docs/docs/cmd/teams/report/report-pstncalls.mdx +1 -1
- package/docs/docs/cmd/teams/tab/tab-remove.mdx +1 -1
- package/docs/docs/cmd/teams/team/team-remove.mdx +1 -1
- package/docs/docs/cmd/teams/user/user-app-remove.mdx +11 -2
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-add.mdx +126 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-get.mdx +101 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-list.mdx +98 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-remove.mdx +61 -0
- package/docs/docs/cmd/tenant/people/people-profilecardproperty-set.mdx +120 -0
- package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-healthissue-list.mdx +1 -1
- package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-get.mdx +1 -1
- package/docs/docs/cmd/tenant/serviceannouncement/serviceannouncement-message-list.mdx +1 -1
- package/docs/docs/cmd/todo/task/task-set.mdx +1 -1
- package/npm-shrinkwrap.json +603 -563
- package/package.json +36 -37
- package/dist/m365/search/commands.js +0 -9
- package/docs/docs/cmd/search/externalconnection/externalconnection-remove.mdx +0 -48
- package/docs/docs/cmd/search/externalconnection/externalconnection-schema-add.mdx +0 -35
package/dist/cli/Cli.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import Configstore from 'configstore';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import minimist from 'minimist';
|
|
4
|
+
import { createRequire } from 'module';
|
|
4
5
|
import ora from 'ora';
|
|
5
6
|
import os from 'os';
|
|
6
7
|
import path from 'path';
|
|
7
|
-
import { pathToFileURL } from 'url';
|
|
8
|
+
import { fileURLToPath, pathToFileURL } from 'url';
|
|
8
9
|
import Command, { CommandError } from '../Command.js';
|
|
9
10
|
import config from '../config.js';
|
|
10
11
|
import request from '../request.js';
|
|
@@ -12,10 +13,12 @@ import { settingsNames } from '../settingsNames.js';
|
|
|
12
13
|
import { telemetry } from '../telemetry.js';
|
|
13
14
|
import { app } from '../utils/app.js';
|
|
14
15
|
import { formatting } from '../utils/formatting.js';
|
|
15
|
-
import { fsUtil } from '../utils/fsUtil.js';
|
|
16
16
|
import { md } from '../utils/md.js';
|
|
17
17
|
import { validation } from '../utils/validation.js';
|
|
18
18
|
import { prompt } from '../utils/prompt.js';
|
|
19
|
+
import { timings } from './timings.js';
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
21
|
+
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
19
22
|
export class Cli {
|
|
20
23
|
get config() {
|
|
21
24
|
if (!this._config) {
|
|
@@ -34,7 +37,6 @@ export class Cli {
|
|
|
34
37
|
}
|
|
35
38
|
constructor() {
|
|
36
39
|
this.commands = [];
|
|
37
|
-
this.commandsFolder = '';
|
|
38
40
|
const options = {
|
|
39
41
|
text: 'Running command...',
|
|
40
42
|
/* c8 ignore next 1 */
|
|
@@ -48,8 +50,11 @@ export class Cli {
|
|
|
48
50
|
}
|
|
49
51
|
return Cli.instance;
|
|
50
52
|
}
|
|
51
|
-
async execute(
|
|
52
|
-
|
|
53
|
+
async execute(rawArgs) {
|
|
54
|
+
const start = process.hrtime.bigint();
|
|
55
|
+
// for completion commands we also need information about commands' options
|
|
56
|
+
const loadAllCommandInfo = rawArgs.indexOf('completion') > -1;
|
|
57
|
+
this.loadAllCommandsInfo(loadAllCommandInfo);
|
|
53
58
|
// check if help for a specific command has been requested using the
|
|
54
59
|
// 'm365 help xyz' format. If so, remove 'help' from the array of words
|
|
55
60
|
// to use lazy loading commands but keep track of the fact that help should
|
|
@@ -59,22 +64,10 @@ export class Cli {
|
|
|
59
64
|
showHelp = true;
|
|
60
65
|
rawArgs.shift();
|
|
61
66
|
}
|
|
62
|
-
// parse args to see if a command has been specified
|
|
63
|
-
// rather than loading all commands
|
|
67
|
+
// parse args to see if a command has been specified
|
|
64
68
|
const parsedArgs = minimist(rawArgs);
|
|
65
|
-
// load
|
|
69
|
+
// load command
|
|
66
70
|
await this.loadCommandFromArgs(parsedArgs._);
|
|
67
|
-
if (this.currentCommandName) {
|
|
68
|
-
for (let i = 0; i < this.commands.length; i++) {
|
|
69
|
-
const command = this.commands[i];
|
|
70
|
-
if (command.name === this.currentCommandName ||
|
|
71
|
-
(command.aliases &&
|
|
72
|
-
command.aliases.indexOf(this.currentCommandName) > -1)) {
|
|
73
|
-
this.commandToExecute = command;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
71
|
if (this.commandToExecute) {
|
|
79
72
|
// we have found a command to execute. Parse args again taking into
|
|
80
73
|
// account short and long options, option types and whether the command
|
|
@@ -90,6 +83,8 @@ export class Cli {
|
|
|
90
83
|
}
|
|
91
84
|
}
|
|
92
85
|
else {
|
|
86
|
+
// we need this to properly support displaying commands
|
|
87
|
+
// from the current group
|
|
93
88
|
this.optionsFromArgs = {
|
|
94
89
|
options: parsedArgs
|
|
95
90
|
};
|
|
@@ -113,26 +108,56 @@ export class Cli {
|
|
|
113
108
|
catch (e) {
|
|
114
109
|
return this.closeWithError(e, optionsWithoutShorts);
|
|
115
110
|
}
|
|
111
|
+
const startProcessing = process.hrtime.bigint();
|
|
116
112
|
try {
|
|
117
113
|
// process options before passing them on to validation stage
|
|
118
114
|
const contextCommandOptions = await this.loadOptionsFromContext(this.commandToExecute.options, optionsWithoutShorts.options.debug);
|
|
119
115
|
optionsWithoutShorts.options = { ...contextCommandOptions, ...optionsWithoutShorts.options };
|
|
120
116
|
await this.commandToExecute.command.processOptions(optionsWithoutShorts.options);
|
|
117
|
+
const endProcessing = process.hrtime.bigint();
|
|
118
|
+
timings.options.push(Number(endProcessing - startProcessing));
|
|
121
119
|
}
|
|
122
120
|
catch (e) {
|
|
121
|
+
const endProcessing = process.hrtime.bigint();
|
|
122
|
+
timings.options.push(Number(endProcessing - startProcessing));
|
|
123
123
|
return this.closeWithError(e.message, optionsWithoutShorts, false);
|
|
124
124
|
}
|
|
125
125
|
// if output not specified, set the configured output value (if any)
|
|
126
126
|
if (optionsWithoutShorts.options.output === undefined) {
|
|
127
127
|
optionsWithoutShorts.options.output = this.getSettingWithDefaultValue(settingsNames.output, 'json');
|
|
128
128
|
}
|
|
129
|
+
const startValidation = process.hrtime.bigint();
|
|
129
130
|
const validationResult = await this.commandToExecute.command.validate(optionsWithoutShorts, this.commandToExecute);
|
|
131
|
+
const endValidation = process.hrtime.bigint();
|
|
132
|
+
timings.validation.push(Number(endValidation - startValidation));
|
|
130
133
|
if (validationResult !== true) {
|
|
131
134
|
return this.closeWithError(validationResult, optionsWithoutShorts, true);
|
|
132
135
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
+
const end = process.hrtime.bigint();
|
|
137
|
+
timings.core.push(Number(end - start));
|
|
138
|
+
try {
|
|
139
|
+
await Cli.executeCommand(this.commandToExecute.command, optionsWithoutShorts);
|
|
140
|
+
const endTotal = process.hrtime.bigint();
|
|
141
|
+
timings.total.push(Number(endTotal - start));
|
|
142
|
+
this.printTimings(rawArgs);
|
|
143
|
+
process.exit(0);
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
const endTotal = process.hrtime.bigint();
|
|
147
|
+
timings.total.push(Number(endTotal - start));
|
|
148
|
+
this.printTimings(rawArgs);
|
|
149
|
+
await this.closeWithError(err, optionsWithoutShorts);
|
|
150
|
+
/* c8 ignore next */
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
printTimings(rawArgs) {
|
|
154
|
+
if (rawArgs.some(arg => arg === '--debug')) {
|
|
155
|
+
Cli.error('');
|
|
156
|
+
Cli.error('Timings:');
|
|
157
|
+
Object.getOwnPropertyNames(timings).forEach(key => {
|
|
158
|
+
Cli.error(`${key}: ${timings[key].reduce((a, b) => a + b, 0) / 1e6}ms`);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
136
161
|
}
|
|
137
162
|
static async executeCommand(command, args) {
|
|
138
163
|
const logger = {
|
|
@@ -167,6 +192,7 @@ export class Cli {
|
|
|
167
192
|
if (showSpinner && typeof global.it === 'undefined') {
|
|
168
193
|
cli.spinner.start();
|
|
169
194
|
}
|
|
195
|
+
const startCommand = process.hrtime.bigint();
|
|
170
196
|
try {
|
|
171
197
|
await command.action(logger, args);
|
|
172
198
|
if (args.options.debug || args.options.verbose) {
|
|
@@ -181,6 +207,8 @@ export class Cli {
|
|
|
181
207
|
if (cli.spinner.isSpinning) {
|
|
182
208
|
cli.spinner.stop();
|
|
183
209
|
}
|
|
210
|
+
const endCommand = process.hrtime.bigint();
|
|
211
|
+
timings.command.push(Number(endCommand - startCommand));
|
|
184
212
|
}
|
|
185
213
|
}
|
|
186
214
|
static async executeCommandWithOutput(command, args, listener) {
|
|
@@ -248,55 +276,26 @@ export class Cli {
|
|
|
248
276
|
request.logger = currentLogger;
|
|
249
277
|
}
|
|
250
278
|
}
|
|
251
|
-
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
const file = pathToFileURL(filePath).toString();
|
|
255
|
-
if (file.indexOf(`/commands/`) > -1 &&
|
|
256
|
-
file.indexOf(`/assets/`) < 0 &&
|
|
257
|
-
file.endsWith('.js') &&
|
|
258
|
-
!file.endsWith('.spec.js')) {
|
|
259
|
-
try {
|
|
260
|
-
const command = await import(file);
|
|
261
|
-
if (command.default instanceof Command) {
|
|
262
|
-
this.loadCommand(command.default);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
catch (e) {
|
|
266
|
-
this.closeWithError(e, { options: {} });
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}));
|
|
279
|
+
loadAllCommandsInfo(loadFull = false) {
|
|
280
|
+
const commandsInfoFileName = loadFull ? 'allCommandsFull.json' : 'allCommands.json';
|
|
281
|
+
this.commands = require(path.join(__dirname, '..', '..', commandsInfoFileName));
|
|
270
282
|
}
|
|
271
283
|
/**
|
|
272
284
|
* Loads command files into CLI based on the specified arguments.
|
|
273
285
|
*
|
|
274
286
|
* @param commandNameWords Array of words specified as args
|
|
275
|
-
|
|
287
|
+
*/
|
|
276
288
|
async loadCommandFromArgs(commandNameWords) {
|
|
277
|
-
this.currentCommandName = commandNameWords.join(' ');
|
|
278
289
|
if (commandNameWords.length === 0) {
|
|
279
|
-
await this.loadAllCommands();
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
const isCompletionCommand = commandNameWords.indexOf('completion') > -1;
|
|
283
|
-
if (isCompletionCommand) {
|
|
284
|
-
await this.loadAllCommands();
|
|
285
290
|
return;
|
|
286
291
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
commandFilePath = path.join(this.commandsFolder, commandNameWords[0], 'commands', `${commandNameWords.join('-')}.js`);
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
commandFilePath = path.join(this.commandsFolder, commandNameWords[0], 'commands', commandNameWords[1], commandNameWords.slice(1).join('-') + '.js');
|
|
297
|
-
}
|
|
292
|
+
this.currentCommandName = commandNameWords.join(' ');
|
|
293
|
+
const commandFilePath = this.commands
|
|
294
|
+
.find(c => c.name === this.currentCommandName ||
|
|
295
|
+
c.aliases?.find(a => a === this.currentCommandName))?.file ?? '';
|
|
296
|
+
if (commandFilePath) {
|
|
297
|
+
await this.loadCommandFromFile(commandFilePath);
|
|
298
298
|
}
|
|
299
|
-
await this.loadCommandFromFile(commandFilePath);
|
|
300
299
|
}
|
|
301
300
|
async loadOptionsFromContext(commandOptions, debug) {
|
|
302
301
|
const filePath = '.m365rc.json';
|
|
@@ -339,39 +338,37 @@ export class Cli {
|
|
|
339
338
|
* Loads command from the specified file into CLI. If can't find the file
|
|
340
339
|
* or the file doesn't contain a command, loads all available commands.
|
|
341
340
|
*
|
|
342
|
-
* @param
|
|
341
|
+
* @param commandFilePathUrl File path of the file with command to load
|
|
343
342
|
*/
|
|
344
|
-
async loadCommandFromFile(
|
|
345
|
-
|
|
346
|
-
|
|
343
|
+
async loadCommandFromFile(commandFileUrl) {
|
|
344
|
+
const commandsFolder = path.join(__dirname, '../m365');
|
|
345
|
+
const filePath = path.join(commandsFolder, commandFileUrl);
|
|
346
|
+
if (!fs.existsSync(filePath)) {
|
|
347
|
+
// reset command name
|
|
348
|
+
this.currentCommandName = undefined;
|
|
347
349
|
return;
|
|
348
350
|
}
|
|
349
351
|
try {
|
|
350
|
-
const
|
|
351
|
-
const command = await import(commandFileUrl);
|
|
352
|
+
const command = await import(pathToFileURL(filePath).toString());
|
|
352
353
|
if (command.default instanceof Command) {
|
|
353
|
-
this.
|
|
354
|
-
|
|
355
|
-
else {
|
|
356
|
-
await this.loadAllCommands();
|
|
354
|
+
const commandInfo = this.commands.find(c => c.file === commandFileUrl);
|
|
355
|
+
this.commandToExecute = Cli.getCommandInfo(command.default, commandFileUrl, commandInfo?.help);
|
|
357
356
|
}
|
|
358
357
|
}
|
|
359
|
-
catch {
|
|
360
|
-
await this.loadAllCommands();
|
|
361
|
-
}
|
|
358
|
+
catch { }
|
|
362
359
|
}
|
|
363
|
-
static getCommandInfo(command) {
|
|
360
|
+
static getCommandInfo(command, filePath = '', helpFilePath = '') {
|
|
364
361
|
return {
|
|
365
362
|
aliases: command.alias(),
|
|
366
363
|
name: command.name,
|
|
364
|
+
description: command.description,
|
|
367
365
|
command: command,
|
|
368
366
|
options: this.getCommandOptions(command),
|
|
369
|
-
defaultProperties: command.defaultProperties()
|
|
367
|
+
defaultProperties: command.defaultProperties(),
|
|
368
|
+
file: filePath,
|
|
369
|
+
help: helpFilePath
|
|
370
370
|
};
|
|
371
371
|
}
|
|
372
|
-
loadCommand(command) {
|
|
373
|
-
this.commands.push(Cli.getCommandInfo(command));
|
|
374
|
-
}
|
|
375
372
|
static getCommandOptions(command) {
|
|
376
373
|
const options = [];
|
|
377
374
|
command.options.forEach(option => {
|
|
@@ -508,7 +505,7 @@ export class Cli {
|
|
|
508
505
|
if (arrayType !== 'object') {
|
|
509
506
|
return logStatement.join(os.EOL);
|
|
510
507
|
}
|
|
511
|
-
// if output type has been set to 'text'
|
|
508
|
+
// if output type has been set to 'text', process the retrieved
|
|
512
509
|
// data so that returned objects contain only default properties specified
|
|
513
510
|
// on the current command. If there is no current command or the
|
|
514
511
|
// command doesn't specify default properties, return original data
|
|
@@ -568,58 +565,39 @@ export class Cli {
|
|
|
568
565
|
process.exit(exitCode);
|
|
569
566
|
}
|
|
570
567
|
printCommandHelp(helpMode) {
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
if (this.commandToExecute) {
|
|
574
|
-
commandNameWords = (this.commandToExecute.name).split(' ');
|
|
575
|
-
}
|
|
576
|
-
const pathChunks = [this.commandsFolder, '..', '..', 'docs', 'docs', 'cmd'];
|
|
577
|
-
if (commandNameWords.length === 1) {
|
|
578
|
-
pathChunks.push(`${commandNameWords[0]}.mdx`);
|
|
579
|
-
}
|
|
580
|
-
else {
|
|
581
|
-
if (commandNameWords.length === 2) {
|
|
582
|
-
pathChunks.push(commandNameWords[0], `${commandNameWords.join('-')}.mdx`);
|
|
583
|
-
}
|
|
584
|
-
else {
|
|
585
|
-
pathChunks.push(commandNameWords[0], commandNameWords[1], commandNameWords.slice(1).join('-') + '.mdx');
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
helpFilePath = path.join(...pathChunks);
|
|
568
|
+
const docsRootDir = path.join(__dirname, '..', '..', 'docs');
|
|
569
|
+
const helpFilePath = path.join(docsRootDir, 'docs', 'cmd', this.commandToExecute.help);
|
|
589
570
|
if (fs.existsSync(helpFilePath)) {
|
|
590
571
|
let helpContents = fs.readFileSync(helpFilePath, 'utf8');
|
|
591
572
|
helpContents = this.getHelpSection(helpMode, helpContents);
|
|
592
|
-
helpContents = md.md2plain(helpContents,
|
|
573
|
+
helpContents = md.md2plain(helpContents, docsRootDir);
|
|
593
574
|
Cli.log();
|
|
594
575
|
Cli.log(helpContents);
|
|
595
576
|
}
|
|
596
577
|
}
|
|
597
578
|
async getHelpMode(options) {
|
|
598
|
-
const h = options
|
|
599
|
-
|
|
579
|
+
const { h, help } = options;
|
|
580
|
+
if (!h && !help) {
|
|
581
|
+
return this.getSettingWithDefaultValue(settingsNames.helpMode, Cli.defaultHelpMode);
|
|
582
|
+
}
|
|
600
583
|
// user passed -h or --help, let's see if they passed a specific mode
|
|
601
584
|
// or requested the default
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
585
|
+
const helpMode = h ?? help;
|
|
586
|
+
if (typeof helpMode === 'boolean' || typeof helpMode !== 'string') {
|
|
587
|
+
// requested default mode or passed a number, let's use default
|
|
588
|
+
return this.getSettingWithDefaultValue(settingsNames.helpMode, Cli.defaultHelpMode);
|
|
589
|
+
}
|
|
590
|
+
else {
|
|
591
|
+
const lowerCaseHelpMode = helpMode.toLowerCase();
|
|
592
|
+
if (Cli.helpModes.indexOf(lowerCaseHelpMode) < 0) {
|
|
593
|
+
await Cli.getInstance().closeWithError(`Unknown help mode ${helpMode}. Allowed values are ${Cli.helpModes.join(', ')}`, { options }, false);
|
|
594
|
+
/* c8 ignore next 2 */
|
|
595
|
+
return ''; // noop
|
|
607
596
|
}
|
|
608
597
|
else {
|
|
609
|
-
|
|
610
|
-
if (Cli.helpModes.indexOf(lowerCaseHelpMode) < 0) {
|
|
611
|
-
await Cli.getInstance().closeWithError(`Unknown help mode ${helpMode}. Allowed values are ${Cli.helpModes.join(', ')}`, { options }, false);
|
|
612
|
-
/* c8 ignore next 2 */
|
|
613
|
-
return ''; // noop
|
|
614
|
-
}
|
|
615
|
-
else {
|
|
616
|
-
return lowerCaseHelpMode;
|
|
617
|
-
}
|
|
598
|
+
return lowerCaseHelpMode;
|
|
618
599
|
}
|
|
619
600
|
}
|
|
620
|
-
else {
|
|
621
|
-
return this.getSettingWithDefaultValue(settingsNames.helpMode, Cli.defaultHelpMode);
|
|
622
|
-
}
|
|
623
601
|
}
|
|
624
602
|
getHelpSection(helpMode, helpContents) {
|
|
625
603
|
if (helpMode === 'full') {
|
|
@@ -709,7 +687,7 @@ export class Cli {
|
|
|
709
687
|
Cli.log();
|
|
710
688
|
const sortedCommandNamesToPrint = Object.getOwnPropertyNames(commandsToPrint).sort();
|
|
711
689
|
sortedCommandNamesToPrint.forEach(commandName => {
|
|
712
|
-
Cli.log(` ${`${commandName} [options]`.padEnd(maxLength, ' ')} ${commandsToPrint[commandName].
|
|
690
|
+
Cli.log(` ${`${commandName} [options]`.padEnd(maxLength, ' ')} ${commandsToPrint[commandName].description}`);
|
|
713
691
|
});
|
|
714
692
|
}
|
|
715
693
|
const namesOfCommandGroupsToPrint = Object.keys(commandGroupsToPrint);
|
|
@@ -804,35 +782,47 @@ export class Cli {
|
|
|
804
782
|
cli.spinner.start();
|
|
805
783
|
}
|
|
806
784
|
}
|
|
807
|
-
static async
|
|
785
|
+
static async promptForSelection(config) {
|
|
786
|
+
const cli = Cli.getInstance();
|
|
787
|
+
const spinnerSpinning = cli.spinner.isSpinning;
|
|
788
|
+
/* c8 ignore next 3 */
|
|
789
|
+
if (spinnerSpinning) {
|
|
790
|
+
cli.spinner.stop();
|
|
791
|
+
}
|
|
792
|
+
const answer = await prompt.forSelection(config);
|
|
793
|
+
Cli.error('');
|
|
794
|
+
// Restart the spinner if it was running before the prompt
|
|
795
|
+
/* c8 ignore next 3 */
|
|
796
|
+
if (spinnerSpinning) {
|
|
797
|
+
cli.spinner.start();
|
|
798
|
+
}
|
|
799
|
+
return answer;
|
|
800
|
+
}
|
|
801
|
+
static async promptForConfirmation(config) {
|
|
808
802
|
const cli = Cli.getInstance();
|
|
809
803
|
const spinnerSpinning = cli.spinner.isSpinning;
|
|
810
804
|
/* c8 ignore next 3 */
|
|
811
805
|
if (spinnerSpinning) {
|
|
812
806
|
cli.spinner.stop();
|
|
813
807
|
}
|
|
814
|
-
const
|
|
808
|
+
const answer = await prompt.forConfirmation(config);
|
|
809
|
+
Cli.error('');
|
|
815
810
|
// Restart the spinner if it was running before the prompt
|
|
816
811
|
/* c8 ignore next 3 */
|
|
817
812
|
if (spinnerSpinning) {
|
|
818
813
|
cli.spinner.start();
|
|
819
814
|
}
|
|
820
|
-
return
|
|
815
|
+
return answer;
|
|
821
816
|
}
|
|
822
817
|
static async handleMultipleResultsFound(message, values) {
|
|
823
818
|
const prompt = Cli.getInstance().getSettingWithDefaultValue(settingsNames.prompt, true);
|
|
824
819
|
if (!prompt) {
|
|
825
820
|
throw new Error(`${message} Found: ${Object.keys(values).join(', ')}.`);
|
|
826
821
|
}
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
prefix: '🌶️ ',
|
|
832
|
-
message: `${message} Please choose one:`,
|
|
833
|
-
choices: Object.keys(values)
|
|
834
|
-
});
|
|
835
|
-
return values[response.select];
|
|
822
|
+
Cli.error(`🌶️ ${message}`);
|
|
823
|
+
const choices = Object.keys(values).map((choice) => { return { name: choice, value: choice }; });
|
|
824
|
+
const response = await Cli.promptForSelection({ message: `Please choose one:`, choices });
|
|
825
|
+
return values[response];
|
|
836
826
|
}
|
|
837
827
|
static removeShortOptions(args) {
|
|
838
828
|
const filteredArgs = JSON.parse(JSON.stringify(args));
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import url from 'url';
|
|
5
2
|
import { Cli } from './cli/Cli.js';
|
|
6
3
|
import { telemetry } from './telemetry.js';
|
|
7
4
|
import { app } from './utils/app.js';
|
|
8
|
-
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
9
5
|
// required to make console.log() in combination with piped output synchronous
|
|
10
6
|
// on Windows/in PowerShell so that the output is not trimmed by calling
|
|
11
7
|
// process.exit() after executing the command, while the output is still
|
|
@@ -18,14 +14,12 @@ if (!process.env.CLIMICROSOFT365_NOUPDATE) {
|
|
|
18
14
|
updateNotifier.default({ pkg: app.packageJson() }).notify({ defer: false });
|
|
19
15
|
});
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
});
|
|
17
|
+
try {
|
|
18
|
+
const cli = Cli.getInstance();
|
|
19
|
+
cli.execute(process.argv.slice(2));
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
telemetry.trackException(e);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
31
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -24,7 +24,7 @@ class AadAdministrativeUnitAddCommand extends GraphCommand {
|
|
|
24
24
|
const requestOptions = {
|
|
25
25
|
url: `${this.resource}/v1.0/directory/administrativeUnits`,
|
|
26
26
|
headers: {
|
|
27
|
-
|
|
27
|
+
accept: 'application/json;odata.metadata=none'
|
|
28
28
|
},
|
|
29
29
|
responseType: 'json',
|
|
30
30
|
data: {
|
|
@@ -45,7 +45,7 @@ class AadAdministrativeUnitAddCommand extends GraphCommand {
|
|
|
45
45
|
_AadAdministrativeUnitAddCommand_instances = new WeakSet(), _AadAdministrativeUnitAddCommand_initTelemetry = function _AadAdministrativeUnitAddCommand_initTelemetry() {
|
|
46
46
|
this.telemetry.push((args) => {
|
|
47
47
|
Object.assign(this.telemetryProperties, {
|
|
48
|
-
hiddenMembership: args.options.hiddenMembership
|
|
48
|
+
hiddenMembership: !!args.options.hiddenMembership
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
51
|
}, _AadAdministrativeUnitAddCommand_initOptions = function _AadAdministrativeUnitAddCommand_initOptions() {
|
|
@@ -54,7 +54,7 @@ _AadAdministrativeUnitAddCommand_instances = new WeakSet(), _AadAdministrativeUn
|
|
|
54
54
|
}, {
|
|
55
55
|
option: '-d, --description [description]'
|
|
56
56
|
}, {
|
|
57
|
-
option: '--hiddenMembership
|
|
57
|
+
option: '--hiddenMembership'
|
|
58
58
|
});
|
|
59
59
|
};
|
|
60
60
|
export default new AadAdministrativeUnitAddCommand();
|
|
@@ -8,9 +8,7 @@ import { validation } from "../../../../utils/validation.js";
|
|
|
8
8
|
import request from "../../../../request.js";
|
|
9
9
|
import GraphCommand from "../../../base/GraphCommand.js";
|
|
10
10
|
import commands from "../../commands.js";
|
|
11
|
-
import {
|
|
12
|
-
import { formatting } from "../../../../utils/formatting.js";
|
|
13
|
-
import { Cli } from "../../../../cli/Cli.js";
|
|
11
|
+
import { aadAdministrativeUnit } from "../../../../utils/aadAdministrativeUnit.js";
|
|
14
12
|
class AadAdministrativeUnitGetCommand extends GraphCommand {
|
|
15
13
|
get name() {
|
|
16
14
|
return commands.ADMINISTRATIVEUNIT_GET;
|
|
@@ -34,7 +32,7 @@ class AadAdministrativeUnitGetCommand extends GraphCommand {
|
|
|
34
32
|
administrativeUnit = await this.getAdministrativeUnitById(args.options.id);
|
|
35
33
|
}
|
|
36
34
|
else {
|
|
37
|
-
administrativeUnit = await
|
|
35
|
+
administrativeUnit = await aadAdministrativeUnit.getAdministrativeUnitByDisplayName(args.options.displayName);
|
|
38
36
|
}
|
|
39
37
|
await logger.log(administrativeUnit);
|
|
40
38
|
}
|
|
@@ -52,17 +50,6 @@ class AadAdministrativeUnitGetCommand extends GraphCommand {
|
|
|
52
50
|
};
|
|
53
51
|
return await request.get(requestOptions);
|
|
54
52
|
}
|
|
55
|
-
async getAdministrativeUnitByDisplayName(displayName) {
|
|
56
|
-
const administrativeUnits = await odata.getAllItems(`${this.resource}/v1.0/directory/administrativeUnits?$filter=displayName eq '${formatting.encodeQueryParameter(displayName)}'`);
|
|
57
|
-
if (administrativeUnits.length === 0) {
|
|
58
|
-
throw `The specified administrative unit '${displayName}' does not exist.`;
|
|
59
|
-
}
|
|
60
|
-
if (administrativeUnits.length > 1) {
|
|
61
|
-
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', administrativeUnits);
|
|
62
|
-
return await Cli.handleMultipleResultsFound(`Multiple administrative units with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
63
|
-
}
|
|
64
|
-
return administrativeUnits[0];
|
|
65
|
-
}
|
|
66
53
|
}
|
|
67
54
|
_AadAdministrativeUnitGetCommand_instances = new WeakSet(), _AadAdministrativeUnitGetCommand_initTelemetry = function _AadAdministrativeUnitGetCommand_initTelemetry() {
|
|
68
55
|
this.telemetry.push((args) => {
|
|
@@ -4,12 +4,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
6
|
var _AadAdministrativeUnitRemoveCommand_instances, _AadAdministrativeUnitRemoveCommand_initTelemetry, _AadAdministrativeUnitRemoveCommand_initOptions, _AadAdministrativeUnitRemoveCommand_initOptionSets, _AadAdministrativeUnitRemoveCommand_initValidators, _AadAdministrativeUnitRemoveCommand_initTypes;
|
|
7
|
+
import { aadAdministrativeUnit } from '../../../../utils/aadAdministrativeUnit.js';
|
|
7
8
|
import { validation } from "../../../../utils/validation.js";
|
|
8
9
|
import request from "../../../../request.js";
|
|
9
10
|
import GraphCommand from "../../../base/GraphCommand.js";
|
|
10
11
|
import commands from "../../commands.js";
|
|
11
|
-
import { odata } from "../../../../utils/odata.js";
|
|
12
|
-
import { formatting } from "../../../../utils/formatting.js";
|
|
13
12
|
import { Cli } from "../../../../cli/Cli.js";
|
|
14
13
|
class AadAdministrativeUnitRemoveCommand extends GraphCommand {
|
|
15
14
|
get name() {
|
|
@@ -32,7 +31,8 @@ class AadAdministrativeUnitRemoveCommand extends GraphCommand {
|
|
|
32
31
|
try {
|
|
33
32
|
let administrativeUnitId = args.options.id;
|
|
34
33
|
if (args.options.displayName) {
|
|
35
|
-
|
|
34
|
+
const administrativeUnit = await aadAdministrativeUnit.getAdministrativeUnitByDisplayName(args.options.displayName);
|
|
35
|
+
administrativeUnitId = administrativeUnit.id;
|
|
36
36
|
}
|
|
37
37
|
const requestOptions = {
|
|
38
38
|
url: `${this.resource}/v1.0/directory/administrativeUnits/${administrativeUnitId}`,
|
|
@@ -50,29 +50,12 @@ class AadAdministrativeUnitRemoveCommand extends GraphCommand {
|
|
|
50
50
|
await removeAdministrativeUnit();
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
const result = await Cli.
|
|
54
|
-
|
|
55
|
-
name: 'continue',
|
|
56
|
-
default: false,
|
|
57
|
-
message: `Are you sure you want to remove administrative unit '${args.options.id || args.options.displayName}'?`
|
|
58
|
-
});
|
|
59
|
-
if (result.continue) {
|
|
53
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove administrative unit '${args.options.id || args.options.displayName}'?` });
|
|
54
|
+
if (result) {
|
|
60
55
|
await removeAdministrativeUnit();
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
58
|
}
|
|
64
|
-
async getAdministrativeUnitIdByDisplayName(displayName) {
|
|
65
|
-
const administrativeUnits = await odata.getAllItems(`${this.resource}/v1.0/directory/administrativeUnits?$filter=displayName eq '${formatting.encodeQueryParameter(displayName)}'&$select=id`);
|
|
66
|
-
if (administrativeUnits.length === 0) {
|
|
67
|
-
throw `The specified administrative unit '${displayName}' does not exist.`;
|
|
68
|
-
}
|
|
69
|
-
if (administrativeUnits.length > 1) {
|
|
70
|
-
const resultAsKeyValuePair = formatting.convertArrayToHashTable('id', administrativeUnits);
|
|
71
|
-
const selectedAdministrativeUnit = await Cli.handleMultipleResultsFound(`Multiple administrative units with name '${displayName}' found.`, resultAsKeyValuePair);
|
|
72
|
-
return selectedAdministrativeUnit.id;
|
|
73
|
-
}
|
|
74
|
-
return administrativeUnits[0].id;
|
|
75
|
-
}
|
|
76
59
|
}
|
|
77
60
|
_AadAdministrativeUnitRemoveCommand_instances = new WeakSet(), _AadAdministrativeUnitRemoveCommand_initTelemetry = function _AadAdministrativeUnitRemoveCommand_initTelemetry() {
|
|
78
61
|
this.telemetry.push((args) => {
|
|
@@ -49,13 +49,8 @@ class AadAppRemoveCommand extends GraphCommand {
|
|
|
49
49
|
await deleteApp();
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
|
-
const result = await Cli.
|
|
53
|
-
|
|
54
|
-
name: 'continue',
|
|
55
|
-
default: false,
|
|
56
|
-
message: `Are you sure you want to remove the app?`
|
|
57
|
-
});
|
|
58
|
-
if (result.continue) {
|
|
52
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the app?` });
|
|
53
|
+
if (result) {
|
|
59
54
|
await deleteApp();
|
|
60
55
|
}
|
|
61
56
|
}
|
|
@@ -38,13 +38,8 @@ class AadAppRoleRemoveCommand extends GraphCommand {
|
|
|
38
38
|
await deleteAppRole();
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
|
-
const result = await Cli.
|
|
42
|
-
|
|
43
|
-
name: 'continue',
|
|
44
|
-
default: false,
|
|
45
|
-
message: `Are you sure you want to remove the app role ?`
|
|
46
|
-
});
|
|
47
|
-
if (result.continue) {
|
|
41
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the app role?` });
|
|
42
|
+
if (result) {
|
|
48
43
|
await deleteAppRole();
|
|
49
44
|
}
|
|
50
45
|
}
|
|
@@ -111,13 +111,8 @@ class AadAppRoleAssignmentRemoveCommand extends GraphCommand {
|
|
|
111
111
|
await removeAppRoleAssignment();
|
|
112
112
|
}
|
|
113
113
|
else {
|
|
114
|
-
const result = await Cli.
|
|
115
|
-
|
|
116
|
-
name: 'continue',
|
|
117
|
-
default: false,
|
|
118
|
-
message: `Are you sure you want to remove the appRoleAssignment with scopes ${args.options.scopes} for resource ${args.options.resource}?`
|
|
119
|
-
});
|
|
120
|
-
if (result.continue) {
|
|
114
|
+
const result = await Cli.promptForConfirmation({ message: `Are you sure you want to remove the appRoleAssignment with scope ${args.options.scope} for resource ${args.options.resource}?` });
|
|
115
|
+
if (result) {
|
|
121
116
|
await removeAppRoleAssignment();
|
|
122
117
|
}
|
|
123
118
|
}
|