@pnp/cli-microsoft365 7.2.0-beta.54705a9 → 7.2.0-beta.8577f52
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 +4 -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 +124 -133
- package/dist/cli/timings.js +9 -0
- package/dist/index.js +8 -14
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-add.js +61 -0
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-get.js +80 -0
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-list.js +25 -0
- package/dist/m365/aad/commands/administrativeunit/administrativeunit-remove.js +91 -0
- 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/aad/commands.js +4 -0
- package/dist/m365/base/AppCommand.js +3 -12
- 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.js +21 -0
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.18.2.js +21 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +7 -3
- package/dist/m365/spfx/commands/project/project-github-workflow-add.js +17 -0
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN014010_CODE_settings_filesexclude_jest.js +44 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.1.js +57 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.2.js +53 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +7 -3
- package/dist/m365/spfx/commands/spfx-doctor.js +30 -0
- 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/app/app-update.js +9 -6
- 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/aadGroup.js +3 -1
- 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 +119 -0
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-get.mdx +102 -0
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-list.mdx +87 -0
- package/docs/docs/cmd/aad/administrativeunit/administrativeunit-remove.mdx +56 -0
- 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 -36
- 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') {
|
|
@@ -707,9 +685,10 @@ export class Cli {
|
|
|
707
685
|
const maxLength = Math.max(...namesOfCommandsToPrint.map(s => s.length)) + 10;
|
|
708
686
|
Cli.log(`Commands:`);
|
|
709
687
|
Cli.log();
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
688
|
+
const sortedCommandNamesToPrint = Object.getOwnPropertyNames(commandsToPrint).sort();
|
|
689
|
+
sortedCommandNamesToPrint.forEach(commandName => {
|
|
690
|
+
Cli.log(` ${`${commandName} [options]`.padEnd(maxLength, ' ')} ${commandsToPrint[commandName].description}`);
|
|
691
|
+
});
|
|
713
692
|
}
|
|
714
693
|
const namesOfCommandGroupsToPrint = Object.keys(commandGroupsToPrint);
|
|
715
694
|
if (namesOfCommandGroupsToPrint.length > 0) {
|
|
@@ -803,35 +782,47 @@ export class Cli {
|
|
|
803
782
|
cli.spinner.start();
|
|
804
783
|
}
|
|
805
784
|
}
|
|
806
|
-
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) {
|
|
807
802
|
const cli = Cli.getInstance();
|
|
808
803
|
const spinnerSpinning = cli.spinner.isSpinning;
|
|
809
804
|
/* c8 ignore next 3 */
|
|
810
805
|
if (spinnerSpinning) {
|
|
811
806
|
cli.spinner.stop();
|
|
812
807
|
}
|
|
813
|
-
const
|
|
808
|
+
const answer = await prompt.forConfirmation(config);
|
|
809
|
+
Cli.error('');
|
|
814
810
|
// Restart the spinner if it was running before the prompt
|
|
815
811
|
/* c8 ignore next 3 */
|
|
816
812
|
if (spinnerSpinning) {
|
|
817
813
|
cli.spinner.start();
|
|
818
814
|
}
|
|
819
|
-
return
|
|
815
|
+
return answer;
|
|
820
816
|
}
|
|
821
817
|
static async handleMultipleResultsFound(message, values) {
|
|
822
818
|
const prompt = Cli.getInstance().getSettingWithDefaultValue(settingsNames.prompt, true);
|
|
823
819
|
if (!prompt) {
|
|
824
820
|
throw new Error(`${message} Found: ${Object.keys(values).join(', ')}.`);
|
|
825
821
|
}
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
prefix: '🌶️ ',
|
|
831
|
-
message: `${message} Please choose one:`,
|
|
832
|
-
choices: Object.keys(values)
|
|
833
|
-
});
|
|
834
|
-
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];
|
|
835
826
|
}
|
|
836
827
|
static removeShortOptions(args) {
|
|
837
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
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _AadAdministrativeUnitAddCommand_instances, _AadAdministrativeUnitAddCommand_initTelemetry, _AadAdministrativeUnitAddCommand_initOptions;
|
|
7
|
+
import request from "../../../../request.js";
|
|
8
|
+
import GraphCommand from "../../../base/GraphCommand.js";
|
|
9
|
+
import commands from "../../commands.js";
|
|
10
|
+
class AadAdministrativeUnitAddCommand extends GraphCommand {
|
|
11
|
+
get name() {
|
|
12
|
+
return commands.ADMINISTRATIVEUNIT_ADD;
|
|
13
|
+
}
|
|
14
|
+
get description() {
|
|
15
|
+
return 'Creates an administrative unit';
|
|
16
|
+
}
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
_AadAdministrativeUnitAddCommand_instances.add(this);
|
|
20
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitAddCommand_instances, "m", _AadAdministrativeUnitAddCommand_initTelemetry).call(this);
|
|
21
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitAddCommand_instances, "m", _AadAdministrativeUnitAddCommand_initOptions).call(this);
|
|
22
|
+
}
|
|
23
|
+
async commandAction(logger, args) {
|
|
24
|
+
const requestOptions = {
|
|
25
|
+
url: `${this.resource}/v1.0/directory/administrativeUnits`,
|
|
26
|
+
headers: {
|
|
27
|
+
accept: 'application/json;odata.metadata=none'
|
|
28
|
+
},
|
|
29
|
+
responseType: 'json',
|
|
30
|
+
data: {
|
|
31
|
+
description: args.options.description,
|
|
32
|
+
displayName: args.options.displayName,
|
|
33
|
+
visibility: args.options.hiddenMembership ? 'HiddenMembership' : null
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
try {
|
|
37
|
+
const administrativeUnit = await request.post(requestOptions);
|
|
38
|
+
await logger.log(administrativeUnit);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
this.handleRejectedODataJsonPromise(err);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
_AadAdministrativeUnitAddCommand_instances = new WeakSet(), _AadAdministrativeUnitAddCommand_initTelemetry = function _AadAdministrativeUnitAddCommand_initTelemetry() {
|
|
46
|
+
this.telemetry.push((args) => {
|
|
47
|
+
Object.assign(this.telemetryProperties, {
|
|
48
|
+
hiddenMembership: !!args.options.hiddenMembership
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}, _AadAdministrativeUnitAddCommand_initOptions = function _AadAdministrativeUnitAddCommand_initOptions() {
|
|
52
|
+
this.options.unshift({
|
|
53
|
+
option: '-n, --displayName <displayName>'
|
|
54
|
+
}, {
|
|
55
|
+
option: '-d, --description [description]'
|
|
56
|
+
}, {
|
|
57
|
+
option: '--hiddenMembership'
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export default new AadAdministrativeUnitAddCommand();
|
|
61
|
+
//# sourceMappingURL=administrativeunit-add.js.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _AadAdministrativeUnitGetCommand_instances, _AadAdministrativeUnitGetCommand_initTelemetry, _AadAdministrativeUnitGetCommand_initOptions, _AadAdministrativeUnitGetCommand_initValidators, _AadAdministrativeUnitGetCommand_initOptionSets, _AadAdministrativeUnitGetCommand_initTypes;
|
|
7
|
+
import { validation } from "../../../../utils/validation.js";
|
|
8
|
+
import request from "../../../../request.js";
|
|
9
|
+
import GraphCommand from "../../../base/GraphCommand.js";
|
|
10
|
+
import commands from "../../commands.js";
|
|
11
|
+
import { aadAdministrativeUnit } from "../../../../utils/aadAdministrativeUnit.js";
|
|
12
|
+
class AadAdministrativeUnitGetCommand extends GraphCommand {
|
|
13
|
+
get name() {
|
|
14
|
+
return commands.ADMINISTRATIVEUNIT_GET;
|
|
15
|
+
}
|
|
16
|
+
get description() {
|
|
17
|
+
return 'Gets information about a specific administrative unit';
|
|
18
|
+
}
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
_AadAdministrativeUnitGetCommand_instances.add(this);
|
|
22
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitGetCommand_instances, "m", _AadAdministrativeUnitGetCommand_initTelemetry).call(this);
|
|
23
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitGetCommand_instances, "m", _AadAdministrativeUnitGetCommand_initOptions).call(this);
|
|
24
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitGetCommand_instances, "m", _AadAdministrativeUnitGetCommand_initValidators).call(this);
|
|
25
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitGetCommand_instances, "m", _AadAdministrativeUnitGetCommand_initOptionSets).call(this);
|
|
26
|
+
__classPrivateFieldGet(this, _AadAdministrativeUnitGetCommand_instances, "m", _AadAdministrativeUnitGetCommand_initTypes).call(this);
|
|
27
|
+
}
|
|
28
|
+
async commandAction(logger, args) {
|
|
29
|
+
let administrativeUnit;
|
|
30
|
+
try {
|
|
31
|
+
if (args.options.id) {
|
|
32
|
+
administrativeUnit = await this.getAdministrativeUnitById(args.options.id);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
administrativeUnit = await aadAdministrativeUnit.getAdministrativeUnitByDisplayName(args.options.displayName);
|
|
36
|
+
}
|
|
37
|
+
await logger.log(administrativeUnit);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
this.handleRejectedODataJsonPromise(err);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async getAdministrativeUnitById(id) {
|
|
44
|
+
const requestOptions = {
|
|
45
|
+
url: `${this.resource}/v1.0/directory/administrativeUnits/${id}`,
|
|
46
|
+
headers: {
|
|
47
|
+
accept: 'application/json;odata.metadata=none'
|
|
48
|
+
},
|
|
49
|
+
responseType: 'json'
|
|
50
|
+
};
|
|
51
|
+
return await request.get(requestOptions);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
_AadAdministrativeUnitGetCommand_instances = new WeakSet(), _AadAdministrativeUnitGetCommand_initTelemetry = function _AadAdministrativeUnitGetCommand_initTelemetry() {
|
|
55
|
+
this.telemetry.push((args) => {
|
|
56
|
+
Object.assign(this.telemetryProperties, {
|
|
57
|
+
id: typeof args.options.id !== 'undefined',
|
|
58
|
+
displayName: typeof args.options.displayName !== 'undefined'
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}, _AadAdministrativeUnitGetCommand_initOptions = function _AadAdministrativeUnitGetCommand_initOptions() {
|
|
62
|
+
this.options.unshift({
|
|
63
|
+
option: '-i, --id [id]'
|
|
64
|
+
}, {
|
|
65
|
+
option: '-n, --displayName [displayName]'
|
|
66
|
+
});
|
|
67
|
+
}, _AadAdministrativeUnitGetCommand_initValidators = function _AadAdministrativeUnitGetCommand_initValidators() {
|
|
68
|
+
this.validators.push(async (args) => {
|
|
69
|
+
if (args.options.id && !validation.isValidGuid(args.options.id)) {
|
|
70
|
+
return `${args.options.id} is not a valid GUID`;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
});
|
|
74
|
+
}, _AadAdministrativeUnitGetCommand_initOptionSets = function _AadAdministrativeUnitGetCommand_initOptionSets() {
|
|
75
|
+
this.optionSets.push({ options: ['id', 'displayName'] });
|
|
76
|
+
}, _AadAdministrativeUnitGetCommand_initTypes = function _AadAdministrativeUnitGetCommand_initTypes() {
|
|
77
|
+
this.types.string.push('displayName');
|
|
78
|
+
};
|
|
79
|
+
export default new AadAdministrativeUnitGetCommand();
|
|
80
|
+
//# sourceMappingURL=administrativeunit-get.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { odata } from '../../../../utils/odata.js';
|
|
2
|
+
import GraphCommand from '../../../base/GraphCommand.js';
|
|
3
|
+
import commands from '../../commands.js';
|
|
4
|
+
class AadAdministrativeUnitListCommand extends GraphCommand {
|
|
5
|
+
get name() {
|
|
6
|
+
return commands.ADMINISTRATIVEUNIT_LIST;
|
|
7
|
+
}
|
|
8
|
+
get description() {
|
|
9
|
+
return 'Retrieves a list of administrative units';
|
|
10
|
+
}
|
|
11
|
+
defaultProperties() {
|
|
12
|
+
return ['id', 'displayName', 'visibility'];
|
|
13
|
+
}
|
|
14
|
+
async commandAction(logger) {
|
|
15
|
+
try {
|
|
16
|
+
const results = await odata.getAllItems(`${this.resource}/v1.0/directory/administrativeUnits`);
|
|
17
|
+
await logger.log(results);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
this.handleRejectedODataJsonPromise(err);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export default new AadAdministrativeUnitListCommand();
|
|
25
|
+
//# sourceMappingURL=administrativeunit-list.js.map
|