@pnp/cli-microsoft365 6.3.0-beta.655c566 → 6.3.0-beta.80fcd21
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/dist/appInsights.js +2 -1
- package/dist/cli/Cli.js +58 -1
- package/dist/m365/aad/commands/license/license-list.js +41 -0
- package/dist/m365/aad/commands/user/user-add.js +223 -0
- package/dist/m365/aad/commands/user/user-license-add.js +88 -0
- package/dist/m365/aad/commands/user/user-license-list.js +99 -0
- package/dist/m365/aad/commands/user/user-license-remove.js +114 -0
- package/dist/m365/aad/commands/user/user-recyclebinitem-clear.js +103 -0
- package/dist/m365/aad/commands/user/user-recyclebinitem-list.js +41 -0
- package/dist/m365/aad/commands/user/user-recyclebinitem-remove.js +92 -0
- package/dist/m365/aad/commands/user/user-recyclebinitem-restore.js +77 -0
- package/dist/m365/aad/commands/user/user-remove.js +107 -0
- package/dist/m365/aad/commands.js +10 -0
- package/dist/m365/flow/commands/environment/FlowEnvironmentDetails.js +3 -0
- package/dist/m365/flow/commands/environment/environment-get.js +26 -11
- package/dist/m365/pa/commands/environment/environment-get.js +13 -5
- package/dist/m365/planner/commands/plan/plan-get.js +17 -10
- package/dist/m365/planner/commands/plan/plan-remove.js +1 -1
- package/dist/m365/planner/commands/roster/roster-member-remove.js +140 -0
- package/dist/m365/planner/commands.js +1 -0
- package/dist/m365/pp/commands/environment/environment-get.js +18 -9
- package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +3 -4
- package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +3 -4
- package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +97 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +5 -0
- package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +3 -4
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +5 -0
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +5 -0
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +5 -0
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +5 -0
- package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +11 -1
- package/dist/m365/purview/commands.js +1 -0
- package/dist/m365/spo/commands/customaction/customaction-get.js +17 -66
- package/dist/m365/spo/commands/customaction/customaction-list.js +2 -36
- package/dist/m365/spo/commands/customaction/customaction-remove.js +11 -18
- package/dist/m365/spo/commands/file/file-move.js +0 -2
- package/dist/m365/spo/commands/folder/folder-copy.js +0 -2
- package/dist/m365/spo/commands/folder/folder-move.js +0 -2
- package/dist/m365/spo/commands/site/site-add.js +0 -3
- package/dist/m365/spo/commands/site/site-remove.js +0 -3
- package/dist/m365/spo/commands/site/site-set.js +0 -2
- package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +0 -1
- package/dist/m365/teams/commands/team/team-add.js +3 -8
- package/dist/utils/aadUser.js +38 -0
- package/dist/utils/planner.js +1 -4
- package/dist/utils/session.js +18 -0
- package/dist/utils/spo.js +64 -12
- package/docs/docs/cmd/aad/license/license-list.md +87 -0
- package/docs/docs/cmd/aad/user/user-add.md +168 -0
- package/docs/docs/cmd/aad/user/user-license-add.md +108 -0
- package/docs/docs/cmd/aad/user/user-license-list.md +98 -0
- package/docs/docs/cmd/aad/user/user-license-remove.md +43 -0
- package/docs/docs/cmd/aad/user/user-recyclebinitem-clear.md +42 -0
- package/docs/docs/cmd/aad/user/user-recyclebinitem-list.md +82 -0
- package/docs/docs/cmd/aad/user/user-recyclebinitem-remove.md +45 -0
- package/docs/docs/cmd/aad/user/user-recyclebinitem-restore.md +99 -0
- package/docs/docs/cmd/aad/user/user-remove.md +51 -0
- package/docs/docs/cmd/aad/user/user-set.md +1 -1
- package/docs/docs/cmd/flow/environment/environment-get.md +31 -3
- package/docs/docs/cmd/login.md +26 -0
- package/docs/docs/cmd/logout.md +4 -0
- package/docs/docs/cmd/pa/environment/environment-get.md +8 -2
- package/docs/docs/cmd/planner/plan/plan-get.md +12 -12
- package/docs/docs/cmd/planner/roster/roster-member-remove.md +51 -0
- package/docs/docs/cmd/purview/retentionevent/retentionevent-list.md +1 -1
- package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.md +45 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.md +3 -0
- package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.md +1 -1
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.md +3 -0
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.md +3 -0
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.md +3 -0
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.md +3 -0
- package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.md +3 -0
- package/docs/docs/cmd/request.md +74 -0
- package/docs/docs/cmd/spo/homesite/homesite-get.md +20 -1
- package/docs/docs/cmd/spo/homesite/homesite-remove.md +8 -2
- package/docs/docs/cmd/spo/homesite/homesite-set.md +8 -2
- package/docs/docs/cmd/spo/hubsite/hubsite-connect.md +9 -9
- package/docs/docs/cmd/spo/hubsite/hubsite-data-get.md +34 -5
- package/docs/docs/cmd/spo/hubsite/hubsite-disconnect.md +6 -6
- package/docs/docs/cmd/spo/hubsite/hubsite-get.md +36 -19
- package/docs/docs/cmd/spo/hubsite/hubsite-list.md +59 -1
- package/docs/docs/cmd/spo/hubsite/hubsite-register.md +30 -1
- package/docs/docs/cmd/spo/hubsite/hubsite-rights-grant.md +6 -6
- package/docs/docs/cmd/spo/hubsite/hubsite-rights-revoke.md +4 -4
- package/docs/docs/cmd/spo/hubsite/hubsite-set.md +40 -15
- package/docs/docs/cmd/spo/hubsite/hubsite-unregister.md +4 -4
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-get.md +7 -1
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-remove.md +9 -3
- package/docs/docs/cmd/spo/knowledgehub/knowledgehub-set.md +8 -2
- package/docs/docs/cmd/spo/list/list-add.md +123 -57
- package/docs/docs/cmd/spo/list/list-contenttype-add.md +50 -5
- package/docs/docs/cmd/spo/list/list-contenttype-default-set.md +4 -4
- package/docs/docs/cmd/spo/list/list-contenttype-list.md +49 -4
- package/docs/docs/cmd/spo/list/list-contenttype-remove.md +6 -6
- package/docs/docs/cmd/spo/list/list-get.md +70 -4
- package/docs/docs/cmd/spo/list/list-list.md +70 -2
- package/docs/docs/cmd/spo/list/list-remove.md +6 -6
- package/docs/docs/cmd/spo/list/list-retentionlabel-ensure.md +2 -2
- package/docs/docs/cmd/spo/list/list-retentionlabel-get.md +36 -3
- package/docs/docs/cmd/spo/list/list-retentionlabel-remove.md +3 -3
- package/docs/docs/cmd/spo/list/list-roleassignment-add.md +6 -6
- package/docs/docs/cmd/spo/list/list-roleassignment-remove.md +3 -3
- package/docs/docs/cmd/spo/list/list-roleinheritance-break.md +9 -9
- package/docs/docs/cmd/spo/list/list-roleinheritance-reset.md +7 -7
- package/docs/docs/cmd/spo/list/list-set.md +61 -61
- package/docs/docs/cmd/spo/list/list-sitescript-get.md +35 -3
- package/docs/docs/cmd/spo/list/list-view-add.md +66 -5
- package/docs/docs/cmd/spo/list/list-view-field-add.md +10 -10
- package/docs/docs/cmd/spo/list/list-view-get.md +61 -0
- package/docs/docs/cmd/spo/list/list-view-list.md +61 -0
- package/docs/docs/cmd/spo/list/list-view-set.md +1 -1
- package/docs/docs/cmd/spo/list/list-webhook-add.md +19 -0
- package/docs/docs/cmd/spo/list/list-webhook-get.md +19 -0
- package/docs/docs/cmd/spo/list/list-webhook-list.md +19 -0
- package/docs/docs/cmd/spo/listitem/listitem-add.md +29 -0
- package/docs/docs/cmd/spo/listitem/listitem-attachment-list.md +17 -2
- package/docs/docs/cmd/spo/listitem/listitem-get.md +57 -0
- package/docs/docs/cmd/spo/listitem/listitem-isrecord.md +6 -0
- package/docs/docs/cmd/spo/listitem/listitem-list.md +28 -0
- package/docs/docs/cmd/spo/listitem/listitem-record-declare.md +15 -0
- package/docs/docs/cmd/spo/listitem/listitem-set.md +30 -0
- package/docs/docs/cmd/spo/navigation/navigation-node-add.md +22 -0
- package/docs/docs/cmd/status.md +46 -0
- package/docs/docs/cmd/version.md +26 -0
- package/npm-shrinkwrap.json +912 -876
- package/package.json +13 -12
|
@@ -15,8 +15,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
15
15
|
};
|
|
16
16
|
var _SpoCustomActionGetCommand_instances, _SpoCustomActionGetCommand_initTelemetry, _SpoCustomActionGetCommand_initOptions, _SpoCustomActionGetCommand_initValidators, _SpoCustomActionGetCommand_initOptionSets;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const request_1 = require("../../../../request");
|
|
19
18
|
const formatting_1 = require("../../../../utils/formatting");
|
|
19
|
+
const spo_1 = require("../../../../utils/spo");
|
|
20
20
|
const validation_1 = require("../../../../utils/validation");
|
|
21
21
|
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
22
22
|
const commands_1 = require("../../commands");
|
|
@@ -38,19 +38,8 @@ class SpoCustomActionGetCommand extends SpoCommand_1.default {
|
|
|
38
38
|
commandAction(logger, args) {
|
|
39
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
40
|
try {
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
customAction = yield this.getCustomAction(args.options);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
customAction = yield this.searchAllScopes(args.options);
|
|
47
|
-
}
|
|
48
|
-
if (customAction["odata.null"] === true) {
|
|
49
|
-
if (this.verbose) {
|
|
50
|
-
logger.logToStderr(`Custom action with id ${args.options.id} not found`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
41
|
+
const customAction = yield this.getCustomAction(args.options);
|
|
42
|
+
if (customAction) {
|
|
54
43
|
logger.log({
|
|
55
44
|
ClientSideComponentId: customAction.ClientSideComponentId,
|
|
56
45
|
ClientSideComponentProperties: customAction.ClientSideComponentProperties,
|
|
@@ -80,60 +69,22 @@ class SpoCustomActionGetCommand extends SpoCommand_1.default {
|
|
|
80
69
|
});
|
|
81
70
|
}
|
|
82
71
|
getCustomAction(options) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
responseType: 'json'
|
|
92
|
-
};
|
|
93
|
-
if (options.id) {
|
|
94
|
-
return request_1.default
|
|
95
|
-
.get(requestOptions)
|
|
96
|
-
.then((res) => {
|
|
97
|
-
return Promise.resolve(res);
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return request_1.default
|
|
101
|
-
.get(requestOptions)
|
|
102
|
-
.then((res) => {
|
|
103
|
-
if (res.value.length === 1) {
|
|
104
|
-
return Promise.resolve(res.value[0]);
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
if (options.id) {
|
|
74
|
+
const customAction = yield spo_1.spo.getCustomActionById(options.webUrl, options.id, options.scope);
|
|
75
|
+
if (!customAction) {
|
|
76
|
+
throw `No user custom action with id '${options.id}' found`;
|
|
77
|
+
}
|
|
78
|
+
return customAction;
|
|
105
79
|
}
|
|
106
|
-
|
|
107
|
-
|
|
80
|
+
const customActions = yield spo_1.spo.getCustomActions(options.webUrl, options.scope, `Title eq '${formatting_1.formatting.encodeQueryParameter(options.title)}'`);
|
|
81
|
+
if (customActions.length === 1) {
|
|
82
|
+
return customActions[0];
|
|
108
83
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
* Get request with `web` scope is send first.
|
|
114
|
-
* If custom action not found then
|
|
115
|
-
* another get request is send with `site` scope.
|
|
116
|
-
*/
|
|
117
|
-
searchAllScopes(options) {
|
|
118
|
-
return new Promise((resolve, reject) => {
|
|
119
|
-
options.scope = "Web";
|
|
120
|
-
this
|
|
121
|
-
.getCustomAction(options)
|
|
122
|
-
.then((webResult) => {
|
|
123
|
-
if (webResult["odata.null"] !== true) {
|
|
124
|
-
return resolve(webResult);
|
|
125
|
-
}
|
|
126
|
-
options.scope = "Site";
|
|
127
|
-
this
|
|
128
|
-
.getCustomAction(options)
|
|
129
|
-
.then((siteResult) => {
|
|
130
|
-
return resolve(siteResult);
|
|
131
|
-
}, (err) => {
|
|
132
|
-
reject(err);
|
|
133
|
-
});
|
|
134
|
-
}, (err) => {
|
|
135
|
-
reject(err);
|
|
136
|
-
});
|
|
84
|
+
if (customActions.length === 0) {
|
|
85
|
+
throw `No user custom action with title '${options.title}' found`;
|
|
86
|
+
}
|
|
87
|
+
throw `Multiple user custom actions with title '${options.title}' found. Please disambiguate using IDs: ${customActions.map(a => a.Id).join(', ')}`;
|
|
137
88
|
});
|
|
138
89
|
}
|
|
139
90
|
humanizeScope(scope) {
|
|
@@ -15,7 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
15
15
|
};
|
|
16
16
|
var _SpoCustomActionListCommand_instances, _SpoCustomActionListCommand_initTelemetry, _SpoCustomActionListCommand_initOptions, _SpoCustomActionListCommand_initValidators;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const
|
|
18
|
+
const spo_1 = require("../../../../utils/spo");
|
|
19
19
|
const validation_1 = require("../../../../utils/validation");
|
|
20
20
|
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
21
21
|
const commands_1 = require("../../commands");
|
|
@@ -44,13 +44,7 @@ class SpoCustomActionListCommand extends SpoCommand_1.default {
|
|
|
44
44
|
logger.logToStderr(`Attempt to get custom actions list with scope: ${scope}`);
|
|
45
45
|
logger.logToStderr('');
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
if (scope && scope.toLowerCase() !== "all") {
|
|
49
|
-
customActions = yield this.getCustomActions(args.options);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
customActions = yield this.searchAllScopes(args.options);
|
|
53
|
-
}
|
|
47
|
+
const customActions = yield spo_1.spo.getCustomActions(args.options.webUrl, args.options.scope);
|
|
54
48
|
if (customActions.length === 0) {
|
|
55
49
|
if (this.verbose) {
|
|
56
50
|
logger.logToStderr(`Custom actions not found`);
|
|
@@ -68,34 +62,6 @@ class SpoCustomActionListCommand extends SpoCommand_1.default {
|
|
|
68
62
|
}
|
|
69
63
|
});
|
|
70
64
|
}
|
|
71
|
-
getCustomActions(options) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
const response = yield odata_1.odata.getAllItems(`${options.webUrl}/_api/${options.scope}/UserCustomActions`);
|
|
74
|
-
return response;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Two REST GET requests with `web` and `site` scope are sent.
|
|
79
|
-
* The results are combined in one array.
|
|
80
|
-
*/
|
|
81
|
-
searchAllScopes(options) {
|
|
82
|
-
return new Promise((resolve, reject) => {
|
|
83
|
-
options.scope = "Web";
|
|
84
|
-
let webCustomActions = [];
|
|
85
|
-
this
|
|
86
|
-
.getCustomActions(options)
|
|
87
|
-
.then((customActions) => {
|
|
88
|
-
webCustomActions = customActions;
|
|
89
|
-
options.scope = "Site";
|
|
90
|
-
return this.getCustomActions(options);
|
|
91
|
-
})
|
|
92
|
-
.then((siteCustomActions) => {
|
|
93
|
-
resolve(siteCustomActions.concat(webCustomActions));
|
|
94
|
-
}, (err) => {
|
|
95
|
-
reject(err);
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
65
|
humanizeScope(scope) {
|
|
100
66
|
switch (scope) {
|
|
101
67
|
case 2:
|
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
const Cli_1 = require("../../../../cli/Cli");
|
|
19
19
|
const request_1 = require("../../../../request");
|
|
20
20
|
const formatting_1 = require("../../../../utils/formatting");
|
|
21
|
+
const spo_1 = require("../../../../utils/spo");
|
|
21
22
|
const validation_1 = require("../../../../utils/validation");
|
|
22
23
|
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
23
24
|
const commands_1 = require("../../commands");
|
|
@@ -74,26 +75,18 @@ class SpoCustomActionRemoveCommand extends SpoCommand_1.default {
|
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
77
|
getCustomActionId(options) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
responseType: 'json'
|
|
86
|
-
};
|
|
87
|
-
return request_1.default
|
|
88
|
-
.get(customActionRequestOptions)
|
|
89
|
-
.then((res) => {
|
|
90
|
-
if (res.value.length === 1) {
|
|
91
|
-
return Promise.resolve(res.value[0].Id);
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
if (options.id) {
|
|
80
|
+
return Promise.resolve(options.id);
|
|
81
|
+
}
|
|
82
|
+
const customActions = yield spo_1.spo.getCustomActions(options.webUrl, options.scope, `Title eq '${formatting_1.formatting.encodeQueryParameter(options.title)}'`);
|
|
83
|
+
if (customActions.length === 1) {
|
|
84
|
+
return customActions[0].Id;
|
|
92
85
|
}
|
|
93
|
-
if (
|
|
94
|
-
|
|
86
|
+
if (customActions.length === 0) {
|
|
87
|
+
throw `No user custom action with title '${options.title}' found`;
|
|
95
88
|
}
|
|
96
|
-
|
|
89
|
+
throw `Multiple user custom actions with title '${options.title}' found. Please disambiguate using IDs: ${customActions.map(a => a.Id).join(', ')}`;
|
|
97
90
|
});
|
|
98
91
|
}
|
|
99
92
|
removeScopedCustomAction(options) {
|
|
@@ -82,7 +82,6 @@ class SpoFileMoveCommand extends SpoCommand_1.default {
|
|
|
82
82
|
responseType: 'json'
|
|
83
83
|
};
|
|
84
84
|
const jobInfo = yield request_1.default.post(requestOptions);
|
|
85
|
-
this.dots = '';
|
|
86
85
|
const copyJobInfo = jobInfo.value[0];
|
|
87
86
|
const progressPollInterval = 1800; // 30 * 60; //used previously implemented interval. The API does not provide guidance on what value should be used.
|
|
88
87
|
yield new Promise((resolve, reject) => {
|
|
@@ -94,7 +93,6 @@ class SpoFileMoveCommand extends SpoCommand_1.default {
|
|
|
94
93
|
resolve,
|
|
95
94
|
reject,
|
|
96
95
|
logger,
|
|
97
|
-
dots: this.dots,
|
|
98
96
|
debug: this.debug,
|
|
99
97
|
verbose: this.verbose
|
|
100
98
|
});
|
|
@@ -64,7 +64,6 @@ class SpoFolderCopyCommand extends SpoCommand_1.default {
|
|
|
64
64
|
};
|
|
65
65
|
try {
|
|
66
66
|
const jobInfo = yield request_1.default.post(requestOptions);
|
|
67
|
-
this.dots = '';
|
|
68
67
|
const copyJobInfo = jobInfo.value[0];
|
|
69
68
|
const progressPollInterval = 30 * 60; //used previously implemented interval. The API does not provide guidance on what value should be used.
|
|
70
69
|
yield new Promise((resolve, reject) => {
|
|
@@ -76,7 +75,6 @@ class SpoFolderCopyCommand extends SpoCommand_1.default {
|
|
|
76
75
|
resolve,
|
|
77
76
|
reject,
|
|
78
77
|
logger,
|
|
79
|
-
dots: this.dots,
|
|
80
78
|
debug: this.debug,
|
|
81
79
|
verbose: this.verbose
|
|
82
80
|
});
|
|
@@ -65,7 +65,6 @@ class SpoFolderMoveCommand extends SpoCommand_1.default {
|
|
|
65
65
|
};
|
|
66
66
|
try {
|
|
67
67
|
const jobInfo = yield request_1.default.post(requestOptions);
|
|
68
|
-
this.dots = '';
|
|
69
68
|
const copyJobInfo = jobInfo.value[0];
|
|
70
69
|
const progressPollInterval = 30 * 60; //used previously implemented interval. The API does not provide guidance on what value should be used.
|
|
71
70
|
yield new Promise((resolve, reject) => {
|
|
@@ -77,7 +76,6 @@ class SpoFolderMoveCommand extends SpoCommand_1.default {
|
|
|
77
76
|
resolve,
|
|
78
77
|
reject,
|
|
79
78
|
logger,
|
|
80
|
-
dots: this.dots,
|
|
81
79
|
debug: this.debug,
|
|
82
80
|
verbose: this.verbose
|
|
83
81
|
});
|
|
@@ -166,7 +166,6 @@ class SpoSiteAddCommand extends SpoCommand_1.default {
|
|
|
166
166
|
}
|
|
167
167
|
createClassicSite(logger, args) {
|
|
168
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
-
this.dots = '';
|
|
170
169
|
try {
|
|
171
170
|
this.spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
|
|
172
171
|
this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
|
|
@@ -228,7 +227,6 @@ class SpoSiteAddCommand extends SpoCommand_1.default {
|
|
|
228
227
|
reject,
|
|
229
228
|
logger,
|
|
230
229
|
currentContext: this.context,
|
|
231
|
-
dots: this.dots,
|
|
232
230
|
verbose: this.verbose,
|
|
233
231
|
debug: this.debug
|
|
234
232
|
});
|
|
@@ -362,7 +360,6 @@ class SpoSiteAddCommand extends SpoCommand_1.default {
|
|
|
362
360
|
reject,
|
|
363
361
|
logger,
|
|
364
362
|
currentContext: this.context,
|
|
365
|
-
dots: this.dots,
|
|
366
363
|
verbose: this.verbose,
|
|
367
364
|
debug: this.debug
|
|
368
365
|
});
|
|
@@ -43,7 +43,6 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
|
|
|
43
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
44
|
const removeSite = () => __awaiter(this, void 0, void 0, function* () {
|
|
45
45
|
try {
|
|
46
|
-
this.dots = '';
|
|
47
46
|
if (args.options.fromRecycleBin) {
|
|
48
47
|
yield this.deleteSiteWithoutGroup(logger, args);
|
|
49
48
|
}
|
|
@@ -203,7 +202,6 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
|
|
|
203
202
|
reject,
|
|
204
203
|
logger,
|
|
205
204
|
currentContext: this.context,
|
|
206
|
-
dots: this.dots,
|
|
207
205
|
debug: this.debug,
|
|
208
206
|
verbose: this.verbose
|
|
209
207
|
});
|
|
@@ -248,7 +246,6 @@ class SpoSiteRemoveCommand extends SpoCommand_1.default {
|
|
|
248
246
|
reject,
|
|
249
247
|
logger,
|
|
250
248
|
currentContext: this.context,
|
|
251
|
-
dots: this.dots,
|
|
252
249
|
debug: this.debug,
|
|
253
250
|
verbose: this.verbose
|
|
254
251
|
});
|
|
@@ -46,7 +46,6 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
|
|
|
46
46
|
commandAction(logger, args) {
|
|
47
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
48
|
try {
|
|
49
|
-
this.dots = '';
|
|
50
49
|
this.tenantId = yield spo_1.spo.getTenantId(logger, this.debug);
|
|
51
50
|
this.spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
|
|
52
51
|
this.context = yield spo_1.spo.ensureFormDigest(this.spoAdminUrl, logger, this.context, this.debug);
|
|
@@ -128,7 +127,6 @@ class SpoSiteSetCommand extends SpoCommand_1.default {
|
|
|
128
127
|
reject,
|
|
129
128
|
logger,
|
|
130
129
|
currentContext: this.context,
|
|
131
|
-
dots: this.dots,
|
|
132
130
|
debug: this.debug,
|
|
133
131
|
verbose: this.verbose
|
|
134
132
|
});
|
|
@@ -44,7 +44,6 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
44
44
|
}
|
|
45
45
|
commandAction(logger, args) {
|
|
46
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
this.dots = '';
|
|
48
47
|
let requestBody;
|
|
49
48
|
if (args.options.template) {
|
|
50
49
|
if (this.verbose) {
|
|
@@ -95,7 +94,7 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
95
94
|
}
|
|
96
95
|
else {
|
|
97
96
|
setTimeout(() => {
|
|
98
|
-
this.waitUntilFinished(requestOptions, resolve, reject, logger
|
|
97
|
+
this.waitUntilFinished(requestOptions, resolve, reject, logger);
|
|
99
98
|
}, this.pollingInterval);
|
|
100
99
|
}
|
|
101
100
|
}));
|
|
@@ -113,11 +112,7 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
113
112
|
}
|
|
114
113
|
});
|
|
115
114
|
}
|
|
116
|
-
waitUntilFinished(requestOptions, resolve, reject, logger
|
|
117
|
-
if (!this.debug && this.verbose) {
|
|
118
|
-
dots += '.';
|
|
119
|
-
process.stdout.write(`\r${dots}`);
|
|
120
|
-
}
|
|
115
|
+
waitUntilFinished(requestOptions, resolve, reject, logger) {
|
|
121
116
|
request_1.default
|
|
122
117
|
.get(requestOptions)
|
|
123
118
|
.then((teamsAsyncOperation) => {
|
|
@@ -133,7 +128,7 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
133
128
|
return;
|
|
134
129
|
}
|
|
135
130
|
setTimeout(() => {
|
|
136
|
-
this.waitUntilFinished(requestOptions, resolve, reject, logger
|
|
131
|
+
this.waitUntilFinished(requestOptions, resolve, reject, logger);
|
|
137
132
|
}, this.pollingInterval);
|
|
138
133
|
}).catch(err => reject(err));
|
|
139
134
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.aadUser = void 0;
|
|
13
|
+
const request_1 = require("../request");
|
|
14
|
+
const formatting_1 = require("./formatting");
|
|
15
|
+
const graphResource = 'https://graph.microsoft.com';
|
|
16
|
+
exports.aadUser = {
|
|
17
|
+
/**
|
|
18
|
+
* Retrieve the id of a user by its UPN.
|
|
19
|
+
* @param upn User UPN.
|
|
20
|
+
*/
|
|
21
|
+
getUserIdByUpn(upn) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const requestOptions = {
|
|
24
|
+
url: `${graphResource}/v1.0/users?$filter=userPrincipalName eq '${formatting_1.formatting.encodeQueryParameter(upn)}'&$select=Id`,
|
|
25
|
+
headers: {
|
|
26
|
+
accept: 'application/json;odata.metadata=none'
|
|
27
|
+
},
|
|
28
|
+
responseType: 'json'
|
|
29
|
+
};
|
|
30
|
+
const res = yield request_1.default.get(requestOptions);
|
|
31
|
+
if (res.value.length === 0) {
|
|
32
|
+
throw Error(`The specified user with user name ${upn} does not exist.`);
|
|
33
|
+
}
|
|
34
|
+
return res.value[0].id;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=aadUser.js.map
|
package/dist/utils/planner.js
CHANGED
|
@@ -57,15 +57,12 @@ exports.planner = {
|
|
|
57
57
|
* @param groupId Owner group ID.
|
|
58
58
|
* @param rosterId Roster ID.
|
|
59
59
|
*/
|
|
60
|
-
getPlanByTitle(title, groupId,
|
|
60
|
+
getPlanByTitle(title, groupId, metadata = 'none') {
|
|
61
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
62
|
let plans = [];
|
|
63
63
|
if (groupId) {
|
|
64
64
|
plans = yield this.getPlansByGroupId(groupId, metadata);
|
|
65
65
|
}
|
|
66
|
-
else if (rosterId) {
|
|
67
|
-
plans = yield this.getPlansByRosterId(rosterId, metadata);
|
|
68
|
-
}
|
|
69
66
|
const filteredPlans = plans.filter(p => p.title && p.title.toLowerCase() === title.toLowerCase());
|
|
70
67
|
if (!filteredPlans.length) {
|
|
71
68
|
throw Error(`The specified plan '${title}' does not exist.`);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.session = void 0;
|
|
4
|
+
const crypto = require("crypto");
|
|
5
|
+
const cache_1 = require("./cache");
|
|
6
|
+
exports.session = {
|
|
7
|
+
getId(pid) {
|
|
8
|
+
const key = `${pid.toString()}_session`;
|
|
9
|
+
let sessionId = cache_1.cache.getValue(key);
|
|
10
|
+
if (sessionId) {
|
|
11
|
+
return sessionId;
|
|
12
|
+
}
|
|
13
|
+
sessionId = crypto.randomBytes(24).toString('base64');
|
|
14
|
+
cache_1.cache.setValue(key, sessionId);
|
|
15
|
+
return sessionId;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=session.js.map
|
package/dist/utils/spo.js
CHANGED
|
@@ -18,6 +18,7 @@ const config_1 = require("../config");
|
|
|
18
18
|
const base_permissions_1 = require("../m365/spo/base-permissions");
|
|
19
19
|
const request_1 = require("../request");
|
|
20
20
|
const formatting_1 = require("./formatting");
|
|
21
|
+
const odata_1 = require("./odata");
|
|
21
22
|
exports.spo = {
|
|
22
23
|
getRequestDigest(siteUrl) {
|
|
23
24
|
const requestOptions = {
|
|
@@ -55,7 +56,7 @@ exports.spo = {
|
|
|
55
56
|
});
|
|
56
57
|
});
|
|
57
58
|
},
|
|
58
|
-
waitUntilFinished({ operationId, siteUrl, resolve, reject, logger, currentContext,
|
|
59
|
+
waitUntilFinished({ operationId, siteUrl, resolve, reject, logger, currentContext, debug, verbose }) {
|
|
59
60
|
exports.spo
|
|
60
61
|
.ensureFormDigest(siteUrl, logger, currentContext, debug)
|
|
61
62
|
.then((res) => {
|
|
@@ -63,10 +64,6 @@ exports.spo = {
|
|
|
63
64
|
if (debug) {
|
|
64
65
|
logger.logToStderr(`Checking if operation ${operationId} completed...`);
|
|
65
66
|
}
|
|
66
|
-
if (!debug && verbose) {
|
|
67
|
-
dots += '.';
|
|
68
|
-
process.stdout.write(`\r${dots}`);
|
|
69
|
-
}
|
|
70
67
|
const requestOptions = {
|
|
71
68
|
url: `${siteUrl}/_vti_bin/client.svc/ProcessQuery`,
|
|
72
69
|
headers: {
|
|
@@ -100,7 +97,6 @@ exports.spo = {
|
|
|
100
97
|
reject,
|
|
101
98
|
logger,
|
|
102
99
|
currentContext,
|
|
103
|
-
dots,
|
|
104
100
|
debug,
|
|
105
101
|
verbose
|
|
106
102
|
});
|
|
@@ -108,7 +104,7 @@ exports.spo = {
|
|
|
108
104
|
}
|
|
109
105
|
});
|
|
110
106
|
},
|
|
111
|
-
waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger,
|
|
107
|
+
waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger, debug, verbose }) {
|
|
112
108
|
const requestUrl = `${siteUrl}/_api/site/GetCopyJobProgress`;
|
|
113
109
|
const requestOptions = {
|
|
114
110
|
url: requestUrl,
|
|
@@ -118,10 +114,6 @@ exports.spo = {
|
|
|
118
114
|
data: { "copyJobInfo": copyJobInfo },
|
|
119
115
|
responseType: 'json'
|
|
120
116
|
};
|
|
121
|
-
if (!debug && verbose) {
|
|
122
|
-
dots += '.';
|
|
123
|
-
process.stdout.write(`\r${dots}`);
|
|
124
|
-
}
|
|
125
117
|
request_1.default
|
|
126
118
|
.post(requestOptions)
|
|
127
119
|
.then((resp) => {
|
|
@@ -148,7 +140,7 @@ exports.spo = {
|
|
|
148
140
|
}
|
|
149
141
|
else {
|
|
150
142
|
setTimeout(() => {
|
|
151
|
-
exports.spo.waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger,
|
|
143
|
+
exports.spo.waitUntilCopyJobFinished({ copyJobInfo, siteUrl, pollingInterval, resolve, reject, logger, debug, verbose });
|
|
152
144
|
}, pollingInterval);
|
|
153
145
|
}
|
|
154
146
|
});
|
|
@@ -484,6 +476,66 @@ exports.spo = {
|
|
|
484
476
|
const res = yield request_1.default.get(requestOptions);
|
|
485
477
|
return res;
|
|
486
478
|
});
|
|
479
|
+
},
|
|
480
|
+
/**
|
|
481
|
+
* Retrieves a list of Custom Actions from a SharePoint site.
|
|
482
|
+
* @param webUrl Web url
|
|
483
|
+
* @param scope The scope of custom actions to retrieve, allowed values "Site", "Web" or "All".
|
|
484
|
+
* @param filter An OData filter query to limit the results.
|
|
485
|
+
*/
|
|
486
|
+
getCustomActions(webUrl, scope, filter) {
|
|
487
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
488
|
+
if (scope && scope !== "All" && scope !== "Site" && scope !== "Web") {
|
|
489
|
+
throw `Invalid scope '${scope}'. Allowed values are 'Site', 'Web' or 'All'.`;
|
|
490
|
+
}
|
|
491
|
+
const queryString = filter ? `?$filter=${filter}` : "";
|
|
492
|
+
if (scope && scope !== "All") {
|
|
493
|
+
return yield odata_1.odata.getAllItems(`${webUrl}/_api/${scope}/UserCustomActions${queryString}`);
|
|
494
|
+
}
|
|
495
|
+
const customActions = [
|
|
496
|
+
...yield odata_1.odata.getAllItems(`${webUrl}/_api/Site/UserCustomActions${queryString}`),
|
|
497
|
+
...yield odata_1.odata.getAllItems(`${webUrl}/_api/Web/UserCustomActions${queryString}`)
|
|
498
|
+
];
|
|
499
|
+
return customActions;
|
|
500
|
+
});
|
|
501
|
+
},
|
|
502
|
+
/**
|
|
503
|
+
* Retrieves a Custom Actions from a SharePoint site by Id.
|
|
504
|
+
* @param webUrl Web url
|
|
505
|
+
* @param id The Id of the Custom Action
|
|
506
|
+
* @param scope The scope of custom actions to retrieve, allowed values "Site", "Web" or "All".
|
|
507
|
+
*/
|
|
508
|
+
getCustomActionById(webUrl, id, scope) {
|
|
509
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
510
|
+
if (scope && scope !== "All" && scope !== "Site" && scope !== "Web") {
|
|
511
|
+
throw `Invalid scope '${scope}'. Allowed values are 'Site', 'Web' or 'All'.`;
|
|
512
|
+
}
|
|
513
|
+
function getById(webUrl, id, scope) {
|
|
514
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
515
|
+
const requestOptions = {
|
|
516
|
+
url: `${webUrl}/_api/${scope}/UserCustomActions(guid'${id}')`,
|
|
517
|
+
headers: {
|
|
518
|
+
accept: 'application/json;odata=nometadata'
|
|
519
|
+
},
|
|
520
|
+
responseType: 'json'
|
|
521
|
+
};
|
|
522
|
+
const result = yield request_1.default.get(requestOptions);
|
|
523
|
+
if (result["odata.null"] === true) {
|
|
524
|
+
return undefined;
|
|
525
|
+
}
|
|
526
|
+
return result;
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
if (scope && scope !== "All") {
|
|
530
|
+
return yield getById(webUrl, id, scope);
|
|
531
|
+
}
|
|
532
|
+
const customActionOnWeb = yield getById(webUrl, id, "Web");
|
|
533
|
+
if (customActionOnWeb) {
|
|
534
|
+
return customActionOnWeb;
|
|
535
|
+
}
|
|
536
|
+
const customActionOnSite = yield getById(webUrl, id, "Site");
|
|
537
|
+
return customActionOnSite;
|
|
538
|
+
});
|
|
487
539
|
}
|
|
488
540
|
};
|
|
489
541
|
//# sourceMappingURL=spo.js.map
|