@pnp/cli-microsoft365 6.9.0-beta.6a23aba → 6.9.0-beta.8393174

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.
Files changed (216) hide show
  1. package/.devcontainer/Dockerfile +12 -19
  2. package/.devcontainer/devcontainer.json +24 -17
  3. package/Dockerfile +3 -1
  4. package/dist/Auth.js +2 -8
  5. package/dist/AuthServer.js +2 -4
  6. package/dist/cli/Cli.js +16 -0
  7. package/dist/m365/aad/commands/app/app-add.js +258 -249
  8. package/dist/m365/aad/commands/app/app-get.js +65 -62
  9. package/dist/m365/aad/commands/app/app-remove.js +22 -23
  10. package/dist/m365/aad/commands/app/app-role-add.js +35 -34
  11. package/dist/m365/aad/commands/app/app-role-list.js +22 -23
  12. package/dist/m365/aad/commands/app/app-role-remove.js +76 -73
  13. package/dist/m365/aad/commands/app/app-set.js +103 -103
  14. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +16 -14
  15. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +43 -52
  16. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +20 -16
  17. package/dist/m365/aad/commands/o365group/o365group-add.js +40 -37
  18. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +7 -6
  19. package/dist/m365/aad/commands/o365group/o365group-list.js +6 -11
  20. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +7 -8
  21. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +23 -24
  22. package/dist/m365/aad/commands/o365group/o365group-set.js +15 -20
  23. package/dist/m365/aad/commands/o365group/o365group-teamify.js +15 -16
  24. package/dist/m365/aad/commands/o365group/o365group-user-list.js +17 -10
  25. package/dist/m365/aad/commands/o365group/o365group-user-set.js +17 -10
  26. package/dist/m365/aad/commands/policy/policy-list.js +12 -13
  27. package/dist/m365/aad/commands/siteclassification/siteclassification-enable.js +1 -3
  28. package/dist/m365/aad/commands/siteclassification/siteclassification-set.js +19 -20
  29. package/dist/m365/aad/commands/sp/sp-add.js +22 -23
  30. package/dist/m365/aad/commands/sp/sp-get.js +22 -23
  31. package/dist/m365/app/commands/app-open.js +4 -14
  32. package/dist/m365/cli/commands/cli-issue.js +4 -10
  33. package/dist/m365/cli/commands/cli-reconsent.js +2 -8
  34. package/dist/m365/cli/commands/config/config-set.js +1 -0
  35. package/dist/m365/commands/docs.js +2 -8
  36. package/dist/m365/commands/login.js +20 -0
  37. package/dist/m365/commands/setupPresets.js +2 -0
  38. package/dist/m365/file/commands/convert/convert-pdf.js +147 -143
  39. package/dist/m365/file/commands/file-add.js +87 -93
  40. package/dist/m365/file/commands/file-list.js +49 -55
  41. package/dist/m365/flow/commands/flow-list.js +4 -4
  42. package/dist/m365/flow/commands/flow-remove.js +2 -3
  43. package/dist/m365/flow/commands/run/run-resubmit.js +11 -10
  44. package/dist/m365/onedrive/commands/onedrive-list.js +21 -32
  45. package/dist/m365/outlook/commands/message/message-list.js +18 -23
  46. package/dist/m365/outlook/commands/message/message-move.js +15 -20
  47. package/dist/m365/pa/commands/app/app-export.js +3 -4
  48. package/dist/m365/pa/commands/app/app-get.js +11 -9
  49. package/dist/m365/pa/commands/app/app-remove.js +1 -1
  50. package/dist/m365/pa/commands/pcf/pcf-init.js +1 -2
  51. package/dist/m365/pa/commands/solution/solution-init.js +1 -2
  52. package/dist/m365/pa/commands/solution/solution-reference-add.js +1 -2
  53. package/dist/m365/planner/commands/bucket/bucket-add.js +15 -13
  54. package/dist/m365/planner/commands/bucket/bucket-get.js +27 -28
  55. package/dist/m365/planner/commands/bucket/bucket-list.js +15 -13
  56. package/dist/m365/planner/commands/bucket/bucket-remove.js +33 -34
  57. package/dist/m365/planner/commands/bucket/bucket-set.js +33 -34
  58. package/dist/m365/planner/commands/plan/plan-add.js +49 -52
  59. package/dist/m365/planner/commands/plan/plan-set.js +19 -20
  60. package/dist/m365/planner/commands/task/task-add.js +75 -78
  61. package/dist/m365/planner/commands/task/task-checklistitem-add.js +11 -10
  62. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +10 -8
  63. package/dist/m365/planner/commands/task/task-get.js +53 -56
  64. package/dist/m365/planner/commands/task/task-list.js +23 -24
  65. package/dist/m365/planner/commands/task/task-reference-add.js +11 -10
  66. package/dist/m365/planner/commands/task/task-reference-remove.js +13 -14
  67. package/dist/m365/planner/commands/task/task-remove.js +44 -48
  68. package/dist/m365/planner/commands/task/task-set.js +83 -87
  69. package/dist/m365/pp/commands/card/card-get.js +6 -1
  70. package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +0 -5
  71. package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +0 -5
  72. package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +0 -5
  73. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +0 -5
  74. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +0 -5
  75. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +0 -5
  76. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +0 -5
  77. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +0 -5
  78. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +0 -5
  79. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +0 -5
  80. package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +0 -5
  81. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +0 -5
  82. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +19 -22
  83. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +0 -5
  84. package/dist/m365/spfx/commands/project/JsonRule.js +1 -1
  85. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021003_PKG_engines_node.js +1 -0
  86. package/dist/m365/spo/commands/app/app-teamspackage-download.js +17 -24
  87. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +154 -0
  88. package/dist/m365/spo/commands/commandset/commandset-set.js +11 -2
  89. package/dist/m365/spo/commands/file/file-checkout-undo.js +119 -0
  90. package/dist/m365/spo/commands/homesite/homesite-remove.js +1 -1
  91. package/dist/m365/spo/commands/list/list-sensitivitylabel-ensure.js +127 -0
  92. package/dist/m365/spo/commands/navigation/navigation-node-add.js +31 -1
  93. package/dist/m365/spo/commands/navigation/navigation-node-set.js +31 -2
  94. package/dist/m365/{teams/Message.js → spo/commands/tenant/Solution.js} +1 -1
  95. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +156 -0
  96. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +215 -0
  97. package/dist/m365/spo/commands/tenant/tenant-commandset-get.js +114 -0
  98. package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +50 -0
  99. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +1 -1
  100. package/dist/m365/spo/commands.js +7 -0
  101. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -7
  102. package/dist/settingsNames.js +1 -0
  103. package/dist/utils/browserUtil.js +23 -0
  104. package/dist/utils/md.js +1 -3
  105. package/dist/utils/spo.js +60 -0
  106. package/docs/docs/cmd/aad/app/app-add.mdx +113 -0
  107. package/docs/docs/cmd/aad/app/app-get.mdx +217 -0
  108. package/docs/docs/cmd/aad/app/app-list.mdx +21 -0
  109. package/docs/docs/cmd/aad/app/app-role-add.mdx +4 -0
  110. package/docs/docs/cmd/aad/app/app-role-list.mdx +63 -0
  111. package/docs/docs/cmd/aad/app/app-role-remove.mdx +4 -0
  112. package/docs/docs/cmd/aad/app/app-set.mdx +4 -0
  113. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +61 -0
  114. package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +59 -0
  115. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +4 -0
  116. package/docs/docs/cmd/aad/group/group-get.mdx +24 -0
  117. package/docs/docs/cmd/aad/group/group-list.mdx +98 -0
  118. package/docs/docs/cmd/aad/groupsetting/groupsetting-add.mdx +114 -0
  119. package/docs/docs/cmd/aad/groupsetting/groupsetting-get.mdx +115 -0
  120. package/docs/docs/cmd/aad/groupsetting/groupsetting-list.mdx +115 -0
  121. package/docs/docs/cmd/aad/groupsetting/groupsetting-remove.mdx +4 -0
  122. package/docs/docs/cmd/aad/groupsetting/groupsetting-set.mdx +4 -0
  123. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-get.mdx +63 -0
  124. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-list.mdx +63 -0
  125. package/docs/docs/cmd/aad/o365group/o365group-add.mdx +122 -0
  126. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.mdx +68 -0
  127. package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.mdx +77 -0
  128. package/docs/docs/cmd/aad/o365group/o365group-get.mdx +122 -0
  129. package/docs/docs/cmd/aad/o365group/o365group-list.mdx +99 -0
  130. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-clear.mdx +4 -0
  131. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-list.mdx +96 -0
  132. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.mdx +4 -0
  133. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-restore.mdx +4 -0
  134. package/docs/docs/cmd/aad/o365group/o365group-remove.mdx +4 -0
  135. package/docs/docs/cmd/aad/o365group/o365group-renew.mdx +4 -0
  136. package/docs/docs/cmd/aad/o365group/o365group-report-activitycounts.mdx +48 -0
  137. package/docs/docs/cmd/aad/o365group/o365group-report-activitydetail.mdx +60 -0
  138. package/docs/docs/cmd/aad/o365group/o365group-report-activityfilecounts.mdx +46 -0
  139. package/docs/docs/cmd/aad/o365group/o365group-report-activitygroupcounts.mdx +46 -0
  140. package/docs/docs/cmd/aad/o365group/o365group-report-activitystorage.mdx +46 -0
  141. package/docs/docs/cmd/aad/o365group/o365group-set.mdx +4 -0
  142. package/docs/docs/cmd/aad/o365group/o365group-teamify.mdx +4 -0
  143. package/docs/docs/cmd/aad/o365group/o365group-user-add.mdx +4 -0
  144. package/docs/docs/cmd/aad/o365group/o365group-user-list.mdx +56 -0
  145. package/docs/docs/cmd/aad/o365group/o365group-user-remove.mdx +4 -0
  146. package/docs/docs/cmd/aad/o365group/o365group-user-set.mdx +8 -4
  147. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +4 -0
  148. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +59 -0
  149. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +4 -0
  150. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +4 -0
  151. package/docs/docs/cmd/aad/policy/policy-list.mdx +77 -0
  152. package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +4 -0
  153. package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +4 -0
  154. package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +57 -0
  155. package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +4 -0
  156. package/docs/docs/cmd/aad/sp/sp-add.mdx +136 -0
  157. package/docs/docs/cmd/aad/sp/sp-get.mdx +166 -0
  158. package/docs/docs/cmd/aad/user/user-get.mdx +75 -0
  159. package/docs/docs/cmd/aad/user/user-guest-add.mdx +23 -0
  160. package/docs/docs/cmd/aad/user/user-hibp.mdx +82 -0
  161. package/docs/docs/cmd/aad/user/user-license-add.mdx +2 -2
  162. package/docs/docs/cmd/aad/user/user-license-remove.mdx +2 -2
  163. package/docs/docs/cmd/aad/user/user-list.mdx +52 -0
  164. package/docs/docs/cmd/aad/user/user-password-validate.mdx +67 -0
  165. package/docs/docs/cmd/aad/user/user-signin-list.mdx +131 -0
  166. package/docs/docs/cmd/flow/flow-list.mdx +11 -3
  167. package/docs/docs/cmd/flow/run/run-list.mdx +0 -3
  168. package/docs/docs/cmd/login.mdx +39 -0
  169. package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +0 -6
  170. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +0 -6
  171. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.mdx +0 -7
  172. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.mdx +0 -6
  173. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +0 -6
  174. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +0 -6
  175. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.mdx +0 -6
  176. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +0 -6
  177. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +0 -6
  178. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +0 -6
  179. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.mdx +0 -6
  180. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.mdx +0 -6
  181. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.mdx +0 -6
  182. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.mdx +0 -6
  183. package/docs/docs/cmd/setup.mdx +2 -0
  184. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-set.mdx +72 -0
  185. package/docs/docs/cmd/spo/commandset/commandset-set.mdx +12 -3
  186. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +55 -0
  187. package/docs/docs/cmd/spo/list/list-sensitivitylabel-ensure.mdx +64 -0
  188. package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +7 -4
  189. package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +9 -0
  190. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +81 -0
  191. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +183 -0
  192. package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +155 -0
  193. package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +114 -0
  194. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  195. package/docs/docs/cmd/status.mdx +6 -3
  196. package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +12 -2
  197. package/npm-shrinkwrap.json +299 -272
  198. package/package.json +17 -17
  199. package/dist/m365/aad/commands/approleassignment/AppRoleAssignment.js +0 -3
  200. package/dist/m365/aad/commands/approleassignment/ServicePrincipal.js +0 -3
  201. package/dist/m365/aad/commands/groupsetting/GroupSetting.js +0 -3
  202. package/dist/m365/aad/commands/groupsettingtemplate/GroupSettingTemplate.js +0 -3
  203. package/dist/m365/aad/commands/siteclassification/DirectorySetting.js +0 -10
  204. package/dist/m365/aad/commands/siteclassification/DirectorySettingTemplatesRsp.js +0 -3
  205. package/dist/m365/aad/commands/siteclassification/DirectorySettingValue.js +0 -3
  206. package/dist/m365/outlook/Message.js +0 -3
  207. package/dist/m365/spo/commands/site/SitePermission.js +0 -3
  208. package/dist/m365/teams/Channel.js +0 -3
  209. package/dist/m365/teams/ConversationMember.js +0 -3
  210. package/dist/m365/teams/Reply.js +0 -3
  211. package/dist/m365/teams/Tab.js +0 -3
  212. package/dist/m365/teams/Team.js +0 -3
  213. package/dist/m365/teams/TeamsApp.js +0 -3
  214. package/dist/m365/teams/TeamsAppInstallation.js +0 -3
  215. package/dist/m365/teams/TeamsTabConfiguration.js +0 -3
  216. package/dist/m365/teams/commands/Meeting.js +0 -3
