@pnp/cli-microsoft365 6.9.0-beta.f6054b4 → 6.10.0-beta.81a81c0
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 +12 -19
- package/.devcontainer/devcontainer.json +24 -17
- package/Dockerfile +3 -1
- package/dist/Auth.js +2 -8
- package/dist/AuthServer.js +2 -4
- package/dist/cli/Cli.js +2 -2
- package/dist/m365/aad/commands/app/app-add.js +258 -249
- package/dist/m365/aad/commands/app/app-get.js +65 -62
- package/dist/m365/aad/commands/app/app-remove.js +22 -23
- package/dist/m365/aad/commands/app/app-role-add.js +35 -34
- package/dist/m365/aad/commands/app/app-role-list.js +22 -23
- package/dist/m365/aad/commands/app/app-role-remove.js +76 -73
- package/dist/m365/aad/commands/app/app-set.js +103 -103
- package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +16 -14
- package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +43 -52
- package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +20 -16
- package/dist/m365/aad/commands/o365group/o365group-add.js +40 -37
- package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +7 -6
- package/dist/m365/aad/commands/o365group/o365group-list.js +6 -11
- package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +7 -8
- package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +23 -24
- package/dist/m365/aad/commands/o365group/o365group-set.js +15 -20
- package/dist/m365/aad/commands/o365group/o365group-teamify.js +15 -16
- package/dist/m365/aad/commands/o365group/o365group-user-list.js +17 -10
- package/dist/m365/aad/commands/o365group/o365group-user-set.js +17 -10
- package/dist/m365/aad/commands/policy/policy-list.js +12 -13
- package/dist/m365/aad/commands/siteclassification/siteclassification-enable.js +1 -3
- package/dist/m365/aad/commands/siteclassification/siteclassification-set.js +19 -20
- package/dist/m365/aad/commands/sp/sp-add.js +22 -23
- package/dist/m365/aad/commands/sp/sp-get.js +22 -23
- package/dist/m365/aad/commands/sp/sp-list.js +78 -0
- package/dist/m365/aad/commands.js +1 -0
- package/dist/m365/app/commands/app-open.js +4 -14
- package/dist/m365/base/AzmgmtItemsListCommand.js +31 -33
- package/dist/m365/cli/commands/cli-issue.js +4 -10
- package/dist/m365/cli/commands/cli-reconsent.js +2 -8
- package/dist/m365/cli/commands/config/config-set.js +0 -1
- package/dist/m365/commands/docs.js +2 -8
- package/dist/m365/commands/login.js +20 -0
- package/dist/m365/file/commands/convert/convert-pdf.js +147 -143
- package/dist/m365/file/commands/file-add.js +87 -93
- package/dist/m365/file/commands/file-list.js +49 -55
- package/dist/m365/flow/commands/flow-list.js +30 -12
- package/dist/m365/flow/commands/flow-remove.js +2 -3
- package/dist/m365/flow/commands/run/run-resubmit.js +11 -10
- package/dist/m365/onedrive/commands/onedrive-list.js +21 -32
- package/dist/m365/outlook/commands/message/message-list.js +18 -23
- package/dist/m365/outlook/commands/message/message-move.js +15 -20
- package/dist/m365/pa/commands/app/app-export.js +3 -4
- package/dist/m365/pa/commands/app/app-get.js +11 -9
- package/dist/m365/pa/commands/app/app-remove.js +1 -1
- package/dist/m365/pa/commands/pcf/pcf-init.js +1 -2
- package/dist/m365/pa/commands/solution/solution-init.js +1 -2
- package/dist/m365/pa/commands/solution/solution-reference-add.js +1 -2
- package/dist/m365/planner/commands/bucket/bucket-add.js +15 -13
- package/dist/m365/planner/commands/bucket/bucket-get.js +27 -28
- package/dist/m365/planner/commands/bucket/bucket-list.js +15 -13
- package/dist/m365/planner/commands/bucket/bucket-remove.js +33 -34
- package/dist/m365/planner/commands/bucket/bucket-set.js +33 -34
- package/dist/m365/planner/commands/plan/plan-add.js +49 -52
- package/dist/m365/planner/commands/plan/plan-set.js +19 -20
- package/dist/m365/planner/commands/task/task-add.js +75 -78
- package/dist/m365/planner/commands/task/task-checklistitem-add.js +11 -10
- package/dist/m365/planner/commands/task/task-checklistitem-remove.js +10 -8
- package/dist/m365/planner/commands/task/task-get.js +53 -56
- package/dist/m365/planner/commands/task/task-list.js +23 -24
- package/dist/m365/planner/commands/task/task-reference-add.js +11 -10
- package/dist/m365/planner/commands/task/task-reference-remove.js +13 -14
- package/dist/m365/planner/commands/task/task-remove.js +44 -48
- package/dist/m365/planner/commands/task/task-set.js +83 -87
- package/dist/m365/pp/commands/managementapp/managementapp-add.js +19 -20
- package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +3 -8
- package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +1 -6
- package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +1 -6
- package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +1 -6
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +1 -6
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +1 -6
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +1 -6
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +1 -6
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +1 -6
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +0 -5
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +0 -5
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +0 -5
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +19 -22
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +0 -5
- package/dist/m365/spfx/commands/project/JsonRule.js +1 -1
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.17.3.js +25 -0
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.17.4.js +25 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +3 -1
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002027_DEVDEP_fluentui_react.js +14 -0
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021003_PKG_engines_node.js +1 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.3.js +59 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.4.js +55 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +3 -1
- package/dist/m365/spfx/commands/spfx-doctor.js +30 -0
- package/dist/m365/spo/commands/app/app-teamspackage-download.js +17 -24
- package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +154 -0
- package/dist/m365/spo/commands/apppage/apppage-set.js +1 -1
- package/dist/m365/spo/commands/commandset/commandset-set.js +11 -2
- package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +65 -94
- package/dist/m365/spo/commands/customaction/customaction-clear.js +4 -12
- package/dist/m365/spo/commands/customaction/customaction-remove.js +12 -23
- package/dist/m365/spo/commands/customaction/customaction-set.js +21 -29
- package/dist/m365/spo/commands/file/file-add.js +133 -133
- package/dist/m365/spo/commands/file/file-checkout-undo.js +119 -0
- package/dist/m365/spo/commands/file/file-rename.js +11 -9
- package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +2 -2
- package/dist/m365/spo/commands/file/file-roleassignment-add.js +41 -61
- package/dist/m365/spo/commands/file/file-roleassignment-remove.js +3 -0
- package/dist/m365/spo/commands/file/file-roleinheritance-break.js +3 -0
- package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +3 -0
- package/dist/m365/spo/commands/file/file-sharinginfo-get.js +23 -21
- package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
- package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
- package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
- package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +3 -3
- package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
- package/dist/m365/spo/commands/group/group-member-add.js +17 -16
- package/dist/m365/spo/commands/group/group-set.js +20 -20
- package/dist/m365/spo/commands/homesite/homesite-remove.js +1 -1
- package/dist/m365/spo/commands/hubsite/hubsite-get.js +33 -31
- package/dist/m365/spo/commands/hubsite/hubsite-list.js +18 -29
- package/dist/m365/spo/commands/hubsite/hubsite-unregister.js +3 -0
- package/dist/m365/spo/commands/list/list-add.js +1 -1
- package/dist/m365/spo/commands/list/list-contenttype-default-set.js +1 -1
- package/dist/m365/spo/commands/list/list-roleassignment-add.js +45 -52
- package/dist/m365/spo/commands/list/list-roleassignment-remove.js +33 -38
- package/dist/m365/spo/commands/list/list-sensitivitylabel-ensure.js +137 -0
- package/dist/m365/spo/commands/list/list-view-field-add.js +12 -10
- package/dist/m365/spo/commands/list/list-view-field-remove.js +12 -10
- package/dist/m365/spo/commands/list/list-view-field-set.js +12 -10
- package/dist/m365/spo/commands/list/list-view-remove.js +3 -0
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +41 -61
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +71 -74
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +36 -34
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +32 -30
- package/dist/m365/spo/commands/navigation/navigation-node-remove.js +24 -22
- package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-remove.js +29 -27
- package/dist/m365/spo/commands/orgnewssite/orgnewssite-remove.js +26 -24
- package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +34 -40
- package/dist/m365/spo/commands/sitedesign/sitedesign-task-remove.js +23 -21
- package/dist/m365/spo/commands/sitescript/sitescript-remove.js +24 -22
- package/dist/m365/spo/commands/spo-search.js +7 -15
- package/dist/m365/spo/commands/storageentity/storageentity-remove.js +29 -27
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +156 -0
- package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +50 -0
- package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +1 -1
- package/dist/m365/spo/commands.js +5 -0
- package/dist/m365/teams/commands/app/app-install.js +23 -21
- package/dist/m365/teams/commands/app/app-remove.js +3 -0
- package/dist/m365/teams/commands/app/app-uninstall.js +3 -0
- package/dist/m365/teams/commands/app/app-update.js +15 -16
- package/dist/m365/teams/commands/channel/channel-add.js +40 -39
- package/dist/m365/teams/commands/channel/channel-get.js +23 -25
- package/dist/m365/teams/commands/channel/channel-list.js +6 -7
- package/dist/m365/teams/commands/channel/channel-member-add.js +61 -60
- package/dist/m365/teams/commands/channel/channel-member-list.js +20 -22
- package/dist/m365/teams/commands/channel/channel-member-remove.js +43 -48
- package/dist/m365/teams/commands/channel/channel-member-set.js +36 -39
- package/dist/m365/teams/commands/channel/channel-remove.js +4 -1
- package/dist/m365/teams/commands/funsettings/funsettings-list.js +3 -0
- package/dist/m365/teams/commands/funsettings/funsettings-set.js +3 -0
- package/dist/m365/teams/commands/tab/tab-get.js +34 -37
- package/dist/m365/teams/commands/team/team-archive.js +6 -7
- package/dist/m365/teams/commands/team/team-get.js +6 -7
- package/dist/m365/teams/commands/team/team-list.js +9 -11
- package/dist/m365/teams/commands/team/team-remove.js +6 -7
- package/dist/m365/teams/commands/team/team-unarchive.js +6 -7
- package/dist/m365/teams/commands/user/user-app-list.js +13 -11
- package/dist/m365/teams/commands/user/user-list.js +7 -4
- package/dist/m365/tenant/commands/security/security-alerts-list.js +25 -26
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +13 -14
- package/dist/m365/todo/commands/list/list-remove.js +39 -36
- package/dist/m365/todo/commands/list/list-set.js +16 -14
- package/dist/m365/todo/commands/task/task-add.js +14 -14
- package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -7
- package/dist/settingsNames.js +0 -1
- package/dist/utils/browserUtil.js +23 -0
- package/dist/utils/md.js +1 -3
- package/docs/docs/cmd/aad/app/app-add.mdx +113 -0
- package/docs/docs/cmd/aad/app/app-get.mdx +217 -0
- package/docs/docs/cmd/aad/app/app-list.mdx +21 -0
- package/docs/docs/cmd/aad/app/app-role-add.mdx +4 -0
- package/docs/docs/cmd/aad/app/app-role-list.mdx +63 -0
- package/docs/docs/cmd/aad/app/app-role-remove.mdx +4 -0
- package/docs/docs/cmd/aad/app/app-set.mdx +4 -0
- package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +61 -0
- package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +59 -0
- package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +4 -0
- package/docs/docs/cmd/aad/group/group-get.mdx +24 -0
- package/docs/docs/cmd/aad/group/group-list.mdx +98 -0
- package/docs/docs/cmd/aad/groupsetting/groupsetting-add.mdx +114 -0
- package/docs/docs/cmd/aad/groupsetting/groupsetting-get.mdx +115 -0
- package/docs/docs/cmd/aad/groupsetting/groupsetting-list.mdx +115 -0
- package/docs/docs/cmd/aad/groupsetting/groupsetting-remove.mdx +4 -0
- package/docs/docs/cmd/aad/groupsetting/groupsetting-set.mdx +4 -0
- package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-get.mdx +63 -0
- package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-list.mdx +63 -0
- package/docs/docs/cmd/aad/o365group/o365group-add.mdx +122 -0
- package/docs/docs/cmd/aad/o365group/o365group-conversation-list.mdx +68 -0
- package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.mdx +77 -0
- package/docs/docs/cmd/aad/o365group/o365group-get.mdx +122 -0
- package/docs/docs/cmd/aad/o365group/o365group-list.mdx +99 -0
- package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-clear.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-list.mdx +96 -0
- package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-restore.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-remove.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-renew.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-report-activitycounts.mdx +48 -0
- package/docs/docs/cmd/aad/o365group/o365group-report-activitydetail.mdx +60 -0
- package/docs/docs/cmd/aad/o365group/o365group-report-activityfilecounts.mdx +46 -0
- package/docs/docs/cmd/aad/o365group/o365group-report-activitygroupcounts.mdx +46 -0
- package/docs/docs/cmd/aad/o365group/o365group-report-activitystorage.mdx +46 -0
- package/docs/docs/cmd/aad/o365group/o365group-set.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-teamify.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-user-add.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-user-list.mdx +56 -0
- package/docs/docs/cmd/aad/o365group/o365group-user-remove.mdx +4 -0
- package/docs/docs/cmd/aad/o365group/o365group-user-set.mdx +8 -4
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +4 -0
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +59 -0
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +4 -0
- package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +4 -0
- package/docs/docs/cmd/aad/policy/policy-list.mdx +77 -0
- package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +4 -0
- package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +4 -0
- package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +57 -0
- package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +4 -0
- package/docs/docs/cmd/aad/sp/sp-add.mdx +136 -0
- package/docs/docs/cmd/aad/sp/sp-get.mdx +166 -0
- package/docs/docs/cmd/aad/sp/sp-list.mdx +162 -0
- package/docs/docs/cmd/aad/user/user-get.mdx +75 -0
- package/docs/docs/cmd/aad/user/user-guest-add.mdx +23 -0
- package/docs/docs/cmd/aad/user/user-hibp.mdx +82 -0
- package/docs/docs/cmd/aad/user/user-license-add.mdx +2 -2
- package/docs/docs/cmd/aad/user/user-license-remove.mdx +2 -2
- package/docs/docs/cmd/aad/user/user-list.mdx +52 -0
- package/docs/docs/cmd/aad/user/user-password-validate.mdx +67 -0
- package/docs/docs/cmd/aad/user/user-signin-list.mdx +131 -0
- package/docs/docs/cmd/flow/flow-list.mdx +15 -0
- package/docs/docs/cmd/login.mdx +39 -0
- package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +0 -6
- package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +0 -6
- package/docs/docs/cmd/purview/retentionevent/retentionevent-list.mdx +0 -7
- package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.mdx +0 -6
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +0 -6
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +0 -6
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.mdx +0 -6
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +0 -6
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +0 -6
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +0 -6
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.mdx +0 -6
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.mdx +0 -6
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.mdx +0 -6
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.mdx +0 -6
- package/docs/docs/cmd/setup.mdx +2 -0
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-set.mdx +72 -0
- package/docs/docs/cmd/spo/commandset/commandset-set.mdx +12 -3
- package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +55 -0
- package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +1 -1
- package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
- package/docs/docs/cmd/spo/list/list-sensitivitylabel-ensure.mdx +73 -0
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +81 -0
- package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +114 -0
- package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
- package/docs/docs/cmd/spo/tenant/tenant-settings-set.mdx +6 -0
- package/docs/docs/cmd/status.mdx +6 -3
- package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +12 -2
- package/npm-shrinkwrap.json +301 -274
- package/package.json +18 -17
- package/dist/m365/aad/commands/approleassignment/AppRoleAssignment.js +0 -3
- package/dist/m365/aad/commands/approleassignment/ServicePrincipal.js +0 -3
- package/dist/m365/aad/commands/groupsetting/GroupSetting.js +0 -3
- package/dist/m365/aad/commands/groupsettingtemplate/GroupSettingTemplate.js +0 -3
- package/dist/m365/aad/commands/siteclassification/DirectorySetting.js +0 -10
- package/dist/m365/aad/commands/siteclassification/DirectorySettingTemplatesRsp.js +0 -3
- package/dist/m365/aad/commands/siteclassification/DirectorySettingValue.js +0 -3
- package/dist/m365/outlook/Message.js +0 -3
- package/dist/m365/spo/commands/site/SitePermission.js +0 -3
- package/dist/m365/teams/Channel.js +0 -3
- package/dist/m365/teams/ConversationMember.js +0 -3
- package/dist/m365/teams/Message.js +0 -3
- package/dist/m365/teams/Reply.js +0 -3
- package/dist/m365/teams/Tab.js +0 -3
- package/dist/m365/teams/Team.js +0 -3
- package/dist/m365/teams/TeamsApp.js +0 -3
- package/dist/m365/teams/TeamsAppInstallation.js +0 -3
- package/dist/m365/teams/TeamsTabConfiguration.js +0 -3
- package/dist/m365/teams/commands/Meeting.js +0 -3
|
@@ -122,11 +122,11 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
grantAdminConsent(appInfo, adminConsent, logger) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
.
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
if (!adminConsent || this.appPermissions.length === 0) {
|
|
127
|
+
return appInfo;
|
|
128
|
+
}
|
|
129
|
+
const sp = yield this.createServicePrincipal(appInfo.appId);
|
|
130
130
|
if (this.debug) {
|
|
131
131
|
logger.logToStderr("Service principal created, returned object id: " + sp.id);
|
|
132
132
|
}
|
|
@@ -145,115 +145,121 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
147
|
});
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return appInfo;
|
|
151
|
-
});
|
|
148
|
+
yield Promise.all(tasks);
|
|
149
|
+
return appInfo;
|
|
152
150
|
});
|
|
153
151
|
}
|
|
154
152
|
addRoleToServicePrincipal(objectId, resourceId, appRoleId) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const requestOptions = {
|
|
155
|
+
url: `${this.resource}/v1.0/myorganization/servicePrincipals/${objectId}/appRoleAssignments`,
|
|
156
|
+
headers: {
|
|
157
|
+
'Content-Type': 'application/json'
|
|
158
|
+
},
|
|
159
|
+
responseType: 'json',
|
|
160
|
+
data: {
|
|
161
|
+
appRoleId: appRoleId,
|
|
162
|
+
principalId: objectId,
|
|
163
|
+
resourceId: resourceId
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
return request_1.default.post(requestOptions);
|
|
167
|
+
});
|
|
168
168
|
}
|
|
169
169
|
grantOAuth2Permission(appId, resourceId, scopeName) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
170
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
171
|
+
const grantAdminConsentApplicationRequestOptions = {
|
|
172
|
+
url: `${this.resource}/v1.0/myorganization/oauth2PermissionGrants`,
|
|
173
|
+
headers: {
|
|
174
|
+
accept: 'application/json;odata.metadata=none'
|
|
175
|
+
},
|
|
176
|
+
responseType: 'json',
|
|
177
|
+
data: {
|
|
178
|
+
clientId: appId,
|
|
179
|
+
consentType: "AllPrincipals",
|
|
180
|
+
principalId: null,
|
|
181
|
+
resourceId: resourceId,
|
|
182
|
+
scope: scopeName
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
return request_1.default.post(grantAdminConsentApplicationRequestOptions);
|
|
186
|
+
});
|
|
185
187
|
}
|
|
186
188
|
createServicePrincipal(appId) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
const requestOptions = {
|
|
191
|
+
url: `${this.resource}/v1.0/myorganization/servicePrincipals`,
|
|
192
|
+
headers: {
|
|
193
|
+
'content-type': 'application/json'
|
|
194
|
+
},
|
|
195
|
+
data: {
|
|
196
|
+
appId: appId
|
|
197
|
+
},
|
|
198
|
+
responseType: 'json'
|
|
199
|
+
};
|
|
200
|
+
return request_1.default.post(requestOptions);
|
|
201
|
+
});
|
|
198
202
|
}
|
|
199
203
|
updateAppFromManifest(args, appInfo) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
.patch(updateAppRequestOptions)
|
|
255
|
-
|
|
256
|
-
|
|
204
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
+
if (!args.options.manifest) {
|
|
206
|
+
return appInfo;
|
|
207
|
+
}
|
|
208
|
+
const v2Manifest = JSON.parse(args.options.manifest);
|
|
209
|
+
// remove properties that might be coming from the original app that was
|
|
210
|
+
// used to create the manifest and which can't be updated
|
|
211
|
+
delete v2Manifest.id;
|
|
212
|
+
delete v2Manifest.appId;
|
|
213
|
+
delete v2Manifest.publisherDomain;
|
|
214
|
+
// extract secrets from the manifest. Store them in a separate variable
|
|
215
|
+
const secrets = this.getSecretsFromManifest(v2Manifest);
|
|
216
|
+
// Azure Portal returns v2 manifest whereas the Graph API expects a v1.6
|
|
217
|
+
if (args.options.apisApplication || args.options.apisDelegated) {
|
|
218
|
+
// take submitted delegated / application permissions as options
|
|
219
|
+
// otherwise, they will be skipped in the app update
|
|
220
|
+
v2Manifest.requiredResourceAccess = appInfo.requiredResourceAccess;
|
|
221
|
+
}
|
|
222
|
+
if (args.options.redirectUris) {
|
|
223
|
+
// take submitted redirectUris/platform as options
|
|
224
|
+
// otherwise, they will be removed from the app
|
|
225
|
+
v2Manifest.replyUrlsWithType = args.options.redirectUris.split(',').map(u => {
|
|
226
|
+
return {
|
|
227
|
+
url: u.trim(),
|
|
228
|
+
type: this.translatePlatformToType(args.options.platform)
|
|
229
|
+
};
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
if (args.options.multitenant) {
|
|
233
|
+
// override manifest setting when using multitenant flag
|
|
234
|
+
v2Manifest.signInAudience = 'AzureADMultipleOrgs';
|
|
235
|
+
}
|
|
236
|
+
if (args.options.implicitFlow) {
|
|
237
|
+
// remove manifest settings when using implicitFlow flag
|
|
238
|
+
delete v2Manifest.oauth2AllowIdTokenImplicitFlow;
|
|
239
|
+
delete v2Manifest.oauth2AllowImplicitFlow;
|
|
240
|
+
}
|
|
241
|
+
if (args.options.scopeName) {
|
|
242
|
+
// override manifest setting when using options.
|
|
243
|
+
delete v2Manifest.oauth2Permissions;
|
|
244
|
+
}
|
|
245
|
+
if (args.options.certificateFile || args.options.certificateBase64Encoded) {
|
|
246
|
+
// override manifest setting when using options.
|
|
247
|
+
delete v2Manifest.keyCredentials;
|
|
248
|
+
}
|
|
249
|
+
const graphManifest = this.transformManifest(v2Manifest);
|
|
250
|
+
const updateAppRequestOptions = {
|
|
251
|
+
url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
|
|
252
|
+
headers: {
|
|
253
|
+
'content-type': 'application/json'
|
|
254
|
+
},
|
|
255
|
+
responseType: 'json',
|
|
256
|
+
data: graphManifest
|
|
257
|
+
};
|
|
258
|
+
yield request_1.default.patch(updateAppRequestOptions);
|
|
259
|
+
yield this.updatePreAuthorizedAppsFromManifest(v2Manifest, appInfo);
|
|
260
|
+
yield this.createSecrets(secrets, appInfo);
|
|
261
|
+
return appInfo;
|
|
262
|
+
});
|
|
257
263
|
}
|
|
258
264
|
getSecretsFromManifest(manifest) {
|
|
259
265
|
if (!manifest.passwordCredentials || manifest.passwordCredentials.length === 0) {
|
|
@@ -275,44 +281,45 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
275
281
|
return secrets;
|
|
276
282
|
}
|
|
277
283
|
updatePreAuthorizedAppsFromManifest(manifest, appInfo) {
|
|
278
|
-
|
|
279
|
-
!manifest
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
p
|
|
290
|
-
|
|
284
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
285
|
+
if (!manifest ||
|
|
286
|
+
!manifest.preAuthorizedApplications ||
|
|
287
|
+
manifest.preAuthorizedApplications.length === 0) {
|
|
288
|
+
return appInfo;
|
|
289
|
+
}
|
|
290
|
+
const graphManifest = {
|
|
291
|
+
api: {
|
|
292
|
+
preAuthorizedApplications: manifest.preAuthorizedApplications
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
graphManifest.api.preAuthorizedApplications.forEach((p) => {
|
|
296
|
+
p.delegatedPermissionIds = p.permissionIds;
|
|
297
|
+
delete p.permissionIds;
|
|
298
|
+
});
|
|
299
|
+
const updateAppRequestOptions = {
|
|
300
|
+
url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
|
|
301
|
+
headers: {
|
|
302
|
+
'content-type': 'application/json'
|
|
303
|
+
},
|
|
304
|
+
responseType: 'json',
|
|
305
|
+
data: graphManifest
|
|
306
|
+
};
|
|
307
|
+
yield request_1.default.patch(updateAppRequestOptions);
|
|
308
|
+
return appInfo;
|
|
291
309
|
});
|
|
292
|
-
const updateAppRequestOptions = {
|
|
293
|
-
url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
|
|
294
|
-
headers: {
|
|
295
|
-
'content-type': 'application/json'
|
|
296
|
-
},
|
|
297
|
-
responseType: 'json',
|
|
298
|
-
data: graphManifest
|
|
299
|
-
};
|
|
300
|
-
return request_1.default
|
|
301
|
-
.patch(updateAppRequestOptions)
|
|
302
|
-
.then(_ => Promise.resolve(appInfo));
|
|
303
310
|
}
|
|
304
311
|
createSecrets(secrets, appInfo) {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
appInfo.secrets =
|
|
312
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
313
|
+
if (secrets.length === 0) {
|
|
314
|
+
return appInfo;
|
|
315
|
+
}
|
|
316
|
+
const secretsOutput = yield Promise
|
|
317
|
+
.all(secrets.map(secret => this.createSecret({
|
|
318
|
+
appObjectId: appInfo.id,
|
|
319
|
+
displayName: secret.name,
|
|
320
|
+
expirationDate: secret.expirationDate
|
|
321
|
+
})));
|
|
322
|
+
appInfo.secrets = secretsOutput;
|
|
316
323
|
return appInfo;
|
|
317
324
|
});
|
|
318
325
|
}
|
|
@@ -405,52 +412,52 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
405
412
|
return graphManifest;
|
|
406
413
|
}
|
|
407
414
|
configureUri(args, appInfo, logger) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
415
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
416
|
+
if (!args.options.uri) {
|
|
417
|
+
return appInfo;
|
|
418
|
+
}
|
|
419
|
+
if (this.verbose) {
|
|
420
|
+
logger.logToStderr(`Configuring Azure AD application ID URI...`);
|
|
421
|
+
}
|
|
422
|
+
const applicationInfo = {};
|
|
423
|
+
if (args.options.uri) {
|
|
424
|
+
const appUri = args.options.uri.replace(/_appId_/g, appInfo.appId);
|
|
425
|
+
applicationInfo.identifierUris = [appUri];
|
|
426
|
+
}
|
|
427
|
+
if (args.options.scopeName) {
|
|
428
|
+
applicationInfo.api = {
|
|
429
|
+
oauth2PermissionScopes: [{
|
|
430
|
+
adminConsentDescription: args.options.scopeAdminConsentDescription,
|
|
431
|
+
adminConsentDisplayName: args.options.scopeAdminConsentDisplayName,
|
|
432
|
+
id: (0, uuid_1.v4)(),
|
|
433
|
+
type: args.options.scopeConsentBy === 'adminsAndUsers' ? 'User' : 'Admin',
|
|
434
|
+
value: args.options.scopeName
|
|
435
|
+
}]
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
const requestOptions = {
|
|
439
|
+
url: `${this.resource}/v1.0/myorganization/applications/${appInfo.id}`,
|
|
440
|
+
headers: {
|
|
441
|
+
'content-type': 'application/json;odata.metadata=none'
|
|
442
|
+
},
|
|
443
|
+
responseType: 'json',
|
|
444
|
+
data: applicationInfo
|
|
428
445
|
};
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
headers: {
|
|
433
|
-
'content-type': 'application/json;odata.metadata=none'
|
|
434
|
-
},
|
|
435
|
-
responseType: 'json',
|
|
436
|
-
data: applicationInfo
|
|
437
|
-
};
|
|
438
|
-
return request_1.default
|
|
439
|
-
.patch(requestOptions)
|
|
440
|
-
.then(_ => appInfo);
|
|
446
|
+
yield request_1.default.patch(requestOptions);
|
|
447
|
+
return appInfo;
|
|
448
|
+
});
|
|
441
449
|
}
|
|
442
450
|
resolveApis(args, logger) {
|
|
443
451
|
var _a;
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
.getAllItems(`${this.resource}/v1.0/myorganization/servicePrincipals?$select=appId,appRoles,id,oauth2PermissionScopes,servicePrincipalNames`)
|
|
453
|
-
.then(servicePrincipals => {
|
|
452
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
453
|
+
if (!args.options.apisDelegated && !args.options.apisApplication
|
|
454
|
+
&& (typeof ((_a = this.manifest) === null || _a === void 0 ? void 0 : _a.requiredResourceAccess) === 'undefined' || this.manifest.requiredResourceAccess.length === 0)) {
|
|
455
|
+
return [];
|
|
456
|
+
}
|
|
457
|
+
if (this.verbose) {
|
|
458
|
+
logger.logToStderr('Resolving requested APIs...');
|
|
459
|
+
}
|
|
460
|
+
const servicePrincipals = yield odata_1.odata.getAllItems(`${this.resource}/v1.0/myorganization/servicePrincipals?$select=appId,appRoles,id,oauth2PermissionScopes,servicePrincipalNames`);
|
|
454
461
|
let resolvedApis = [];
|
|
455
462
|
try {
|
|
456
463
|
if (args.options.apisDelegated || args.options.apisApplication) {
|
|
@@ -496,10 +503,10 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
496
503
|
logger.logToStderr(`App role assignments: ${JSON.stringify(this.appPermissions.flatMap(permission => permission.resourceAccess.filter(access => access.type === "Role")), null, 2)}`);
|
|
497
504
|
logger.logToStderr(`OAuth2 permissions: ${JSON.stringify(this.appPermissions.flatMap(permission => permission.scope), null, 2)}`);
|
|
498
505
|
}
|
|
499
|
-
return
|
|
506
|
+
return resolvedApis;
|
|
500
507
|
}
|
|
501
508
|
catch (e) {
|
|
502
|
-
|
|
509
|
+
throw e;
|
|
503
510
|
}
|
|
504
511
|
});
|
|
505
512
|
}
|
|
@@ -565,48 +572,48 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
565
572
|
}
|
|
566
573
|
}
|
|
567
574
|
configureSecret(args, appInfo, logger) {
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
.createSecret({ appObjectId: appInfo.id })
|
|
576
|
-
.then(secret => {
|
|
575
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
576
|
+
if (!args.options.withSecret || (appInfo.secrets && appInfo.secrets.length > 0)) {
|
|
577
|
+
return appInfo;
|
|
578
|
+
}
|
|
579
|
+
if (this.verbose) {
|
|
580
|
+
logger.logToStderr(`Configure Azure AD app secret...`);
|
|
581
|
+
}
|
|
582
|
+
const secret = yield this.createSecret({ appObjectId: appInfo.id });
|
|
577
583
|
if (!appInfo.secrets) {
|
|
578
584
|
appInfo.secrets = [];
|
|
579
585
|
}
|
|
580
586
|
appInfo.secrets.push(secret);
|
|
581
|
-
return
|
|
587
|
+
return appInfo;
|
|
582
588
|
});
|
|
583
589
|
}
|
|
584
590
|
createSecret({ appObjectId, displayName = undefined, expirationDate = undefined }) {
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
const secretName = displayName !== null && displayName !== void 0 ? displayName : 'Default';
|
|
591
|
-
const requestOptions = {
|
|
592
|
-
url: `${this.resource}/v1.0/myorganization/applications/${appObjectId}/addPassword`,
|
|
593
|
-
headers: {
|
|
594
|
-
'content-type': 'application/json'
|
|
595
|
-
},
|
|
596
|
-
responseType: 'json',
|
|
597
|
-
data: {
|
|
598
|
-
passwordCredential: {
|
|
599
|
-
displayName: secretName,
|
|
600
|
-
endDateTime: secretExpirationDate.toISOString()
|
|
601
|
-
}
|
|
591
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
592
|
+
let secretExpirationDate = expirationDate;
|
|
593
|
+
if (!secretExpirationDate) {
|
|
594
|
+
secretExpirationDate = new Date();
|
|
595
|
+
secretExpirationDate.setFullYear(secretExpirationDate.getFullYear() + 1);
|
|
602
596
|
}
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
597
|
+
const secretName = displayName !== null && displayName !== void 0 ? displayName : 'Default';
|
|
598
|
+
const requestOptions = {
|
|
599
|
+
url: `${this.resource}/v1.0/myorganization/applications/${appObjectId}/addPassword`,
|
|
600
|
+
headers: {
|
|
601
|
+
'content-type': 'application/json'
|
|
602
|
+
},
|
|
603
|
+
responseType: 'json',
|
|
604
|
+
data: {
|
|
605
|
+
passwordCredential: {
|
|
606
|
+
displayName: secretName,
|
|
607
|
+
endDateTime: secretExpirationDate.toISOString()
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
};
|
|
611
|
+
const response = yield request_1.default.post(requestOptions);
|
|
612
|
+
return {
|
|
613
|
+
displayName: secretName,
|
|
614
|
+
value: response.secretText
|
|
615
|
+
};
|
|
616
|
+
});
|
|
610
617
|
}
|
|
611
618
|
getCertificateBase64Encoded(args, logger) {
|
|
612
619
|
if (args.options.certificateBase64Encoded) {
|
|
@@ -623,43 +630,45 @@ class AadAppAddCommand extends GraphCommand_1.default {
|
|
|
623
630
|
}
|
|
624
631
|
}
|
|
625
632
|
saveAppInfo(args, appInfo, logger) {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
const filePath = '.m365rc.json';
|
|
630
|
-
if (this.verbose) {
|
|
631
|
-
logger.logToStderr(`Saving Azure AD app registration information to the ${filePath} file...`);
|
|
632
|
-
}
|
|
633
|
-
let m365rc = {};
|
|
634
|
-
if (fs.existsSync(filePath)) {
|
|
635
|
-
if (this.debug) {
|
|
636
|
-
logger.logToStderr(`Reading existing ${filePath}...`);
|
|
633
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
634
|
+
if (!args.options.save) {
|
|
635
|
+
return appInfo;
|
|
637
636
|
}
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
637
|
+
const filePath = '.m365rc.json';
|
|
638
|
+
if (this.verbose) {
|
|
639
|
+
logger.logToStderr(`Saving Azure AD app registration information to the ${filePath} file...`);
|
|
640
|
+
}
|
|
641
|
+
let m365rc = {};
|
|
642
|
+
if (fs.existsSync(filePath)) {
|
|
643
|
+
if (this.debug) {
|
|
644
|
+
logger.logToStderr(`Reading existing ${filePath}...`);
|
|
645
|
+
}
|
|
646
|
+
try {
|
|
647
|
+
const fileContents = fs.readFileSync(filePath, 'utf8');
|
|
648
|
+
if (fileContents) {
|
|
649
|
+
m365rc = JSON.parse(fileContents);
|
|
650
|
+
}
|
|
642
651
|
}
|
|
652
|
+
catch (e) {
|
|
653
|
+
logger.logToStderr(`Error reading ${filePath}: ${e}. Please add app info to ${filePath} manually.`);
|
|
654
|
+
return appInfo;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
if (!m365rc.apps) {
|
|
658
|
+
m365rc.apps = [];
|
|
659
|
+
}
|
|
660
|
+
m365rc.apps.push({
|
|
661
|
+
appId: appInfo.appId,
|
|
662
|
+
name: this.appName
|
|
663
|
+
});
|
|
664
|
+
try {
|
|
665
|
+
fs.writeFileSync(filePath, JSON.stringify(m365rc, null, 2));
|
|
643
666
|
}
|
|
644
667
|
catch (e) {
|
|
645
|
-
logger.logToStderr(`Error
|
|
646
|
-
return Promise.resolve(appInfo);
|
|
668
|
+
logger.logToStderr(`Error writing ${filePath}: ${e}. Please add app info to ${filePath} manually.`);
|
|
647
669
|
}
|
|
648
|
-
|
|
649
|
-
if (!m365rc.apps) {
|
|
650
|
-
m365rc.apps = [];
|
|
651
|
-
}
|
|
652
|
-
m365rc.apps.push({
|
|
653
|
-
appId: appInfo.appId,
|
|
654
|
-
name: this.appName
|
|
670
|
+
return appInfo;
|
|
655
671
|
});
|
|
656
|
-
try {
|
|
657
|
-
fs.writeFileSync(filePath, JSON.stringify(m365rc, null, 2));
|
|
658
|
-
}
|
|
659
|
-
catch (e) {
|
|
660
|
-
logger.logToStderr(`Error writing ${filePath}: ${e}. Please add app info to ${filePath} manually.`);
|
|
661
|
-
}
|
|
662
|
-
return Promise.resolve(appInfo);
|
|
663
672
|
}
|
|
664
673
|
translatePlatformToType(platform) {
|
|
665
674
|
if (platform === 'publicClient') {
|