@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.
- 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 +16 -0
- 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/app/commands/app-open.js +4 -14
- 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 +1 -0
- package/dist/m365/commands/docs.js +2 -8
- package/dist/m365/commands/login.js +20 -0
- package/dist/m365/commands/setupPresets.js +2 -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 +4 -4
- 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/card/card-get.js +6 -1
- package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +0 -5
- package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +0 -5
- package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +0 -5
- package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +0 -5
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +0 -5
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +0 -5
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +0 -5
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +0 -5
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +0 -5
- 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-upgrade/rules/FN021003_PKG_engines_node.js +1 -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/commandset/commandset-set.js +11 -2
- package/dist/m365/spo/commands/file/file-checkout-undo.js +119 -0
- package/dist/m365/spo/commands/homesite/homesite-remove.js +1 -1
- package/dist/m365/spo/commands/list/list-sensitivitylabel-ensure.js +127 -0
- package/dist/m365/spo/commands/navigation/navigation-node-add.js +31 -1
- package/dist/m365/spo/commands/navigation/navigation-node-set.js +31 -2
- package/dist/m365/{teams/Message.js → spo/commands/tenant/Solution.js} +1 -1
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +156 -0
- package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +215 -0
- package/dist/m365/spo/commands/tenant/tenant-commandset-get.js +114 -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 +7 -0
- package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -7
- package/dist/settingsNames.js +1 -0
- package/dist/utils/browserUtil.js +23 -0
- package/dist/utils/md.js +1 -3
- package/dist/utils/spo.js +60 -0
- 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/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 +11 -3
- package/docs/docs/cmd/flow/run/run-list.mdx +0 -3
- 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/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/list/list-sensitivitylabel-ensure.mdx +64 -0
- package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +7 -4
- package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +9 -0
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +81 -0
- package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +183 -0
- package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +155 -0
- 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/status.mdx +6 -3
- package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +12 -2
- package/npm-shrinkwrap.json +299 -272
- package/package.json +17 -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/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
|
@@ -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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.put(requestOptions)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.getGraphSiteInfo(hostName, urlChunks, isSiteUrl ? urlChunks.length - 1 : 0, siteId
|
|
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
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
currentPath.endsWith('/
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
203
|
-
|
|
174
|
+
if (!currentPath.startsWith('/')) {
|
|
175
|
+
currentPath = '/' + currentPath;
|
|
204
176
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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
|
-
|
|
214
|
-
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
-
|
|
234
|
+
throw 'Drive not found';
|
|
241
235
|
}
|
|
242
|
-
return
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
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
|
|
126
|
+
return drive;
|
|
128
127
|
});
|
|
129
128
|
}
|
|
130
129
|
getStartingFolderId(documentLibrary, folderUrl, logger) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
.all(folderIds.map((folderId) =>
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
101
|
-
return `${args.options.sharingStatus} is not a valid sharing status. Allowed values are: ${this.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
.get(requestOptions)
|
|
89
|
-
|
|
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
|
|
45
|
-
spo_1.spo
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
75
|
-
.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
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
|
}
|