@pnp/cli-microsoft365 6.4.0-beta.6b65014 → 6.4.0-beta.91f8cd3
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/README.md +12 -1
- package/dist/m365/aad/commands/user/user-get.js +3 -0
- package/dist/m365/aad/commands/user/user-set.js +3 -0
- package/dist/m365/aad/commands/user/user-signin-list.js +3 -0
- package/dist/m365/planner/commands/roster/roster-member-add.js +3 -0
- package/dist/m365/spfx/commands/spfx-doctor.js +43 -29
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-get.js +118 -0
- package/dist/m365/spo/commands.js +1 -0
- package/dist/utils/md.js +7 -0
- package/dist/utils/spo.js +14 -0
- package/docs/docs/cmd/onenote/page/page-list.md +1 -1
- package/docs/docs/cmd/outlook/mail/mail-send.md +4 -0
- package/docs/docs/cmd/outlook/message/message-get.md +143 -0
- package/docs/docs/cmd/outlook/message/message-list.md +119 -0
- package/docs/docs/cmd/outlook/message/message-move.md +4 -0
- package/docs/docs/cmd/outlook/report/report-mailactivitycounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailactivityusercounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailactivityuserdetail.md +45 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageappsusercounts.md +43 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageusercounts.md +44 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageuserdetail.md +48 -0
- package/docs/docs/cmd/outlook/report/report-mailappusageversionsusercounts.md +41 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagedetail.md +49 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagemailboxcount.md +37 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagequotastatusmailboxcounts.md +40 -0
- package/docs/docs/cmd/outlook/report/report-mailboxusagestorage.md +36 -0
- package/docs/docs/cmd/outlook/room/room-list.md +81 -0
- package/docs/docs/cmd/outlook/roomlist/roomlist-list.md +58 -0
- package/docs/docs/cmd/planner/plan/plan-add.md +3 -3
- package/docs/docs/cmd/planner/plan/plan-set.md +73 -7
- package/docs/docs/cmd/planner/roster/roster-add.md +16 -1
- package/docs/docs/cmd/planner/task/task-add.md +230 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-add.md +55 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-list.md +55 -0
- package/docs/docs/cmd/planner/task/task-checklistitem-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-get.md +131 -0
- package/docs/docs/cmd/planner/task/task-list.md +92 -0
- package/docs/docs/cmd/planner/task/task-reference-add.md +46 -0
- package/docs/docs/cmd/planner/task/task-reference-list.md +46 -0
- package/docs/docs/cmd/planner/task/task-reference-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-remove.md +4 -0
- package/docs/docs/cmd/planner/task/task-set.md +230 -0
- package/docs/docs/cmd/planner/tenant/tenant-settings-list.md +55 -0
- package/docs/docs/cmd/planner/tenant/tenant-settings-set.md +55 -0
- package/docs/docs/cmd/pp/card/card-get.md +2 -2
- package/docs/docs/cmd/pp/card/card-list.md +2 -2
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.md +7 -7
- package/docs/docs/cmd/skype/report/report-activitycounts.md +38 -0
- package/docs/docs/cmd/skype/report/report-activityusercounts.md +38 -0
- package/docs/docs/cmd/skype/report/report-activityuserdetail.md +67 -0
- package/docs/docs/cmd/spo/listitem/listitem-add.md +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-batch-add.md +1 -1
- package/docs/docs/cmd/spo/listitem/listitem-set.md +1 -1
- package/docs/docs/cmd/spo/site/site-set.md +2 -2
- package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-get.md +142 -0
- package/docs/docs/cmd/spo/term/term-list.md +1 -1
- package/docs/docs/cmd/teams/channel/channel-get.md +1 -1
- package/docs/docs/cmd/teams/message/message-get.md +39 -4
- package/docs/docs/cmd/teams/message/message-list.md +41 -6
- package/docs/docs/cmd/teams/message/message-reply-list.md +39 -4
- package/docs/docs/cmd/teams/messagingsettings/messagingsettings-list.md +20 -2
- package/docs/docs/cmd/teams/messagingsettings/messagingsettings-set.md +8 -8
- package/docs/docs/cmd/teams/report/report-deviceusagedistributionusercounts.md +12 -5
- package/docs/docs/cmd/teams/report/report-deviceusageusercounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-deviceusageuserdetail.md +14 -7
- package/docs/docs/cmd/teams/report/report-directroutingcalls.md +13 -6
- package/docs/docs/cmd/teams/report/report-pstncalls.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivitycounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivityusercounts.md +13 -6
- package/docs/docs/cmd/teams/report/report-useractivityuserdetail.md +13 -6
- package/docs/docs/cmd/teams/tab/tab-add.md +16 -0
- package/docs/docs/cmd/teams/tab/tab-get.md +17 -0
- package/docs/docs/cmd/teams/tab/tab-list.md +19 -0
- package/docs/docs/cmd/teams/team/team-add.md +77 -8
- package/docs/docs/cmd/teams/team/team-app-list.md +18 -2
- package/docs/docs/cmd/teams/team/team-archive.md +2 -2
- package/docs/docs/cmd/teams/team/team-clone.md +8 -8
- package/docs/docs/cmd/teams/team/team-get.md +34 -4
- package/docs/docs/cmd/teams/team/team-list.md +34 -3
- package/docs/docs/cmd/teams/team/team-remove.md +3 -3
- package/docs/docs/cmd/teams/team/team-set.md +8 -8
- package/docs/docs/cmd/teams/team/team-unarchive.md +3 -2
- package/docs/docs/cmd/teams/user/user-app-add.md +3 -3
- package/docs/docs/cmd/teams/user/user-app-list.md +18 -2
- package/docs/docs/cmd/teams/user/user-app-remove.md +4 -4
- package/docs/docs/cmd/teams/user/user-list.md +21 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
alt="GitHub" />
|
|
16
16
|
</a>
|
|
17
17
|
|
|
18
|
-
<a href="https://discord.
|
|
18
|
+
<a href="https://discord.gg/35HTFJ544b">
|
|
19
19
|
<img src="https://img.shields.io/badge/Discord-Join-7289da?style=flat-square"
|
|
20
20
|
alt="Discord" />
|
|
21
21
|
</a>
|
|
@@ -213,6 +213,17 @@ If you want to get involved with helping us grow the CLI, whether that is sugges
|
|
|
213
213
|
|
|
214
214
|
Checkout our [Wiki](https://github.com/pnp/cli-microsoft365/wiki) for guides on how to contribute to this project.
|
|
215
215
|
|
|
216
|
+
## Need Help?
|
|
217
|
+
|
|
218
|
+
<h4 align="center">
|
|
219
|
+
Join our community
|
|
220
|
+
</h4>
|
|
221
|
+
<p align="center">
|
|
222
|
+
<a href="https://discord.gg/35HTFJ544b">
|
|
223
|
+
<img alt="Discord" src="./docs/docs/images/discord-logo.png" width="100"/>
|
|
224
|
+
</a>
|
|
225
|
+
</p>
|
|
226
|
+
|
|
216
227
|
## Microsoft 365 Platform Community
|
|
217
228
|
|
|
218
229
|
CLI for Microsoft 365 is a [Microsoft 365 Platform Community](https://pnp.github.io) (PnP) project. Microsoft 365 Platform Community is a virtual team consisting of Microsoft employees and community members focused on helping the community make the best use of Microsoft products. CLI for Microsoft 365 is an open-source project not affiliated with Microsoft and not covered by Microsoft support. If you experience any issues using the CLI, please submit an issue in the [issues list](https://github.com/pnp/cli-microsoft365/issues).
|
|
@@ -101,6 +101,9 @@ _AadUserGetCommand_instances = new WeakSet(), _AadUserGetCommand_initTelemetry =
|
|
|
101
101
|
!validation_1.validation.isValidGuid(args.options.id)) {
|
|
102
102
|
return `${args.options.id} is not a valid GUID`;
|
|
103
103
|
}
|
|
104
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
105
|
+
return `${args.options.userName} is not a valid userName`;
|
|
106
|
+
}
|
|
104
107
|
return true;
|
|
105
108
|
}));
|
|
106
109
|
}, _AadUserGetCommand_initOptionSets = function _AadUserGetCommand_initOptionSets() {
|
|
@@ -170,6 +170,9 @@ _AadUserSetCommand_instances = new WeakSet(), _AadUserSetCommand_initTelemetry =
|
|
|
170
170
|
!validation_1.validation.isValidGuid(args.options.objectId)) {
|
|
171
171
|
return `${args.options.objectId} is not a valid GUID`;
|
|
172
172
|
}
|
|
173
|
+
if (args.options.userPrincipalName && !validation_1.validation.isValidUserPrincipalName(args.options.userPrincipalName)) {
|
|
174
|
+
return `${args.options.userPrincipalName} is not a valid userPrincipalName`;
|
|
175
|
+
}
|
|
173
176
|
if (!args.options.resetPassword && ((args.options.currentPassword && !args.options.newPassword) || (args.options.newPassword && !args.options.currentPassword))) {
|
|
174
177
|
return `Specify both currentPassword and newPassword when you want to change your password`;
|
|
175
178
|
}
|
|
@@ -90,6 +90,9 @@ _AadUserSigninListCommand_instances = new WeakSet(), _AadUserSigninListCommand_i
|
|
|
90
90
|
if (args.options.appId && args.options.appDisplayName) {
|
|
91
91
|
return 'Specify either appId or appDisplayName, but not both';
|
|
92
92
|
}
|
|
93
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
94
|
+
return `${args.options.userName} is not a valid userName`;
|
|
95
|
+
}
|
|
93
96
|
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
94
97
|
return `${args.options.userId} is not a valid GUID`;
|
|
95
98
|
}
|
|
@@ -106,6 +106,9 @@ _PlannerRosterMemberAddCommand_instances = new WeakSet(), _PlannerRosterMemberAd
|
|
|
106
106
|
if (args.options.userId && !validation_1.validation.isValidGuid(args.options.userId)) {
|
|
107
107
|
return `${args.options.userId} is not a valid GUID`;
|
|
108
108
|
}
|
|
109
|
+
if (args.options.userName && !validation_1.validation.isValidUserPrincipalName(args.options.userName)) {
|
|
110
|
+
return `${args.options.userName} is not a valid user principal name (UPN)`;
|
|
111
|
+
}
|
|
109
112
|
return true;
|
|
110
113
|
}));
|
|
111
114
|
};
|
|
@@ -18,8 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
const chalk = require("chalk");
|
|
19
19
|
const child_process = require("child_process");
|
|
20
20
|
const semver_1 = require("semver");
|
|
21
|
-
const AnonymousCommand_1 = require("../../base/AnonymousCommand");
|
|
22
21
|
const commands_1 = require("../commands");
|
|
22
|
+
const base_project_command_1 = require("./project/base-project-command");
|
|
23
23
|
/**
|
|
24
24
|
* Has the particular check passed or failed
|
|
25
25
|
*/
|
|
@@ -64,7 +64,7 @@ var SharePointVersion;
|
|
|
64
64
|
SharePointVersion[SharePointVersion["SPO"] = 4] = "SPO";
|
|
65
65
|
SharePointVersion[SharePointVersion["All"] = 7] = "All";
|
|
66
66
|
})(SharePointVersion || (SharePointVersion = {}));
|
|
67
|
-
class SpfxDoctorCommand extends
|
|
67
|
+
class SpfxDoctorCommand extends base_project_command_1.BaseProjectCommand {
|
|
68
68
|
get allowedOutputs() {
|
|
69
69
|
return ['text'];
|
|
70
70
|
}
|
|
@@ -479,6 +479,7 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
479
479
|
if (!args.options.output) {
|
|
480
480
|
args.options.output = 'text';
|
|
481
481
|
}
|
|
482
|
+
this.projectRootPath = this.getProjectRoot(process.cwd());
|
|
482
483
|
logger.log(' ');
|
|
483
484
|
logger.log('CLI for Microsoft 365 SharePoint Framework doctor');
|
|
484
485
|
logger.log('Verifying configuration of your system for working with the SharePoint Framework');
|
|
@@ -557,9 +558,11 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
557
558
|
});
|
|
558
559
|
}
|
|
559
560
|
checkSharePointFrameworkVersion(spfxVersionRequested, fixes, logger) {
|
|
560
|
-
return this
|
|
561
|
-
|
|
562
|
-
|
|
561
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
562
|
+
let spfxVersionDetected = this.getSPFxVersionFromYoRcFile(logger);
|
|
563
|
+
if (!spfxVersionDetected) {
|
|
564
|
+
spfxVersionDetected = yield this.getPackageVersion('@microsoft/generator-sharepoint', PackageSearchMode.GlobalOnly, HandlePromise.Continue, logger);
|
|
565
|
+
}
|
|
563
566
|
const versionCheck = {
|
|
564
567
|
range: spfxVersionRequested,
|
|
565
568
|
fix: `npm i -g @microsoft/generator-sharepoint@${spfxVersionRequested}`
|
|
@@ -625,39 +628,50 @@ class SpfxDoctorCommand extends AnonymousCommand_1.default {
|
|
|
625
628
|
spVersionStringToEnum(sp) {
|
|
626
629
|
return SharePointVersion[sp.toUpperCase()];
|
|
627
630
|
}
|
|
631
|
+
getSPFxVersionFromYoRcFile(logger) {
|
|
632
|
+
if (this.projectRootPath !== null) {
|
|
633
|
+
const spfxVersion = this.getProjectVersion();
|
|
634
|
+
if (spfxVersion) {
|
|
635
|
+
if (this.debug) {
|
|
636
|
+
logger.logToStderr(`SPFx version retrieved from .yo-rc.json file. Retrieved version: ${spfxVersion}`);
|
|
637
|
+
}
|
|
638
|
+
return spfxVersion;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
return undefined;
|
|
642
|
+
}
|
|
628
643
|
getSharePointFrameworkVersion(logger) {
|
|
629
|
-
return
|
|
630
|
-
|
|
631
|
-
|
|
644
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
645
|
+
let spfxVersion = this.getSPFxVersionFromYoRcFile(logger);
|
|
646
|
+
if (spfxVersion) {
|
|
647
|
+
return spfxVersion;
|
|
632
648
|
}
|
|
633
|
-
|
|
634
|
-
.getPackageVersion('@microsoft/sp-core-library', PackageSearchMode.LocalOnly, HandlePromise.Fail, logger)
|
|
635
|
-
.then((version) => {
|
|
649
|
+
try {
|
|
650
|
+
spfxVersion = yield this.getPackageVersion('@microsoft/sp-core-library', PackageSearchMode.LocalOnly, HandlePromise.Fail, logger);
|
|
636
651
|
if (this.debug) {
|
|
637
|
-
logger.logToStderr(`Found @microsoft/sp-core-library@${
|
|
652
|
+
logger.logToStderr(`Found @microsoft/sp-core-library@${spfxVersion}`);
|
|
638
653
|
}
|
|
639
|
-
return
|
|
640
|
-
}
|
|
641
|
-
|
|
654
|
+
return spfxVersion;
|
|
655
|
+
}
|
|
656
|
+
catch (_a) {
|
|
642
657
|
if (this.debug) {
|
|
643
658
|
logger.logToStderr(`@microsoft/sp-core-library not found. Search for @microsoft/generator-sharepoint local or global...`);
|
|
644
659
|
}
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
.then((version) => {
|
|
648
|
-
resolve(version);
|
|
649
|
-
})
|
|
650
|
-
.catch((error) => {
|
|
651
|
-
if (this.debug) {
|
|
652
|
-
logger.logToStderr('@microsoft/generator-sharepoint not found');
|
|
653
|
-
}
|
|
654
|
-
if (error && error.indexOf('ENOENT') > -1) {
|
|
655
|
-
reject('npm not found');
|
|
660
|
+
try {
|
|
661
|
+
return yield this.getPackageVersion('@microsoft/generator-sharepoint', PackageSearchMode.LocalAndGlobal, HandlePromise.Fail, logger);
|
|
656
662
|
}
|
|
657
|
-
|
|
658
|
-
|
|
663
|
+
catch (error) {
|
|
664
|
+
if (this.debug) {
|
|
665
|
+
logger.logToStderr('@microsoft/generator-sharepoint not found');
|
|
666
|
+
}
|
|
667
|
+
if (error && error.indexOf('ENOENT') > -1) {
|
|
668
|
+
throw 'npm not found';
|
|
669
|
+
}
|
|
670
|
+
else {
|
|
671
|
+
return '';
|
|
672
|
+
}
|
|
659
673
|
}
|
|
660
|
-
}
|
|
674
|
+
}
|
|
661
675
|
});
|
|
662
676
|
}
|
|
663
677
|
getPackageVersion(packageName, searchMode, handlePromise, logger) {
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var _SpoTenantApplicationCustomizerGetCommand_instances, _SpoTenantApplicationCustomizerGetCommand_initTelemetry, _SpoTenantApplicationCustomizerGetCommand_initOptions, _SpoTenantApplicationCustomizerGetCommand_initValidators, _SpoTenantApplicationCustomizerGetCommand_initOptionSets;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const Command_1 = require("../../../../Command");
|
|
19
|
+
const request_1 = require("../../../../request");
|
|
20
|
+
const formatting_1 = require("../../../../utils/formatting");
|
|
21
|
+
const spo_1 = require("../../../../utils/spo");
|
|
22
|
+
const urlUtil_1 = require("../../../../utils/urlUtil");
|
|
23
|
+
const validation_1 = require("../../../../utils/validation");
|
|
24
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
25
|
+
const commands_1 = require("../../commands");
|
|
26
|
+
class SpoTenantApplicationCustomizerGetCommand extends SpoCommand_1.default {
|
|
27
|
+
get name() {
|
|
28
|
+
return commands_1.default.TENANT_APPLICATIONCUSTOMIZER_GET;
|
|
29
|
+
}
|
|
30
|
+
get description() {
|
|
31
|
+
return 'Get an application customizer that is installed tenant wide';
|
|
32
|
+
}
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
_SpoTenantApplicationCustomizerGetCommand_instances.add(this);
|
|
36
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerGetCommand_instances, "m", _SpoTenantApplicationCustomizerGetCommand_initTelemetry).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerGetCommand_instances, "m", _SpoTenantApplicationCustomizerGetCommand_initOptions).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerGetCommand_instances, "m", _SpoTenantApplicationCustomizerGetCommand_initValidators).call(this);
|
|
39
|
+
__classPrivateFieldGet(this, _SpoTenantApplicationCustomizerGetCommand_instances, "m", _SpoTenantApplicationCustomizerGetCommand_initOptionSets).call(this);
|
|
40
|
+
}
|
|
41
|
+
commandAction(logger, args) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const appCatalogUrl = yield spo_1.spo.getTenantAppCatalogUrl(logger, this.debug);
|
|
44
|
+
if (!appCatalogUrl) {
|
|
45
|
+
throw new Command_1.CommandError('No app catalog URL found');
|
|
46
|
+
}
|
|
47
|
+
let filter = '';
|
|
48
|
+
if (args.options.title) {
|
|
49
|
+
filter = `Title eq '${args.options.title}'`;
|
|
50
|
+
}
|
|
51
|
+
else if (args.options.id) {
|
|
52
|
+
filter = `GUID eq '${args.options.id}'`;
|
|
53
|
+
}
|
|
54
|
+
else if (args.options.clientSideComponentId) {
|
|
55
|
+
filter = `TenantWideExtensionComponentId eq '${args.options.clientSideComponentId}'`;
|
|
56
|
+
}
|
|
57
|
+
const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(appCatalogUrl, '/lists/TenantWideExtensions');
|
|
58
|
+
const reqOptions = {
|
|
59
|
+
url: `${appCatalogUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/items?$filter=${filter}`,
|
|
60
|
+
headers: {
|
|
61
|
+
'accept': 'application/json;odata=nometadata'
|
|
62
|
+
},
|
|
63
|
+
responseType: 'json'
|
|
64
|
+
};
|
|
65
|
+
let listItemInstances;
|
|
66
|
+
try {
|
|
67
|
+
listItemInstances = yield request_1.default.get(reqOptions);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return this.handleRejectedODataJsonPromise(err);
|
|
71
|
+
}
|
|
72
|
+
if (listItemInstances) {
|
|
73
|
+
if (listItemInstances.value.length === 0) {
|
|
74
|
+
throw new Command_1.CommandError('The specified application customizer was not found');
|
|
75
|
+
}
|
|
76
|
+
if (listItemInstances.value.length > 1) {
|
|
77
|
+
throw new Command_1.CommandError(`Multiple application customizers with ${args.options.title || args.options.clientSideComponentId} were found. Please disambiguate (IDs): ${listItemInstances.value.map(item => item.GUID).join(', ')}`);
|
|
78
|
+
}
|
|
79
|
+
listItemInstances.value.forEach(v => delete v['ID']);
|
|
80
|
+
logger.log(listItemInstances.value[0]);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
throw new Command_1.CommandError('The specified application customizer was not found');
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
_SpoTenantApplicationCustomizerGetCommand_instances = new WeakSet(), _SpoTenantApplicationCustomizerGetCommand_initTelemetry = function _SpoTenantApplicationCustomizerGetCommand_initTelemetry() {
|
|
89
|
+
this.telemetry.push((args) => {
|
|
90
|
+
Object.assign(this.telemetryProperties, {
|
|
91
|
+
title: typeof args.options.title !== 'undefined',
|
|
92
|
+
id: typeof args.options.id !== 'undefined',
|
|
93
|
+
clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined'
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}, _SpoTenantApplicationCustomizerGetCommand_initOptions = function _SpoTenantApplicationCustomizerGetCommand_initOptions() {
|
|
97
|
+
this.options.unshift({
|
|
98
|
+
option: '-t, --title [title]'
|
|
99
|
+
}, {
|
|
100
|
+
option: '-i, --id [id]'
|
|
101
|
+
}, {
|
|
102
|
+
option: '-c, --clientSideComponentId [clientSideComponentId]'
|
|
103
|
+
});
|
|
104
|
+
}, _SpoTenantApplicationCustomizerGetCommand_initValidators = function _SpoTenantApplicationCustomizerGetCommand_initValidators() {
|
|
105
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
|
|
107
|
+
return `${args.options.id} is not a valid GUID`;
|
|
108
|
+
}
|
|
109
|
+
if (args.options.clientSideComponentId && !validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
|
|
110
|
+
return `${args.options.clientSideComponentId} is not a valid GUID`;
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
}));
|
|
114
|
+
}, _SpoTenantApplicationCustomizerGetCommand_initOptionSets = function _SpoTenantApplicationCustomizerGetCommand_initOptionSets() {
|
|
115
|
+
this.optionSets.push({ options: ['title', 'id', 'clientSideComponentId'] });
|
|
116
|
+
};
|
|
117
|
+
module.exports = new SpoTenantApplicationCustomizerGetCommand();
|
|
118
|
+
//# sourceMappingURL=tenant-applicationcustomizer-get.js.map
|
|
@@ -279,6 +279,7 @@ exports.default = {
|
|
|
279
279
|
TENANT_APPCATALOG_ADD: `${prefix} tenant appcatalog add`,
|
|
280
280
|
TENANT_APPCATALOGURL_GET: `${prefix} tenant appcatalogurl get`,
|
|
281
281
|
TENANT_APPLICATIONCUSTOMIZER_ADD: `${prefix} tenant applicationcustomizer add`,
|
|
282
|
+
TENANT_APPLICATIONCUSTOMIZER_GET: `${prefix} tenant applicationcustomizer get`,
|
|
282
283
|
TENANT_RECYCLEBINITEM_LIST: `${prefix} tenant recyclebinitem list`,
|
|
283
284
|
TENANT_RECYCLEBINITEM_REMOVE: `${prefix} tenant recyclebinitem remove`,
|
|
284
285
|
TENANT_RECYCLEBINITEM_RESTORE: `${prefix} tenant recyclebinitem restore`,
|
package/dist/utils/md.js
CHANGED
|
@@ -51,6 +51,12 @@ function convertContentTabs(md) {
|
|
|
51
51
|
return ` ${title}${os_1.EOL}${os_1.EOL}${content.replace(/^ /gms, '')}`;
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
function convertMdOutput(md) {
|
|
55
|
+
const regex = new RegExp('(?<=^ ```md)(.*)(?= ```)', 'gms');
|
|
56
|
+
return md.replace(regex, (match, content) => {
|
|
57
|
+
return content.replace(/^ /gms, '');
|
|
58
|
+
});
|
|
59
|
+
}
|
|
54
60
|
function convertCodeFences(md) {
|
|
55
61
|
const regex = new RegExp('^```.*?(?:\r\n|\n)(.*?)```(?:\r\n|\n)', 'gms');
|
|
56
62
|
return md.replace(regex, (match, code) => {
|
|
@@ -79,6 +85,7 @@ const convertFunctions = [
|
|
|
79
85
|
convertAdmonitions,
|
|
80
86
|
convertDd,
|
|
81
87
|
convertHyperlinks,
|
|
88
|
+
convertMdOutput,
|
|
82
89
|
convertContentTabs,
|
|
83
90
|
convertCodeFences,
|
|
84
91
|
removeInlineMarkup,
|
package/dist/utils/spo.js
CHANGED
|
@@ -536,6 +536,20 @@ exports.spo = {
|
|
|
536
536
|
const customActionOnSite = yield getById(webUrl, id, "Site");
|
|
537
537
|
return customActionOnSite;
|
|
538
538
|
});
|
|
539
|
+
},
|
|
540
|
+
getTenantAppCatalogUrl(logger, debug) {
|
|
541
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
542
|
+
const spoUrl = yield exports.spo.getSpoUrl(logger, debug);
|
|
543
|
+
const requestOptions = {
|
|
544
|
+
url: `${spoUrl}/_api/SP_TenantSettings_Current`,
|
|
545
|
+
headers: {
|
|
546
|
+
accept: 'application/json;odata=nometadata'
|
|
547
|
+
},
|
|
548
|
+
responseType: 'json'
|
|
549
|
+
};
|
|
550
|
+
const result = yield request_1.default.get(requestOptions);
|
|
551
|
+
return result.CorporateCatalogUrl;
|
|
552
|
+
});
|
|
539
553
|
}
|
|
540
554
|
};
|
|
541
555
|
//# sourceMappingURL=spo.js.map
|
|
@@ -118,7 +118,7 @@ m365 onenote page list --webUrl https://contoso.sharepoint.com/sites/testsite
|
|
|
118
118
|
=== "Markdown"
|
|
119
119
|
|
|
120
120
|
```md
|
|
121
|
-
# onenote page list --userName "
|
|
121
|
+
# onenote page list --userName "john.doe@contoso.onmicrosoft.com"
|
|
122
122
|
|
|
123
123
|
Date: 07/01/2023
|
|
124
124
|
|
|
@@ -123,3 +123,7 @@ Send an email with multiple attachments
|
|
|
123
123
|
```sh
|
|
124
124
|
m365 outlook mail send --to chris@contoso.com --subject "Monthly reports" --bodyContents "Here are the reports of this month." --attachment "C:/Reports/File1.jpg" --attachment "C:/Reports/File2.docx" --attachment "C:/Reports/File3.xlsx"
|
|
125
125
|
```
|
|
126
|
+
|
|
127
|
+
## Response
|
|
128
|
+
|
|
129
|
+
The command won't return a response on success.
|
|
@@ -46,3 +46,146 @@ Get a specific message from a specific user retrieved by user principal name usi
|
|
|
46
46
|
```sh
|
|
47
47
|
m365 outlook message get --id AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OABGAAAAAAAiQ8W967B7TKBjgx9rVEURBwAiIsqMbYjsT5e-T7KzowPTAAAAAAEMAAAiIsqMbYjsT5e-T7KzowPTAALvuv07AAA= --userPrincipalName user@tenant.com
|
|
48
48
|
```
|
|
49
|
+
|
|
50
|
+
## Response
|
|
51
|
+
|
|
52
|
+
=== "JSON"
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"id": "AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA=",
|
|
57
|
+
"createdDateTime": "2023-01-26T19:22:44Z",
|
|
58
|
+
"lastModifiedDateTime": "2023-01-26T19:22:46Z",
|
|
59
|
+
"changeKey": "CQAAABYAAAAhebtol4HnTZCmNsr9Gnh6AAPehsHb",
|
|
60
|
+
"categories": [],
|
|
61
|
+
"receivedDateTime": "2023-01-26T19:22:45Z",
|
|
62
|
+
"sentDateTime": "2023-01-26T19:22:42Z",
|
|
63
|
+
"hasAttachments": true,
|
|
64
|
+
"internetMessageId": "<HE1P190MB032953D4D9C86FCEF5FFA8C4CECF9@HE1P190MB0329.EURP190.PROD.OUTLOOK.COM>",
|
|
65
|
+
"subject": "Lorem ipsum",
|
|
66
|
+
"bodyPreview": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra.",
|
|
67
|
+
"importance": "normal",
|
|
68
|
+
"parentFolderId": "AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAuAAAAAABn1FpEFqPeR7YAnkzP_VgXAQAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAA=",
|
|
69
|
+
"conversationId": "AAQkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAQAJfvGq77YHxJvRN73_QiuVw=",
|
|
70
|
+
"conversationIndex": "AQHZMbuNl+8arvtgfEm9E3vf5CK5XA==",
|
|
71
|
+
"isDeliveryReceiptRequested": false,
|
|
72
|
+
"isReadReceiptRequested": false,
|
|
73
|
+
"isRead": false,
|
|
74
|
+
"isDraft": false,
|
|
75
|
+
"webLink": "https://outlook.office365.com/owa/?ItemID=AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP%2BVgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
|
|
76
|
+
"inferenceClassification": "focused",
|
|
77
|
+
"body": {
|
|
78
|
+
"contentType": "html",
|
|
79
|
+
"content": "<html><head>\r\\\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style type=\"text/css\" style=\"display:none\">\r\\\n<!--\r\\\np\r\\\n\t{margin-top:0;\r\\\n\tmargin-bottom:0}\r\\\n-->\r\\\n</style></head><body dir=\"ltr\"><div class=\"elementToProof ContentPasted0\" style=\"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0); background-color:rgb(255,255,255)\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra. Suspendisse cursus turpis vel urna volutpat congue. Etiam auctor nec nulla sed suscipit. Vestibulum rhoncus quis mi ac faucibus. Curabitur eget eleifend felis. Vestibulum ut dolor non elit molestie ornare. <br></div></body></html>"
|
|
80
|
+
},
|
|
81
|
+
"sender": {
|
|
82
|
+
"emailAddress": {
|
|
83
|
+
"name": "John Doe",
|
|
84
|
+
"address": "john.doe@contoso.com"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"from": {
|
|
88
|
+
"emailAddress": {
|
|
89
|
+
"name": "John Doe",
|
|
90
|
+
"address": "john.doe@contoso.com"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"toRecipients": [
|
|
94
|
+
{
|
|
95
|
+
"emailAddress": {
|
|
96
|
+
"name": "Megan Bowen",
|
|
97
|
+
"address": "megan.bowen@contoso.com"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"ccRecipients": [],
|
|
102
|
+
"bccRecipients": [],
|
|
103
|
+
"replyTo": [],
|
|
104
|
+
"flag": {
|
|
105
|
+
"flagStatus": "notFlagged"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
=== "Text"
|
|
111
|
+
|
|
112
|
+
```txt
|
|
113
|
+
bccRecipients : []
|
|
114
|
+
body : {"contentType":"html","content":"<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style type=\"text/css\" style=\"display:none\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style></head><body dir=\"ltr\"><div class=\"elementToProof ContentPasted0\" style=\"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0); background-color:rgb(255,255,255)\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra. Suspendisse cursus turpis vel urna volutpat congue. Etiam auctor nec nulla sed suscipit. Vestibulum rhoncus quis mi ac faucibus. Curabitur eget eleifend felis. Vestibulum ut dolor non elit molestie ornare. <br></div></body></html>"}
|
|
115
|
+
bodyPreview : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra.
|
|
116
|
+
categories : []
|
|
117
|
+
ccRecipients : []
|
|
118
|
+
changeKey : CQAAABYAAAAhebtol4HnTZCmNsr9Gnh6AAPehsHb
|
|
119
|
+
conversationId : AAQkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAQAJfvGq77YHxJvRN73_QiuVw=
|
|
120
|
+
conversationIndex : AQHZMbuNl+8arvtgfEm9E3vf5CK5XA==
|
|
121
|
+
createdDateTime : 2023-01-26T19:22:44Z
|
|
122
|
+
flag : {"flagStatus":"notFlagged"}
|
|
123
|
+
from : {"emailAddress":{"name":"John Doe","address":"john.doe@contoso.com"}}
|
|
124
|
+
hasAttachments : true
|
|
125
|
+
id : AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA=
|
|
126
|
+
importance : normal
|
|
127
|
+
inferenceClassification : focused
|
|
128
|
+
internetMessageId : <HE1P190MB032953D4D9C86FCEF5FFA8C4CECF9@HE1P190MB0329.EURP190.PROD.OUTLOOK.COM>
|
|
129
|
+
isDeliveryReceiptRequested: false
|
|
130
|
+
isDraft : false
|
|
131
|
+
isRead : false
|
|
132
|
+
isReadReceiptRequested : false
|
|
133
|
+
lastModifiedDateTime : 2023-01-26T19:22:46Z
|
|
134
|
+
parentFolderId : AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAuAAAAAABn1FpEFqPeR7YAnkzP_VgXAQAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAA=
|
|
135
|
+
receivedDateTime : 2023-01-26T19:22:45Z
|
|
136
|
+
replyTo : []
|
|
137
|
+
sender : {"emailAddress":{"name":"John Doe","address":"john.doe@contoso.com"}}
|
|
138
|
+
sentDateTime : 2023-01-26T19:22:42Z
|
|
139
|
+
subject : Lorem ipsum
|
|
140
|
+
toRecipients : [{"emailAddress":{"name":"Megan Bowen","address":"megan.bowen@contoso.com"}}]
|
|
141
|
+
webLink : https://outlook.office365.com/owa/?ItemID=AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP%2BVgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA%3D&exvsurl=1&viewmodel=ReadMessageItem
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
=== "CSV"
|
|
145
|
+
|
|
146
|
+
```csv
|
|
147
|
+
id,createdDateTime,lastModifiedDateTime,changeKey,categories,receivedDateTime,sentDateTime,hasAttachments,internetMessageId,subject,bodyPreview,importance,parentFolderId,conversationId,conversationIndex,isDeliveryReceiptRequested,isReadReceiptRequested,isRead,isDraft,webLink,inferenceClassification,body,sender,from,toRecipients,ccRecipients,bccRecipients,replyTo,flag
|
|
148
|
+
AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA=,2023-01-26T19:22:44Z,2023-01-26T19:22:46Z,CQAAABYAAAAhebtol4HnTZCmNsr9Gnh6AAPehsHb,[],2023-01-26T19:22:45Z,2023-01-26T19:22:42Z,1,<HE1P190MB032953D4D9C86FCEF5FFA8C4CECF9@HE1P190MB0329.EURP190.PROD.OUTLOOK.COM>,Lorem ipsum,"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra.",normal,AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAuAAAAAABn1FpEFqPeR7YAnkzP_VgXAQAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAA=,AAQkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAQAJfvGq77YHxJvRN73_QiuVw=,AQHZMbuNl+8arvtgfEm9E3vf5CK5XA==,,,,,https://outlook.office365.com/owa/?ItemID=AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP%2BVgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA%3D&exvsurl=1&viewmodel=ReadMessageItem,focused,"{""contentType"":""html"",""content"":""<html><head>\r\n<meta http-equiv=\""Content-Type\"" content=\""text/html; charset=utf-8\""><style type=\""text/css\"" style=\""display:none\"">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style></head><body dir=\""ltr\""><div class=\""elementToProof ContentPasted0\"" style=\""font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0); background-color:rgb(255,255,255)\"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra. Suspendisse cursus turpis vel urna volutpat congue. Etiam auctor nec nulla sed suscipit. Vestibulum rhoncus quis mi ac faucibus. Curabitur eget eleifend felis. Vestibulum ut dolor non elit molestie ornare. <br></div></body></html>""}","{""emailAddress"":{""name"":""John Doe"",""address"":""john.doe@contoso.com""}}","{""emailAddress"":{""name"":""John Doe"",""address"":""john.doe@contoso.com""}}","[{""emailAddress"":{""name"":""Megan Bowen"",""address"":""megan.bowen@contoso.com""}}]",[],[],[],"{""flagStatus"":""notFlagged""}"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
=== "Markdown"
|
|
152
|
+
|
|
153
|
+
```md
|
|
154
|
+
# outlook message get --id "AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA="
|
|
155
|
+
|
|
156
|
+
Date: 4/2/2023
|
|
157
|
+
|
|
158
|
+
## AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA=
|
|
159
|
+
|
|
160
|
+
Property | Value
|
|
161
|
+
---------|-------
|
|
162
|
+
id | AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP_VgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA=
|
|
163
|
+
createdDateTime | 2023-01-26T19:22:44Z
|
|
164
|
+
lastModifiedDateTime | 2023-01-26T19:22:46Z
|
|
165
|
+
changeKey | CQAAABYAAAAhebtol4HnTZCmNsr9Gnh6AAPk7Plc
|
|
166
|
+
categories | []
|
|
167
|
+
receivedDateTime | 2023-01-26T19:22:45Z
|
|
168
|
+
sentDateTime | 2023-01-26T19:22:42Z
|
|
169
|
+
hasAttachments | true
|
|
170
|
+
internetMessageId | <HE1P190MB032953D4D9C86FCEF5FFA8C4CECF9@HE1P190MB0329.EURP190.PROD.OUTLOOK.COM>
|
|
171
|
+
subject | Lorem ipsum
|
|
172
|
+
bodyPreview | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra.
|
|
173
|
+
importance | normal
|
|
174
|
+
parentFolderId | AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAuAAAAAABn1FpEFqPeR7YAnkzP\_VgXAQAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAA=
|
|
175
|
+
conversationId | AAQkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQAQAJfvGq77YHxJvRN73\_QiuVw=
|
|
176
|
+
conversationIndex | AQHZMbuNl+8arvtgfEm9E3vf5CK5XA==
|
|
177
|
+
isDeliveryReceiptRequested | false
|
|
178
|
+
isReadReceiptRequested | false
|
|
179
|
+
isRead | true
|
|
180
|
+
isDraft | false
|
|
181
|
+
webLink | https://outlook.office365.com/owa/?ItemID=AAMkAGUzZWVmZWU4LTM5ZmItNDA4My04OTIzLWY1MGUxNzdiYTQ0MQBGAAAAAABn1FpEFqPeR7YAnkzP%2BVgXBwAhebtol4HnTZCmNsr9Gnh6AAAAAAEMAAAhebtol4HnTZCmNsr9Gnh6AAPfHbtVAAA%3D&exvsurl=1&viewmodel=ReadMessageItem
|
|
182
|
+
inferenceClassification | focused
|
|
183
|
+
body | {"contentType":"html","content":"<html><head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><style type=\"text/css\" style=\"display:none\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style></head><body dir=\"ltr\"><div class=\"elementToProof ContentPasted0\" style=\"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0); background-color:rgb(255,255,255)\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel diam gravida, auctor mauris nec, posuere tellus. Vivamus placerat, nunc ac cursus feugiat, arcu tellus mattis nisl, id cursus nisl lectus eu lacus. Praesent malesuada ut orci vitae viverra. Suspendisse cursus turpis vel urna volutpat congue. Etiam auctor nec nulla sed suscipit. Vestibulum rhoncus quis mi ac faucibus. Curabitur eget eleifend felis. Vestibulum ut dolor non elit molestie ornare. <br></div></body></html>"}
|
|
184
|
+
sender | {"emailAddress":{"name":"John Doe","address":"john.doe@contoso.com"}}
|
|
185
|
+
from | {"emailAddress":{"name":"John Doe","address":"john.doe@contoso.com"}}
|
|
186
|
+
toRecipients | [{"emailAddress":{"name":"Megan Bowen","address":"megan.bowen@contoso.com"}}]
|
|
187
|
+
ccRecipients | []
|
|
188
|
+
bccRecipients | []
|
|
189
|
+
replyTo | []
|
|
190
|
+
flag | {"flagStatus":"notFlagged"}
|
|
191
|
+
```
|