@@ -58,25 +58,23 @@ class FileAddCommand extends GraphCommand_1.default {
58
58
  * @returns Absolute URL of the uploaded file
59
59
  */
60
60
  uploadFile(localFilePath, targetGraphFileUrl) {
61
- const fileContents = fs.readFileSync(localFilePath);
62
- const isEmptyFile = fileContents.length === 0;
63
- const requestOptions = {
64
- url: isEmptyFile ? `${targetGraphFileUrl}:/content` : `${targetGraphFileUrl}:/createUploadSession`,
65
- headers: {
66
- accept: 'application/json;odata.metadata=none'
67
- },
68
- responseType: 'json'
69
- };
70
- if (isEmptyFile) {
71
- return request_1.default
72
- .put(requestOptions)
73
- .then((res) => res.webUrl);
74
- }
75
- else {
76
- return request_1.default
77
- .post(requestOptions)
78
- .then((res) => {
79
- const requestOptions = {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const fileContents = fs.readFileSync(localFilePath);
63
+ const isEmptyFile = fileContents.length === 0;
64
+ const requestOptions = {
65
+ url: isEmptyFile ? `${targetGraphFileUrl}:/content` : `${targetGraphFileUrl}:/createUploadSession`,
66
+ headers: {
67
+ accept: 'application/json;odata.metadata=none'
68
+ },
69
+ responseType: 'json'
70
+ };
71
+ if (isEmptyFile) {
72
+ const res = yield request_1.default.put(requestOptions);
73
+ return res.webUrl;
74
+ }
75
+ else {
76
+ const res = yield request_1.default.post(requestOptions);
77
+ const requestOptionsPut = {
80
78
  url: res.uploadUrl,
81
79
  headers: {
82
80
  'x-anonymous': true,
@@ -87,10 +85,10 @@ class FileAddCommand extends GraphCommand_1.default {
87
85
  data: fileContents,
88
86
  responseType: 'json'
89
87
  };
90
- return request_1.default.put(requestOptions);
91
- })
92
- .then((res) => res.webUrl);
93
- }
88
+ const resPut = yield request_1.default.put(requestOptionsPut);
89
+ return resPut.webUrl;
90
+ }
91
+ });
94
92
  }
95
93
  /**
96
94
  * Gets Graph's drive item URL for the specified file. If the user specified
@@ -111,17 +109,16 @@ class FileAddCommand extends GraphCommand_1.default {
111
109
  * @returns Graph's drive item URL for the specified file
112
110
  */
113
111
  getGraphFileUrl(logger, fileWebUrl, siteUrl) {
114
- if (this.debug) {
115
- logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
116
- }
117
- const _fileWebUrl = url.parse(fileWebUrl);
118
- const _siteUrl = url.parse(siteUrl || fileWebUrl);
119
- const isSiteUrl = typeof siteUrl !== 'undefined';
120
- let siteId = '';
121
- let driveRelativeFileUrl = '';
122
- return this
123
- .getGraphSiteInfoFromFullUrl(_siteUrl.host, _siteUrl.path, isSiteUrl)
124
- .then(siteInfo => {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ if (this.debug) {
114
+ logger.logToStderr(`Resolving Graph drive item URL for ${fileWebUrl}`);
115
+ }
116
+ const _fileWebUrl = url.parse(fileWebUrl);
117
+ const _siteUrl = url.parse(siteUrl || fileWebUrl);
118
+ const isSiteUrl = typeof siteUrl !== 'undefined';
119
+ let siteId = '';
120
+ let driveRelativeFileUrl = '';
121
+ const siteInfo = yield this.getGraphSiteInfoFromFullUrl(_siteUrl.host, _siteUrl.path, isSiteUrl);
125
122
  siteId = siteInfo.id;
126
123
  let siteRelativeFileUrl = _fileWebUrl.path.replace(siteInfo.serverRelativeUrl, '');
127
124
  // normalize site-relative URLs for root site collections and root sites
@@ -131,9 +128,7 @@ class FileAddCommand extends GraphCommand_1.default {
131
128
  const siteRelativeFileUrlChunks = siteRelativeFileUrl.split('/');
132
129
  driveRelativeFileUrl = `/${siteRelativeFileUrlChunks.slice(2).join('/')}`;
133
130
  // chunk 0 is empty because the URL starts with /
134
- return this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
135
- })
136
- .then(driveId => {
131
+ const driveId = yield this.getDriveId(logger, siteId, siteRelativeFileUrlChunks[1]);
137
132
  const graphUrl = `${this.resource}/v1.0/sites/${siteId}/drives/${driveId}/root:${driveRelativeFileUrl}`;
138
133
  if (this.debug) {
139
134
  logger.logToStderr(`Resolved URL ${graphUrl}`);
@@ -150,10 +145,10 @@ class FileAddCommand extends GraphCommand_1.default {
150
145
  * @returns ID and server-relative URL of the site denoted by urlPath
151
146
  */
152
147
  getGraphSiteInfoFromFullUrl(hostName, urlPath, isSiteUrl) {
153
- const siteId = '';
154
- const urlChunks = urlPath.split('/');
155
- return new Promise((resolve, reject) => {
156
- this.getGraphSiteInfo(hostName, urlChunks, isSiteUrl ? urlChunks.length - 1 : 0, siteId, resolve, reject);
148
+ return __awaiter(this, void 0, void 0, function* () {
149
+ const siteId = '';
150
+ const urlChunks = urlPath.split('/');
151
+ return yield this.getGraphSiteInfo(hostName, urlChunks, isSiteUrl ? urlChunks.length - 1 : 0, siteId);
157
152
  });
158
153
  }
159
154
  /**
@@ -166,52 +161,52 @@ class FileAddCommand extends GraphCommand_1.default {
166
161
  * @param urlChunks Array of chunks from server-relative URL, eg. ['sites', 'site', 'subsite', 'docs', 'file1.aspx']
167
162
  * @param currentChunk Current chunk that's being tested, eg. sites
168
163
  * @param lastSiteId Last correctly resolved Graph site ID
169
- * @param resolve Callback method to call when resolving site info succeeded
170
- * @param reject Callback method to call when resolving site info failed
171
164
  * @returns Graph site ID and server-relative URL of the site specified through chunks
172
165
  */
173
- getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId, resolve, reject) {
174
- let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
175
- if (currentPath.endsWith('/sites') ||
176
- currentPath.endsWith('/teams') ||
177
- currentPath.endsWith('/personal')) {
178
- return this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '', resolve, reject);
179
- }
180
- if (!currentPath.startsWith('/')) {
181
- currentPath = '/' + currentPath;
182
- }
183
- const requestOptions = {
184
- url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
185
- headers: {
186
- accept: 'application/json;odata.metadata=none'
187
- },
188
- responseType: 'json'
189
- };
190
- const getResult = (id, serverRelativeUrl) => {
191
- return {
192
- id,
193
- serverRelativeUrl
194
- };
195
- };
196
- request_1.default
197
- .get(requestOptions)
198
- .then((res) => {
199
- if (currentChunk === urlChunks.length - 1) {
200
- resolve(getResult(res.id, currentPath));
166
+ getGraphSiteInfo(hostName, urlChunks, currentChunk, lastSiteId) {
167
+ return __awaiter(this, void 0, void 0, function* () {
168
+ let currentPath = urlChunks.slice(0, currentChunk + 1).join('/');
169
+ if (currentPath.endsWith('/sites') ||
170
+ currentPath.endsWith('/teams') ||
171
+ currentPath.endsWith('/personal')) {
172
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, '');
201
173
  }
202
- else {
203
- this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id, resolve, reject);
174
+ if (!currentPath.startsWith('/')) {
175
+ currentPath = '/' + currentPath;
204
176
  }
205
- }, err => {
206
- if (lastSiteId) {
207
- let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
208
- if (!serverRelativeUrl.startsWith('/')) {
209
- serverRelativeUrl = '/' + serverRelativeUrl;
177
+ const requestOptions = {
178
+ url: `${this.resource}/v1.0/sites/${hostName}:${currentPath}?$select=id`,
179
+ headers: {
180
+ accept: 'application/json;odata.metadata=none'
181
+ },
182
+ responseType: 'json'
183
+ };
184
+ const getResult = (id, serverRelativeUrl) => {
185
+ return {
186
+ id,
187
+ serverRelativeUrl
188
+ };
189
+ };
190
+ try {
191
+ const res = yield request_1.default.get(requestOptions);
192
+ if (currentChunk === urlChunks.length - 1) {
193
+ return getResult(res.id, currentPath);
194
+ }
195
+ else {
196
+ return yield this.getGraphSiteInfo(hostName, urlChunks, ++currentChunk, res.id);
210
197
  }
211
- resolve(getResult(lastSiteId, serverRelativeUrl));
212
198
  }
213
- else {
214
- reject(err);
199
+ catch (err) {
200
+ if (lastSiteId) {
201
+ let serverRelativeUrl = `${urlChunks.slice(0, currentChunk).join('/')}`;
202
+ if (!serverRelativeUrl.startsWith('/')) {
203
+ serverRelativeUrl = '/' + serverRelativeUrl;
204
+ }
205
+ return getResult(lastSiteId, serverRelativeUrl);
206
+ }
207
+ else {
208
+ throw err;
209
+ }
215
210
  }
216
211
  });
217
212
  }
@@ -222,24 +217,23 @@ class FileAddCommand extends GraphCommand_1.default {
222
217
  * @returns Graph drive ID of the specified document library
223
218
  */
224
219
  getDriveId(logger, graphSiteId, siteRelativeListUrl) {
225
- const requestOptions = {
226
- url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
227
- headers: {
228
- accept: 'application/json;odata.metadata=none'
229
- },
230
- responseType: 'json'
231
- };
232
- return request_1.default
233
- .get(requestOptions)
234
- .then((res) => {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ const requestOptions = {
222
+ url: `${this.resource}/v1.0/sites/${graphSiteId}/drives?$select=webUrl,id`,
223
+ headers: {
224
+ accept: 'application/json;odata.metadata=none'
225
+ },
226
+ responseType: 'json'
227
+ };
228
+ const res = yield request_1.default.get(requestOptions);
235
229
  if (this.debug) {
236
230
  logger.logToStderr(`Searching for drive with a URL ending with /${siteRelativeListUrl}...`);
237
231
  }
238
232
  const drive = res.value.find(d => d.webUrl.endsWith(`/${siteRelativeListUrl}`));
239
233
  if (!drive) {
240
- return Promise.reject('Drive not found');
234
+ throw 'Drive not found';
241
235
  }
242
- return Promise.resolve(drive.id);
236
+ return drive.id;
243
237
  });
244
238
  }
245
239
  }
@@ -95,19 +95,18 @@ class FileListCommand extends GraphCommand_1.default {
95
95
  });
96
96
  }
97
97
  getDocumentLibrary(siteId, folderUrl, folderUrlFromUser, logger) {
98
- if (this.verbose) {
99
- logger.logToStderr(`Getting document library...`);
100
- }
101
- const requestOptions = {
102
- url: `${this.resource}/v1.0/sites/${siteId}/drives?$select=webUrl,id`,
103
- headers: {
104
- accept: 'application/json;odata.metadata=none'
105
- },
106
- responseType: 'json'
107
- };
108
- return request_1.default
109
- .get(requestOptions)
110
- .then((drives) => {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ if (this.verbose) {
100
+ logger.logToStderr(`Getting document library...`);
101
+ }
102
+ const requestOptions = {
103
+ url: `${this.resource}/v1.0/sites/${siteId}/drives?$select=webUrl,id`,
104
+ headers: {
105
+ accept: 'application/json;odata.metadata=none'
106
+ },
107
+ responseType: 'json'
108
+ };
109
+ const drives = yield request_1.default.get(requestOptions);
111
110
  const lowerCaseFolderUrl = folderUrl.href.toLowerCase();
112
111
  const drive = drives.value
113
112
  .sort((a, b) => b.webUrl.localeCompare(a.webUrl))
@@ -119,29 +118,28 @@ class FileListCommand extends GraphCommand_1.default {
119
118
  lowerCaseFolderUrl[driveUrl.length] === '/');
120
119
  });
121
120
  if (!drive) {
122
- return Promise.reject(`Document library '${folderUrlFromUser}' not found`);
121
+ throw `Document library '${folderUrlFromUser}' not found`;
123
122
  }
124
123
  if (this.verbose) {
125
124
  logger.logToStderr(`Document library: ${drive.webUrl}, ${drive.id}`);
126
125
  }
127
- return Promise.resolve(drive);
126
+ return drive;
128
127
  });
129
128
  }
130
129
  getStartingFolderId(documentLibrary, folderUrl, logger) {
131
- if (this.verbose) {
132
- logger.logToStderr(`Getting starting folder id...`);
133
- }
134
- const documentLibraryRelativeFolderUrl = folderUrl.href.replace(new RegExp(documentLibrary.webUrl, 'i'), '');
135
- const requestOptions = {
136
- url: `${this.resource}/v1.0/drives/${documentLibrary.id}/root${documentLibraryRelativeFolderUrl.length > 0 ? `:${documentLibraryRelativeFolderUrl}` : ''}?$select=id`,
137
- headers: {
138
- accept: 'application/json;odata.metadata=none'
139
- },
140
- responseType: 'json'
141
- };
142
- return request_1.default
143
- .get(requestOptions)
144
- .then((folder) => {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ if (this.verbose) {
132
+ logger.logToStderr(`Getting starting folder id...`);
133
+ }
134
+ const documentLibraryRelativeFolderUrl = folderUrl.href.replace(new RegExp(documentLibrary.webUrl, 'i'), '');
135
+ const requestOptions = {
136
+ url: `${this.resource}/v1.0/drives/${documentLibrary.id}/root${documentLibraryRelativeFolderUrl.length > 0 ? `:${documentLibraryRelativeFolderUrl}` : ''}?$select=id`,
137
+ headers: {
138
+ accept: 'application/json;odata.metadata=none'
139
+ },
140
+ responseType: 'json'
141
+ };
142
+ const folder = yield request_1.default.get(requestOptions);
145
143
  if (this.verbose) {
146
144
  logger.logToStderr(`Starting folder id: ${folder.id}`);
147
145
  }
@@ -149,37 +147,33 @@ class FileListCommand extends GraphCommand_1.default {
149
147
  });
150
148
  }
151
149
  loadFoldersToGetFilesFrom(folderId, driveId, recursive) {
152
- if (!recursive) {
153
- return Promise.resolve();
154
- }
155
- const requestOptions = {
156
- url: `${this.resource}/v1.0/drives/${driveId}/items('${folderId}')/children?$filter=folder ne null&$select=id`,
157
- headers: {
158
- accept: 'application/json;odata.metadata=none'
159
- },
160
- responseType: 'json'
161
- };
162
- return request_1.default
163
- .get(requestOptions)
164
- .then((subfolders) => {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ if (!recursive) {
152
+ return;
153
+ }
154
+ const requestOptions = {
155
+ url: `${this.resource}/v1.0/drives/${driveId}/items('${folderId}')/children?$filter=folder ne null&$select=id`,
156
+ headers: {
157
+ accept: 'application/json;odata.metadata=none'
158
+ },
159
+ responseType: 'json'
160
+ };
161
+ const subfolders = yield request_1.default.get(requestOptions);
165
162
  const subfolderIds = subfolders.value.map((subfolder) => subfolder.id);
166
163
  this.foldersToGetFilesFrom = this.foldersToGetFilesFrom.concat(subfolderIds);
167
- return Promise
168
- .all(subfolderIds.map((subfolderId) => this.loadFoldersToGetFilesFrom(subfolderId, driveId, recursive)))
169
- .then(_ => Promise.resolve());
164
+ yield Promise.all(subfolderIds.map((subfolderId) => this.loadFoldersToGetFilesFrom(subfolderId, driveId, recursive)));
170
165
  });
171
166
  }
172
167
  loadFilesFromFolders(driveId, folderIds, logger) {
173
- if (this.verbose) {
174
- logger.logToStderr(`Loading files from folders...`);
175
- }
176
- let files = [];
177
- return Promise
178
- .all(folderIds.map((folderId) =>
179
- // get items from folder. Because we can't filter out folders here
180
- // we need to get all items from the folder and filter them out later
181
- odata_1.odata.getAllItems(`${this.resource}/v1.0/drives/${driveId}/items/${folderId}/children`)))
182
- .then(res => {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ if (this.verbose) {
170
+ logger.logToStderr(`Loading files from folders...`);
171
+ }
172
+ let files = [];
173
+ const res = yield Promise.all(folderIds.map((folderId) =>
174
+ // get items from folder. Because we can't filter out folders here
175
+ // we need to get all items from the folder and filter them out later
176
+ odata_1.odata.getAllItems(`${this.resource}/v1.0/drives/${driveId}/items/${folderId}/children`)));
183
177
  // flatten data from all promises
184
178
  files = files.concat(...res);
185
179
  // remove folders from the list of files
@@ -31,7 +31,7 @@ class FlowListCommand extends AzmgmtItemsListCommand_1.AzmgmtItemsListCommand {
31
31
  constructor() {
32
32
  super();
33
33
  _FlowListCommand_instances.add(this);
34
- this.allowedSharingStatusses = ['all', 'personal', 'ownedByMe', 'sharedWithMe'];
34
+ this.allowedSharingStatuses = ['all', 'personal', 'ownedByMe', 'sharedWithMe'];
35
35
  __classPrivateFieldGet(this, _FlowListCommand_instances, "m", _FlowListCommand_initTelemetry).call(this);
36
36
  __classPrivateFieldGet(this, _FlowListCommand_instances, "m", _FlowListCommand_initOptions).call(this);
37
37
  __classPrivateFieldGet(this, _FlowListCommand_instances, "m", _FlowListCommand_initValidators).call(this);
@@ -88,7 +88,7 @@ _FlowListCommand_instances = new WeakSet(), _FlowListCommand_initTelemetry = fun
88
88
  option: '-e, --environmentName <environmentName>'
89
89
  }, {
90
90
  option: '--sharingStatus [sharingStatus]',
91
- autocomplete: this.allowedSharingStatusses
91
+ autocomplete: this.allowedSharingStatuses
92
92
  }, {
93
93
  option: '--asAdmin'
94
94
  });
@@ -97,8 +97,8 @@ _FlowListCommand_instances = new WeakSet(), _FlowListCommand_initTelemetry = fun
97
97
  if (args.options.asAdmin && args.options.sharingStatus) {
98
98
  return `The options asAdmin and sharingStatus cannot be specified together.`;
99
99
  }
100
- if (args.options.sharingStatus && !this.allowedSharingStatusses.some(status => status === args.options.sharingStatus)) {
101
- return `${args.options.sharingStatus} is not a valid sharing status. Allowed values are: ${this.allowedSharingStatusses.join(',')}`;
100
+ if (args.options.sharingStatus && !this.allowedSharingStatuses.some(status => status === args.options.sharingStatus)) {
101
+ return `${args.options.sharingStatus} is not a valid sharing status. Allowed values are: ${this.allowedSharingStatuses.join(',')}`;
102
102
  }
103
103
  return true;
104
104
  }));
@@ -15,7 +15,6 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  };
16
16
  var _FlowRemoveCommand_instances, _FlowRemoveCommand_initTelemetry, _FlowRemoveCommand_initOptions, _FlowRemoveCommand_initValidators;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const chalk = require("chalk");
19
18
  const Cli_1 = require("../../../cli/Cli");
20
19
  const request_1 = require("../../../request");
21
20
  const formatting_1 = require("../../../utils/formatting");
@@ -44,7 +43,7 @@ class FlowRemoveCommand extends AzmgmtCommand_1.default {
44
43
  const removeFlow = () => __awaiter(this, void 0, void 0, function* () {
45
44
  const requestOptions = {
46
45
  url: `${this.resource}providers/Microsoft.ProcessSimple/${args.options.asAdmin ? 'scopes/admin/' : ''}environments/${formatting_1.formatting.encodeQueryParameter(args.options.environmentName)}/flows/${formatting_1.formatting.encodeQueryParameter(args.options.name)}?api-version=2016-11-01`,
47
- resolveWithFullResponse: true,
46
+ fullResponse: true,
48
47
  headers: {
49
48
  accept: 'application/json'
50
49
  },
@@ -55,7 +54,7 @@ class FlowRemoveCommand extends AzmgmtCommand_1.default {
55
54
  // handle 204 and throw error message to cmd when invalid flow id is passed
56
55
  // https://github.com/pnp/cli-microsoft365/issues/1063#issuecomment-537218957
57
56
  if (rawRes.statusCode === 204) {
58
- logger.log(chalk.red(`Error: Resource '${args.options.name}' does not exist in environment '${args.options.environmentName}'`));
57
+ throw `Error: Resource '${args.options.name}' does not exist in environment '${args.options.environmentName}'`;
59
58
  }
60
59
  }
61
60
  catch (err) {
@@ -77,16 +77,17 @@ class FlowRunResubmitCommand extends AzmgmtCommand_1.default {
77
77
  });
78
78
  }
79
79
  getTriggerName(environment, flow) {
80
- const requestOptions = {
81
- url: `${this.resource}providers/Microsoft.ProcessSimple/environments/${formatting_1.formatting.encodeQueryParameter(environment)}/flows/${formatting_1.formatting.encodeQueryParameter(flow)}/triggers?api-version=2016-11-01`,
82
- headers: {
83
- accept: 'application/json'
84
- },
85
- responseType: 'json'
86
- };
87
- return request_1.default
88
- .get(requestOptions)
89
- .then((res) => Promise.resolve(res.value[0].name));
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const requestOptions = {
82
+ url: `${this.resource}providers/Microsoft.ProcessSimple/environments/${formatting_1.formatting.encodeQueryParameter(environment)}/flows/${formatting_1.formatting.encodeQueryParameter(flow)}/triggers?api-version=2016-11-01`,
83
+ headers: {
84
+ accept: 'application/json'
85
+ },
86
+ responseType: 'json'
87
+ };
88
+ const res = yield request_1.default.get(requestOptions);
89
+ return res.value[0].name;
90
+ });
90
91
  }
91
92
  }
92
93
  _FlowRunResubmitCommand_instances = new WeakSet(), _FlowRunResubmitCommand_initTelemetry = function _FlowRunResubmitCommand_initTelemetry() {
@@ -41,39 +41,28 @@ class OneDriveListCommand extends SpoCommand_1.default {
41
41
  });
42
42
  }
43
43
  getAllSites(spoAdminUrl, startIndex, formDigest, logger) {
44
- return new Promise((resolve, reject) => {
45
- spo_1.spo
46
- .ensureFormDigest(spoAdminUrl, logger, formDigest, this.debug)
47
- .then((res) => {
48
- const requestOptions = {
49
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
50
- headers: {
51
- 'X-RequestDigest': res.FormDigestValue
52
- },
53
- data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="2" ObjectPathId="1" /><ObjectPath Id="4" ObjectPathId="3" /><Query Id="5" ObjectPathId="3"><Query SelectAllProperties="true"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><Constructor Id="1" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /><Method Id="3" ParentId="1" Name="GetSitePropertiesFromSharePointByFilters"><Parameters><Parameter TypeId="{b92aeee2-c92c-4b67-abcc-024e471bc140}"><Property Name="IncludeDetail" Type="Boolean">false</Property><Property Name="IncludePersonalSite" Type="Enum">1</Property><Property Name="StartIndex" Type="String">${startIndex}</Property><Property Name="Template" Type="String">SPSPERS</Property></Parameter></Parameters></Method></ObjectPaths></Request>`
54
- };
55
- return request_1.default.post(requestOptions);
56
- })
57
- .then((res) => {
58
- const json = JSON.parse(res);
59
- const response = json[0];
60
- if (response.ErrorInfo) {
61
- reject(response.ErrorInfo.ErrorMessage);
62
- return;
63
- }
64
- else {
65
- const sites = json[json.length - 1];
66
- this.allSites.push(...sites._Child_Items_);
67
- if (sites.NextStartIndexFromSharePoint) {
68
- this
69
- .getAllSites(spoAdminUrl, sites.NextStartIndexFromSharePoint, formDigest, logger)
70
- .then(_ => resolve(), err => reject(err));
71
- }
72
- else {
73
- resolve();
74
- }
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const formDigestInfo = yield spo_1.spo.ensureFormDigest(spoAdminUrl, logger, formDigest, this.debug);
46
+ const requestOptions = {
47
+ url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
48
+ headers: {
49
+ 'X-RequestDigest': formDigestInfo.FormDigestValue
50
+ },
51
+ data: `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="2" ObjectPathId="1" /><ObjectPath Id="4" ObjectPathId="3" /><Query Id="5" ObjectPathId="3"><Query SelectAllProperties="true"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><Constructor Id="1" TypeId="{268004ae-ef6b-4e9b-8425-127220d84719}" /><Method Id="3" ParentId="1" Name="GetSitePropertiesFromSharePointByFilters"><Parameters><Parameter TypeId="{b92aeee2-c92c-4b67-abcc-024e471bc140}"><Property Name="IncludeDetail" Type="Boolean">false</Property><Property Name="IncludePersonalSite" Type="Enum">1</Property><Property Name="StartIndex" Type="String">${startIndex}</Property><Property Name="Template" Type="String">SPSPERS</Property></Parameter></Parameters></Method></ObjectPaths></Request>`
52
+ };
53
+ const res = yield request_1.default.post(requestOptions);
54
+ const json = JSON.parse(res);
55
+ const response = json[0];
56
+ if (response.ErrorInfo) {
57
+ throw (response.ErrorInfo.ErrorMessage);
58
+ }
59
+ else {
60
+ const sites = json[json.length - 1];
61
+ this.allSites.push(...sites._Child_Items_);
62
+ if (sites.NextStartIndexFromSharePoint) {
63
+ yield this.getAllSites(spoAdminUrl, sites.NextStartIndexFromSharePoint, formDigest, logger);
75
64
  }
76
- }, err => reject(err));
65
+ }
77
66
  });
78
67
  }
79
68
  }
@@ -53,16 +53,16 @@ class OutlookMessageListCommand extends GraphCommand_1.default {
53
53
  });
54
54
  }
55
55
  getFolderId(args) {
56
- if (!args.options.folderId && !args.options.folderName) {
57
- return Promise.resolve('');
58
- }
59
- if (args.options.folderId) {
60
- return Promise.resolve(args.options.folderId);
61
- }
62
- if (Outlook_1.Outlook.wellKnownFolderNames.indexOf(args.options.folderName) > -1) {
63
- return Promise.resolve(args.options.folderName);
64
- }
65
- return new Promise((resolve, reject) => {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ if (!args.options.folderId && !args.options.folderName) {
58
+ return '';
59
+ }
60
+ if (args.options.folderId) {
61
+ return args.options.folderId;
62
+ }
63
+ if (Outlook_1.Outlook.wellKnownFolderNames.indexOf(args.options.folderName) > -1) {
64
+ return args.options.folderName;
65
+ }
66
66
  const requestOptions = {
67
67
  url: `${this.resource}/v1.0/me/mailFolders?$filter=displayName eq '${formatting_1.formatting.encodeQueryParameter(args.options.folderName)}'&$select=id`,
68
68
  headers: {
@@ -70,19 +70,14 @@ class OutlookMessageListCommand extends GraphCommand_1.default {
70
70
  },
71
71
  responseType: 'json'
72
72
  };
73
- request_1.default
74
- .get(requestOptions)
75
- .then((response) => {
76
- if (response.value.length === 1) {
77
- return resolve(response.value[0].id);
78
- }
79
- if (response.value.length === 0) {
80
- return reject(`Folder with name '${args.options.folderName}' not found`);
81
- }
82
- if (response.value.length > 1) {
83
- return reject(`Multiple folders with name '${args.options.folderName}' found. Please disambiguate:${os.EOL}${response.value.map(f => `- ${f.id}`).join(os.EOL)}`);
84
- }
85
- }, err => reject(err));
73
+ const response = yield request_1.default.get(requestOptions);
74
+ if (response.value.length === 0) {
75
+ throw `Folder with name '${args.options.folderName}' not found`;
76
+ }
77
+ if (response.value.length > 1) {
78
+ throw `Multiple folders with name '${args.options.folderName}' found. Please disambiguate:${os.EOL}${response.value.map(f => `- ${f.id}`).join(os.EOL)}`;
79
+ }
80
+ return response.value[0].id;
86
81
  });
87
82
  }
88
83
  }
@@ -61,13 +61,13 @@ class OutlookMessageMoveCommand extends GraphCommand_1.default {
61
61
  });
62
62
  }
63
63
  getFolderId(folderId, folderName) {
64
- if (folderId) {
65
- return Promise.resolve(folderId);
66
- }
67
- if (Outlook_1.Outlook.wellKnownFolderNames.indexOf(folderName) > -1) {
68
- return Promise.resolve(folderName);
69
- }
70
- return new Promise((resolve, reject) => {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ if (folderId) {
66
+ return folderId;
67
+ }
68
+ if (Outlook_1.Outlook.wellKnownFolderNames.indexOf(folderName) > -1) {
69
+ return folderName;
70
+ }
71
71
  const requestOptions = {
72
72
  url: `${this.resource}/v1.0/me/mailFolders?$filter=displayName eq '${formatting_1.formatting.encodeQueryParameter(folderName)}'&$select=id`,
73
73
  headers: {
@@ -75,19 +75,14 @@ class OutlookMessageMoveCommand extends GraphCommand_1.default {
75
75
  },
76
76
  responseType: 'json'
77
77
  };
78
- request_1.default
79
- .get(requestOptions)
80
- .then((response) => {
81
- if (response.value.length === 1) {
82
- return resolve(response.value[0].id);
83
- }
84
- if (response.value.length === 0) {
85
- return reject(`Folder with name '${folderName}' not found`);
86
- }
87
- if (response.value.length > 1) {
88
- return reject(`Multiple folders with name '${folderName}' found. Please disambiguate:${os.EOL}${response.value.map(f => `- ${f.id}`).join(os.EOL)}`);
89
- }
90
- }, err => reject(err));
78
+ const response = yield request_1.default.get(requestOptions);
79
+ if (response.value.length === 0) {
80
+ throw `Folder with name '${folderName}' not found`;
81
+ }
82
+ if (response.value.length > 1) {
83
+ throw `Multiple folders with name '${folderName}' found. Please disambiguate:${os.EOL}${response.value.map(f => `- ${f.id}`).join(os.EOL)}`;
84
+ }
85
+ return response.value[0].id;
91
86
  });
92
87
  }
93
88
  }