@pnp/cli-microsoft365 6.9.0-beta.41bb38c → 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 +5 -2
- 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 +35 -2
- 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/contenttype/contenttype-set.js +49 -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/term/term-group-add.js +14 -10
- package/dist/m365/spo/commands.js +7 -0
- package/dist/m365/teams/commands/team/team-add.js +53 -50
- 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/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/spo/term/term-group-add.mdx +63 -4
- 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
|
@@ -0,0 +1,215 @@
|
|
|
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 _SpoTenantCommandSetAddCommand_instances, _SpoTenantCommandSetAddCommand_initTelemetry, _SpoTenantCommandSetAddCommand_initOptions, _SpoTenantCommandSetAddCommand_initValidators;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const validation_1 = require("../../../../utils/validation");
|
|
19
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
20
|
+
const commands_1 = require("../../commands");
|
|
21
|
+
const Cli_1 = require("../../../../cli/Cli");
|
|
22
|
+
const spoTenantAppCatalogUrlGetCommand = require("./tenant-appcatalogurl-get");
|
|
23
|
+
const spoListItemAddCommand = require("../listitem/listitem-add");
|
|
24
|
+
const spoListItemListCommand = require("../listitem/listitem-list");
|
|
25
|
+
const urlUtil_1 = require("../../../../utils/urlUtil");
|
|
26
|
+
class SpoTenantCommandSetAddCommand extends SpoCommand_1.default {
|
|
27
|
+
get name() {
|
|
28
|
+
return commands_1.default.TENANT_COMMANDSET_ADD;
|
|
29
|
+
}
|
|
30
|
+
get description() {
|
|
31
|
+
return 'Add a ListView Command Set as a tenant-wide extension.';
|
|
32
|
+
}
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
_SpoTenantCommandSetAddCommand_instances.add(this);
|
|
36
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetAddCommand_instances, "m", _SpoTenantCommandSetAddCommand_initTelemetry).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetAddCommand_instances, "m", _SpoTenantCommandSetAddCommand_initOptions).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetAddCommand_instances, "m", _SpoTenantCommandSetAddCommand_initValidators).call(this);
|
|
39
|
+
}
|
|
40
|
+
commandAction(logger, args) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
try {
|
|
43
|
+
const appCatalogUrl = yield this.getAppCatalogUrl(logger);
|
|
44
|
+
const componentManifest = yield this.getComponentManifest(appCatalogUrl, args.options.clientSideComponentId, logger);
|
|
45
|
+
const clientComponentManifest = JSON.parse(componentManifest.ClientComponentManifest);
|
|
46
|
+
if (clientComponentManifest.extensionType !== "ListViewCommandSet") {
|
|
47
|
+
throw `The extension type of this component is not of type 'ListViewCommandSet' but of type '${clientComponentManifest.extensionType}'`;
|
|
48
|
+
}
|
|
49
|
+
const solution = yield this.getSolutionFromAppCatalog(appCatalogUrl, componentManifest.SolutionId, logger);
|
|
50
|
+
if (!solution.ContainsTenantWideExtension) {
|
|
51
|
+
throw `The solution does not contain an extension that can be deployed to all sites. Make sure that you've entered the correct component Id.`;
|
|
52
|
+
}
|
|
53
|
+
else if (!solution.SkipFeatureDeployment) {
|
|
54
|
+
throw 'The solution has not been deployed to all sites. Make sure to deploy this solution to all sites.';
|
|
55
|
+
}
|
|
56
|
+
yield this.addTenantWideExtension(appCatalogUrl, args.options, logger);
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
this.handleRejectedODataJsonPromise(err);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
getAppCatalogUrl(logger) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const spoTenantAppCatalogUrlGetCommandOutput = yield Cli_1.Cli.executeCommandWithOutput(spoTenantAppCatalogUrlGetCommand, { options: { output: 'text', _: [] } });
|
|
66
|
+
if (this.verbose) {
|
|
67
|
+
logger.logToStderr(spoTenantAppCatalogUrlGetCommandOutput.stderr);
|
|
68
|
+
}
|
|
69
|
+
const appCatalogUrl = spoTenantAppCatalogUrlGetCommandOutput.stdout;
|
|
70
|
+
if (!appCatalogUrl) {
|
|
71
|
+
throw 'Cannot add tenant-wide ListView Command Set as app catalog cannot be found';
|
|
72
|
+
}
|
|
73
|
+
if (this.verbose) {
|
|
74
|
+
logger.logToStderr(`Got tenant app catalog url: ${appCatalogUrl}`);
|
|
75
|
+
}
|
|
76
|
+
return appCatalogUrl;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getComponentManifest(appCatalogUrl, clientSideComponentId, logger) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
if (this.verbose) {
|
|
82
|
+
logger.logToStderr('Retrieving component manifest item from the ComponentManifests list on the app catalog site so that we get the solution id');
|
|
83
|
+
}
|
|
84
|
+
const camlQuery = `<View><ViewFields><FieldRef Name='ClientComponentId'></FieldRef><FieldRef Name='SolutionId'></FieldRef><FieldRef Name='ClientComponentManifest'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='ClientComponentId' /><Value Type='Guid'>${clientSideComponentId}</Value></Eq></Where></Query></View>`;
|
|
85
|
+
const commandOptions = {
|
|
86
|
+
webUrl: appCatalogUrl,
|
|
87
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/Lists/ComponentManifests`,
|
|
88
|
+
camlQuery: camlQuery,
|
|
89
|
+
verbose: this.verbose,
|
|
90
|
+
debug: this.debug,
|
|
91
|
+
output: 'json'
|
|
92
|
+
};
|
|
93
|
+
const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
94
|
+
if (this.verbose) {
|
|
95
|
+
logger.logToStderr(output.stderr);
|
|
96
|
+
}
|
|
97
|
+
const outputParsed = JSON.parse(output.stdout);
|
|
98
|
+
if (outputParsed.length === 0) {
|
|
99
|
+
throw 'No component found with the specified clientSideComponentId found in the component manifest list. Make sure that the application is added to the application catalog';
|
|
100
|
+
}
|
|
101
|
+
return outputParsed[0];
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getSolutionFromAppCatalog(appCatalogUrl, solutionId, logger) {
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
if (this.verbose) {
|
|
107
|
+
logger.logToStderr(`Retrieving solution with id ${solutionId} from the application catalog`);
|
|
108
|
+
}
|
|
109
|
+
const camlQuery = `<View><ViewFields><FieldRef Name='SkipFeatureDeployment'></FieldRef><FieldRef Name='ContainsTenantWideExtension'></FieldRef></ViewFields><Query><Where><Eq><FieldRef Name='AppProductID' /><Value Type='Guid'>${solutionId}</Value></Eq></Where></Query></View>`;
|
|
110
|
+
const commandOptions = {
|
|
111
|
+
webUrl: appCatalogUrl,
|
|
112
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/AppCatalog`,
|
|
113
|
+
camlQuery: camlQuery,
|
|
114
|
+
verbose: this.verbose,
|
|
115
|
+
debug: this.debug,
|
|
116
|
+
output: 'json'
|
|
117
|
+
};
|
|
118
|
+
const output = yield Cli_1.Cli.executeCommandWithOutput(spoListItemListCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
119
|
+
if (this.verbose) {
|
|
120
|
+
logger.logToStderr(output.stderr);
|
|
121
|
+
}
|
|
122
|
+
const outputParsed = JSON.parse(output.stdout);
|
|
123
|
+
if (outputParsed.length === 0) {
|
|
124
|
+
throw `No component found with the solution id ${solutionId}. Make sure that the solution is available in the app catalog`;
|
|
125
|
+
}
|
|
126
|
+
return outputParsed[0];
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
addTenantWideExtension(appCatalogUrl, options, logger) {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
if (this.verbose) {
|
|
132
|
+
logger.logToStderr('Pre-checks finished. Adding tenant wide extension to the TenantWideExtensions list');
|
|
133
|
+
}
|
|
134
|
+
const commandOptions = {
|
|
135
|
+
webUrl: appCatalogUrl,
|
|
136
|
+
listUrl: `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(appCatalogUrl)}/Lists/TenantWideExtensions`,
|
|
137
|
+
Title: options.title,
|
|
138
|
+
TenantWideExtensionComponentId: options.clientSideComponentId,
|
|
139
|
+
TenantWideExtensionLocation: this.getLocation(options.location),
|
|
140
|
+
TenantWideExtensionSequence: 0,
|
|
141
|
+
TenantWideExtensionListTemplate: this.getListTemplate(options.listType),
|
|
142
|
+
TenantWideExtensionComponentProperties: options.clientSideComponentProperties || '',
|
|
143
|
+
TenantWideExtensionWebTemplate: options.webTemplate || '',
|
|
144
|
+
TenantWideExtensionDisabled: false,
|
|
145
|
+
verbose: this.verbose,
|
|
146
|
+
debug: this.debug,
|
|
147
|
+
output: options.output
|
|
148
|
+
};
|
|
149
|
+
yield Cli_1.Cli.executeCommand(spoListItemAddCommand, { options: Object.assign(Object.assign({}, commandOptions), { _: [] }) });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
getLocation(location) {
|
|
153
|
+
switch (location) {
|
|
154
|
+
case 'Both':
|
|
155
|
+
return 'ClientSideExtension.ListViewCommandSet';
|
|
156
|
+
case 'ContextMenu':
|
|
157
|
+
return 'ClientSideExtension.ListViewCommandSet.ContextMenu';
|
|
158
|
+
default:
|
|
159
|
+
return 'ClientSideExtension.ListViewCommandSet.CommandBar';
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
getListTemplate(listTemplate) {
|
|
163
|
+
switch (listTemplate) {
|
|
164
|
+
case 'SitePages':
|
|
165
|
+
return '119';
|
|
166
|
+
case 'Library':
|
|
167
|
+
return '101';
|
|
168
|
+
default:
|
|
169
|
+
return '100';
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
_SpoTenantCommandSetAddCommand_instances = new WeakSet(), _SpoTenantCommandSetAddCommand_initTelemetry = function _SpoTenantCommandSetAddCommand_initTelemetry() {
|
|
174
|
+
this.telemetry.push((args) => {
|
|
175
|
+
Object.assign(this.telemetryProperties, {
|
|
176
|
+
listType: args.options.listType,
|
|
177
|
+
clientSideComponentProperties: typeof args.options.clientSideComponentProperties !== 'undefined',
|
|
178
|
+
webTemplate: typeof args.options.webTemplate !== 'undefined',
|
|
179
|
+
location: args.options.location
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
}, _SpoTenantCommandSetAddCommand_initOptions = function _SpoTenantCommandSetAddCommand_initOptions() {
|
|
183
|
+
this.options.unshift({
|
|
184
|
+
option: '-t, --title <title>'
|
|
185
|
+
}, {
|
|
186
|
+
option: '-l, --listType <listType>',
|
|
187
|
+
autocomplete: SpoTenantCommandSetAddCommand.listTypes
|
|
188
|
+
}, {
|
|
189
|
+
option: '-i, --clientSideComponentId <clientSideComponentId>'
|
|
190
|
+
}, {
|
|
191
|
+
option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
|
|
192
|
+
}, {
|
|
193
|
+
option: '-w, --webTemplate [webTemplate]'
|
|
194
|
+
}, {
|
|
195
|
+
option: '--location [location]',
|
|
196
|
+
autocomplete: SpoTenantCommandSetAddCommand.locations
|
|
197
|
+
});
|
|
198
|
+
}, _SpoTenantCommandSetAddCommand_initValidators = function _SpoTenantCommandSetAddCommand_initValidators() {
|
|
199
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
if (!validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
|
|
201
|
+
return `${args.options.clientSideComponentId} is not a valid GUID`;
|
|
202
|
+
}
|
|
203
|
+
if (SpoTenantCommandSetAddCommand.listTypes.indexOf(args.options.listType) < 0) {
|
|
204
|
+
return `${args.options.listType} is not a valid list type. Allowed values are ${SpoTenantCommandSetAddCommand.listTypes.join(', ')}`;
|
|
205
|
+
}
|
|
206
|
+
if (args.options.location && SpoTenantCommandSetAddCommand.locations.indexOf(args.options.location) < 0) {
|
|
207
|
+
return `${args.options.location} is not a valid location. Allowed values are ${SpoTenantCommandSetAddCommand.locations.join(', ')}`;
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
}));
|
|
211
|
+
};
|
|
212
|
+
SpoTenantCommandSetAddCommand.listTypes = ['List', 'Library', 'SitePages'];
|
|
213
|
+
SpoTenantCommandSetAddCommand.locations = ['ContextMenu', 'CommandBar', 'Both'];
|
|
214
|
+
module.exports = new SpoTenantCommandSetAddCommand();
|
|
215
|
+
//# sourceMappingURL=tenant-commandset-add.js.map
|
|
@@ -0,0 +1,114 @@
|
|
|
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 _SpoTenantCommandSetGetCommand_instances, _SpoTenantCommandSetGetCommand_initTelemetry, _SpoTenantCommandSetGetCommand_initOptions, _SpoTenantCommandSetGetCommand_initValidators, _SpoTenantCommandSetGetCommand_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 SpoTenantCommandSetGetCommand extends SpoCommand_1.default {
|
|
27
|
+
get name() {
|
|
28
|
+
return commands_1.default.TENANT_COMMANDSET_GET;
|
|
29
|
+
}
|
|
30
|
+
get description() {
|
|
31
|
+
return 'Get a ListView Command Set that is installed tenant wide';
|
|
32
|
+
}
|
|
33
|
+
constructor() {
|
|
34
|
+
super();
|
|
35
|
+
_SpoTenantCommandSetGetCommand_instances.add(this);
|
|
36
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetGetCommand_instances, "m", _SpoTenantCommandSetGetCommand_initTelemetry).call(this);
|
|
37
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetGetCommand_instances, "m", _SpoTenantCommandSetGetCommand_initOptions).call(this);
|
|
38
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetGetCommand_instances, "m", _SpoTenantCommandSetGetCommand_initValidators).call(this);
|
|
39
|
+
__classPrivateFieldGet(this, _SpoTenantCommandSetGetCommand_instances, "m", _SpoTenantCommandSetGetCommand_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 = `startswith(TenantWideExtensionLocation,'ClientSideExtension.ListViewCommandSet')`;
|
|
48
|
+
if (args.options.title) {
|
|
49
|
+
filter += ` and Title eq '${args.options.title}'`;
|
|
50
|
+
}
|
|
51
|
+
else if (args.options.id) {
|
|
52
|
+
filter += ` and Id eq ${args.options.id}`;
|
|
53
|
+
}
|
|
54
|
+
else if (args.options.clientSideComponentId) {
|
|
55
|
+
filter += ` and 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
|
+
try {
|
|
66
|
+
const listItemInstances = yield request_1.default.get(reqOptions);
|
|
67
|
+
if ((listItemInstances === null || listItemInstances === void 0 ? void 0 : listItemInstances.value.length) > 0) {
|
|
68
|
+
if (listItemInstances.value.length > 1) {
|
|
69
|
+
throw `Multiple ListView Command Sets with ${args.options.title || args.options.clientSideComponentId} were found. Please disambiguate (IDs): ${listItemInstances.value.map(item => item.Id).join(', ')}`;
|
|
70
|
+
}
|
|
71
|
+
listItemInstances.value.forEach(v => delete v['ID']);
|
|
72
|
+
logger.log(listItemInstances.value[0]);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
throw 'The specified ListView Command Set was not found';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
return this.handleRejectedODataJsonPromise(err);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
_SpoTenantCommandSetGetCommand_instances = new WeakSet(), _SpoTenantCommandSetGetCommand_initTelemetry = function _SpoTenantCommandSetGetCommand_initTelemetry() {
|
|
85
|
+
this.telemetry.push((args) => {
|
|
86
|
+
Object.assign(this.telemetryProperties, {
|
|
87
|
+
title: typeof args.options.title !== 'undefined',
|
|
88
|
+
id: typeof args.options.id !== 'undefined',
|
|
89
|
+
clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined'
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}, _SpoTenantCommandSetGetCommand_initOptions = function _SpoTenantCommandSetGetCommand_initOptions() {
|
|
93
|
+
this.options.unshift({
|
|
94
|
+
option: '-t, --title [title]'
|
|
95
|
+
}, {
|
|
96
|
+
option: '-i, --id [id]'
|
|
97
|
+
}, {
|
|
98
|
+
option: '-c, --clientSideComponentId [clientSideComponentId]'
|
|
99
|
+
});
|
|
100
|
+
}, _SpoTenantCommandSetGetCommand_initValidators = function _SpoTenantCommandSetGetCommand_initValidators() {
|
|
101
|
+
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
if (args.options.id && isNaN(parseInt(args.options.id))) {
|
|
103
|
+
return `${args.options.id} is not a number`;
|
|
104
|
+
}
|
|
105
|
+
if (args.options.clientSideComponentId && !validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
|
|
106
|
+
return `${args.options.clientSideComponentId} is not a valid GUID`;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
}));
|
|
110
|
+
}, _SpoTenantCommandSetGetCommand_initOptionSets = function _SpoTenantCommandSetGetCommand_initOptionSets() {
|
|
111
|
+
this.optionSets.push({ options: ['title', 'id', 'clientSideComponentId'] });
|
|
112
|
+
};
|
|
113
|
+
module.exports = new SpoTenantCommandSetGetCommand();
|
|
114
|
+
//# sourceMappingURL=tenant-commandset-get.js.map
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
const Command_1 = require("../../../../Command");
|
|
13
|
+
const formatting_1 = require("../../../../utils/formatting");
|
|
14
|
+
const odata_1 = require("../../../../utils/odata");
|
|
15
|
+
const spo_1 = require("../../../../utils/spo");
|
|
16
|
+
const urlUtil_1 = require("../../../../utils/urlUtil");
|
|
17
|
+
const SpoCommand_1 = require("../../../base/SpoCommand");
|
|
18
|
+
const commands_1 = require("../../commands");
|
|
19
|
+
class SpoTenantCommandSetListCommand extends SpoCommand_1.default {
|
|
20
|
+
get name() {
|
|
21
|
+
return commands_1.default.TENANT_COMMANDSET_LIST;
|
|
22
|
+
}
|
|
23
|
+
get description() {
|
|
24
|
+
return 'Retrieves a list of ListView Command Sets that are installed tenant-wide';
|
|
25
|
+
}
|
|
26
|
+
defaultProperties() {
|
|
27
|
+
return ['Title', 'TenantWideExtensionComponentId', 'TenantWideExtensionListTemplate'];
|
|
28
|
+
}
|
|
29
|
+
commandAction(logger) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const appCatalogUrl = yield spo_1.spo.getTenantAppCatalogUrl(logger, this.debug);
|
|
32
|
+
if (!appCatalogUrl) {
|
|
33
|
+
throw new Command_1.CommandError('No app catalog URL found');
|
|
34
|
+
}
|
|
35
|
+
if (this.verbose) {
|
|
36
|
+
logger.logToStderr('Retrieving a list of ListView Command Sets that are installed tenant-wide');
|
|
37
|
+
}
|
|
38
|
+
const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(appCatalogUrl, '/lists/TenantWideExtensions');
|
|
39
|
+
try {
|
|
40
|
+
const response = yield odata_1.odata.getAllItems(`${appCatalogUrl}/_api/web/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')/items?$filter=startswith(TenantWideExtensionLocation, 'ClientSideExtension.ListViewCommandSet')`);
|
|
41
|
+
logger.log(response);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
this.handleRejectedODataJsonPromise(err);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
module.exports = new SpoTenantCommandSetListCommand();
|
|
50
|
+
//# sourceMappingURL=tenant-commandset-list.js.map
|
|
@@ -166,7 +166,7 @@ _SpoTenantCommandSetSetCommand_instances = new WeakSet(), _SpoTenantCommandSetSe
|
|
|
166
166
|
option: '-l, --listType [listType]',
|
|
167
167
|
autocomplete: SpoTenantCommandSetSetCommand.listTypes
|
|
168
168
|
}, {
|
|
169
|
-
option: '-
|
|
169
|
+
option: '-c, --clientSideComponentId [clientSideComponentId]'
|
|
170
170
|
}, {
|
|
171
171
|
option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
|
|
172
172
|
}, {
|
|
@@ -42,14 +42,14 @@ class SpoTermGroupAddCommand extends SpoCommand_1.default {
|
|
|
42
42
|
let formDigest = '';
|
|
43
43
|
let termGroup;
|
|
44
44
|
try {
|
|
45
|
-
const
|
|
46
|
-
const res = yield spo_1.spo.getRequestDigest(
|
|
45
|
+
const webUrl = args.options.webUrl || (yield spo_1.spo.getSpoAdminUrl(logger, this.debug));
|
|
46
|
+
const res = yield spo_1.spo.getRequestDigest(webUrl);
|
|
47
47
|
formDigest = res.FormDigestValue;
|
|
48
48
|
if (this.verbose) {
|
|
49
49
|
logger.logToStderr(`Getting taxonomy term store...`);
|
|
50
50
|
}
|
|
51
51
|
const requestOptionsPost = {
|
|
52
|
-
url: `${
|
|
52
|
+
url: `${webUrl}/_vti_bin/client.svc/ProcessQuery`,
|
|
53
53
|
headers: {
|
|
54
54
|
'X-RequestDigest': res.FormDigestValue
|
|
55
55
|
},
|
|
@@ -67,7 +67,7 @@ class SpoTermGroupAddCommand extends SpoCommand_1.default {
|
|
|
67
67
|
logger.logToStderr(`Adding taxonomy term group...`);
|
|
68
68
|
}
|
|
69
69
|
const requestOptions = {
|
|
70
|
-
url: `${
|
|
70
|
+
url: `${webUrl}/_vti_bin/client.svc/ProcessQuery`,
|
|
71
71
|
headers: {
|
|
72
72
|
'X-RequestDigest': formDigest
|
|
73
73
|
},
|
|
@@ -86,7 +86,7 @@ class SpoTermGroupAddCommand extends SpoCommand_1.default {
|
|
|
86
86
|
logger.logToStderr(`Setting taxonomy term group description...`);
|
|
87
87
|
}
|
|
88
88
|
const requestOptionsQuery = {
|
|
89
|
-
url: `${
|
|
89
|
+
url: `${webUrl}/_vti_bin/client.svc/ProcessQuery`,
|
|
90
90
|
headers: {
|
|
91
91
|
'X-RequestDigest': formDigest
|
|
92
92
|
},
|
|
@@ -117,7 +117,8 @@ _SpoTermGroupAddCommand_instances = new WeakSet(), _SpoTermGroupAddCommand_initT
|
|
|
117
117
|
this.telemetry.push((args) => {
|
|
118
118
|
Object.assign(this.telemetryProperties, {
|
|
119
119
|
description: typeof args.options.id !== 'undefined',
|
|
120
|
-
id: typeof args.options.id !== 'undefined'
|
|
120
|
+
id: typeof args.options.id !== 'undefined',
|
|
121
|
+
webUrl: typeof args.options.webUrl !== 'undefined'
|
|
121
122
|
});
|
|
122
123
|
});
|
|
123
124
|
}, _SpoTermGroupAddCommand_initOptions = function _SpoTermGroupAddCommand_initOptions() {
|
|
@@ -127,13 +128,16 @@ _SpoTermGroupAddCommand_instances = new WeakSet(), _SpoTermGroupAddCommand_initT
|
|
|
127
128
|
option: '-i, --id [id]'
|
|
128
129
|
}, {
|
|
129
130
|
option: '-d, --description [description]'
|
|
131
|
+
}, {
|
|
132
|
+
option: '-u, --webUrl [webUrl]'
|
|
130
133
|
});
|
|
131
134
|
}, _SpoTermGroupAddCommand_initValidators = function _SpoTermGroupAddCommand_initValidators() {
|
|
132
135
|
this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
|
|
133
|
-
if (args.options.id) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
|
|
137
|
+
return `${args.options.id} is not a valid GUID`;
|
|
138
|
+
}
|
|
139
|
+
if (args.options.webUrl) {
|
|
140
|
+
return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
|
|
137
141
|
}
|
|
138
142
|
return true;
|
|
139
143
|
}));
|
|
@@ -17,6 +17,7 @@ exports.default = {
|
|
|
17
17
|
APPLICATIONCUSTOMIZER_GET: `${prefix} applicationcustomizer get`,
|
|
18
18
|
APPLICATIONCUSTOMIZER_LIST: `${prefix} applicationcustomizer list`,
|
|
19
19
|
APPLICATIONCUSTOMIZER_REMOVE: `${prefix} applicationcustomizer remove`,
|
|
20
|
+
APPLICATIONCUSTOMIZER_SET: `${prefix} applicationcustomizer set`,
|
|
20
21
|
APPPAGE_ADD: `${prefix} apppage add`,
|
|
21
22
|
APPPAGE_SET: `${prefix} apppage set`,
|
|
22
23
|
CDN_GET: `${prefix} cdn get`,
|
|
@@ -60,6 +61,7 @@ exports.default = {
|
|
|
60
61
|
FILE_ADD: `${prefix} file add`,
|
|
61
62
|
FILE_CHECKIN: `${prefix} file checkin`,
|
|
62
63
|
FILE_CHECKOUT: `${prefix} file checkout`,
|
|
64
|
+
FILE_CHECKOUT_UNDO: `${prefix} file checkout undo`,
|
|
63
65
|
FILE_COPY: `${prefix} file copy`,
|
|
64
66
|
FILE_GET: `${prefix} file get`,
|
|
65
67
|
FILE_LIST: `${prefix} file list`,
|
|
@@ -141,6 +143,7 @@ exports.default = {
|
|
|
141
143
|
LIST_ROLEASSIGNMENT_ADD: `${prefix} list roleassignment add`,
|
|
142
144
|
LIST_ROLEINHERITANCE_BREAK: `${prefix} list roleinheritance break`,
|
|
143
145
|
LIST_ROLEINHERITANCE_RESET: `${prefix} list roleinheritance reset`,
|
|
146
|
+
LIST_SENSITIVITYLABEL_ENSURE: `${prefix} list sensitivitylabel ensure`,
|
|
144
147
|
LIST_SET: `${prefix} list set`,
|
|
145
148
|
LIST_SITESCRIPT_GET: `${prefix} list sitescript get`,
|
|
146
149
|
LIST_VIEW_ADD: `${prefix} list view add`,
|
|
@@ -295,6 +298,10 @@ exports.default = {
|
|
|
295
298
|
TENANT_APPLICATIONCUSTOMIZER_GET: `${prefix} tenant applicationcustomizer get`,
|
|
296
299
|
TENANT_APPLICATIONCUSTOMIZER_LIST: `${prefix} tenant applicationcustomizer list`,
|
|
297
300
|
TENANT_APPLICATIONCUSTOMIZER_REMOVE: `${prefix} tenant applicationcustomizer remove`,
|
|
301
|
+
TENANT_APPLICATIONCUSTOMIZER_SET: `${prefix} tenant applicationcustomizer set`,
|
|
302
|
+
TENANT_COMMANDSET_ADD: `${prefix} tenant commandset add`,
|
|
303
|
+
TENANT_COMMANDSET_GET: `${prefix} tenant commandset get`,
|
|
304
|
+
TENANT_COMMANDSET_LIST: `${prefix} tenant commandset list`,
|
|
298
305
|
TENANT_COMMANDSET_REMOVE: `${prefix} tenant commandset remove`,
|
|
299
306
|
TENANT_COMMANDSET_SET: `${prefix} tenant commandset set`,
|
|
300
307
|
TENANT_RECYCLEBINITEM_LIST: `${prefix} tenant recyclebinitem list`,
|
|
@@ -13,20 +13,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
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
14
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
15
|
};
|
|
16
|
-
var _TeamsTeamAddCommand_instances, _TeamsTeamAddCommand_initTelemetry, _TeamsTeamAddCommand_initOptions,
|
|
16
|
+
var _TeamsTeamAddCommand_instances, _TeamsTeamAddCommand_initTelemetry, _TeamsTeamAddCommand_initOptions, _TeamsTeamAddCommand_initOptionSets;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const request_1 = require("../../../../request");
|
|
19
19
|
const aadGroup_1 = require("../../../../utils/aadGroup");
|
|
20
20
|
const GraphCommand_1 = require("../../../base/GraphCommand");
|
|
21
21
|
const commands_1 = require("../../commands");
|
|
22
|
-
|
|
23
|
-
(function (TeamsAsyncOperationStatus) {
|
|
24
|
-
TeamsAsyncOperationStatus["Invalid"] = "invalid";
|
|
25
|
-
TeamsAsyncOperationStatus["NotStarted"] = "notStarted";
|
|
26
|
-
TeamsAsyncOperationStatus["InProgress"] = "inProgress";
|
|
27
|
-
TeamsAsyncOperationStatus["Succeeded"] = "succeeded";
|
|
28
|
-
TeamsAsyncOperationStatus["Failed"] = "failed";
|
|
29
|
-
})(TeamsAsyncOperationStatus || (TeamsAsyncOperationStatus = {}));
|
|
22
|
+
const promises_1 = require("timers/promises");
|
|
30
23
|
class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
31
24
|
get name() {
|
|
32
25
|
return commands_1.default.TEAM_ADD;
|
|
@@ -40,7 +33,7 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
40
33
|
this.pollingInterval = 30000;
|
|
41
34
|
__classPrivateFieldGet(this, _TeamsTeamAddCommand_instances, "m", _TeamsTeamAddCommand_initTelemetry).call(this);
|
|
42
35
|
__classPrivateFieldGet(this, _TeamsTeamAddCommand_instances, "m", _TeamsTeamAddCommand_initOptions).call(this);
|
|
43
|
-
__classPrivateFieldGet(this, _TeamsTeamAddCommand_instances, "m",
|
|
36
|
+
__classPrivateFieldGet(this, _TeamsTeamAddCommand_instances, "m", _TeamsTeamAddCommand_initOptionSets).call(this);
|
|
44
37
|
}
|
|
45
38
|
commandAction(logger, args) {
|
|
46
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -64,6 +57,9 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
64
57
|
}
|
|
65
58
|
}
|
|
66
59
|
else {
|
|
60
|
+
if (this.verbose) {
|
|
61
|
+
logger.logToStderr(`Creating team with name ${args.options.name} and description ${args.options.description}`);
|
|
62
|
+
}
|
|
67
63
|
requestBody = {
|
|
68
64
|
'template@odata.bind': `https://graph.microsoft.com/v1.0/teamsTemplates('standard')`,
|
|
69
65
|
displayName: args.options.name,
|
|
@@ -87,50 +83,57 @@ class TeamsTeamAddCommand extends GraphCommand_1.default {
|
|
|
87
83
|
},
|
|
88
84
|
responseType: 'json'
|
|
89
85
|
};
|
|
90
|
-
const teamsAsyncOperation = yield
|
|
91
|
-
const teamsAsyncOperation = yield request_1.default.get(requestOptions);
|
|
92
|
-
if (!args.options.wait) {
|
|
93
|
-
resolve(teamsAsyncOperation);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
setTimeout(() => {
|
|
97
|
-
this.waitUntilFinished(requestOptions, resolve, reject, logger);
|
|
98
|
-
}, this.pollingInterval);
|
|
99
|
-
}
|
|
100
|
-
}));
|
|
101
|
-
let output;
|
|
86
|
+
const teamsAsyncOperation = yield request_1.default.get(requestOptions);
|
|
102
87
|
if (!args.options.wait) {
|
|
103
|
-
|
|
88
|
+
logger.log(teamsAsyncOperation);
|
|
104
89
|
}
|
|
105
90
|
else {
|
|
106
|
-
|
|
91
|
+
yield this.waitUntilTeamFinishedProvisioning(teamsAsyncOperation, requestOptions, logger);
|
|
92
|
+
const aadGroup = yield this.getAadGroup(teamsAsyncOperation.targetResourceId, logger);
|
|
93
|
+
logger.log(aadGroup);
|
|
107
94
|
}
|
|
108
|
-
logger.log(output);
|
|
109
95
|
}
|
|
110
96
|
catch (err) {
|
|
111
97
|
this.handleRejectedODataJsonPromise(err);
|
|
112
98
|
}
|
|
113
99
|
});
|
|
114
100
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
.
|
|
118
|
-
.then((teamsAsyncOperation) => {
|
|
119
|
-
if (teamsAsyncOperation.status === TeamsAsyncOperationStatus.Succeeded) {
|
|
101
|
+
waitUntilTeamFinishedProvisioning(teamsAsyncOperation, requestOptions, logger) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
if (teamsAsyncOperation.status === 'succeeded') {
|
|
120
104
|
if (this.verbose) {
|
|
121
|
-
|
|
105
|
+
logger.logToStderr('Team provisioned succesfully. Returning...');
|
|
122
106
|
}
|
|
123
|
-
resolve(teamsAsyncOperation);
|
|
124
107
|
return;
|
|
125
108
|
}
|
|
126
|
-
if (teamsAsyncOperation.error) {
|
|
127
|
-
|
|
128
|
-
|
|
109
|
+
else if (teamsAsyncOperation.error) {
|
|
110
|
+
throw teamsAsyncOperation.error;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
if (this.verbose) {
|
|
114
|
+
logger.logToStderr(`Team still provisioning. Retrying in ${this.pollingInterval / 1000} seconds...`);
|
|
115
|
+
}
|
|
116
|
+
yield (0, promises_1.setTimeout)(this.pollingInterval);
|
|
117
|
+
teamsAsyncOperation = yield request_1.default.get(requestOptions);
|
|
118
|
+
yield this.waitUntilTeamFinishedProvisioning(teamsAsyncOperation, requestOptions, logger);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
getAadGroup(id, logger) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
let group;
|
|
125
|
+
try {
|
|
126
|
+
group = yield aadGroup_1.aadGroup.getGroupById(id);
|
|
127
|
+
}
|
|
128
|
+
catch (_a) {
|
|
129
|
+
if (this.verbose) {
|
|
130
|
+
logger.logToStderr(`Error occured on retrieving the aad group. Retrying in ${this.pollingInterval / 1000} seconds.`);
|
|
131
|
+
}
|
|
132
|
+
yield (0, promises_1.setTimeout)(this.pollingInterval);
|
|
133
|
+
return yield this.getAadGroup(id, logger);
|
|
129
134
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}, this.pollingInterval);
|
|
133
|
-
}).catch(err => reject(err));
|
|
135
|
+
return group;
|
|
136
|
+
});
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
139
|
_TeamsTeamAddCommand_instances = new WeakSet(), _TeamsTeamAddCommand_initTelemetry = function _TeamsTeamAddCommand_initTelemetry() {
|
|
@@ -152,18 +155,18 @@ _TeamsTeamAddCommand_instances = new WeakSet(), _TeamsTeamAddCommand_initTelemet
|
|
|
152
155
|
}, {
|
|
153
156
|
option: '--wait'
|
|
154
157
|
});
|
|
155
|
-
},
|
|
156
|
-
this.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
if (!args.options.description) {
|
|
162
|
-
return `Required parameter description missing`;
|
|
163
|
-
}
|
|
158
|
+
}, _TeamsTeamAddCommand_initOptionSets = function _TeamsTeamAddCommand_initOptionSets() {
|
|
159
|
+
this.optionSets.push({
|
|
160
|
+
options: ['name'],
|
|
161
|
+
runsWhen: (args) => {
|
|
162
|
+
return !args.options.template;
|
|
164
163
|
}
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
}, {
|
|
165
|
+
options: ['description'],
|
|
166
|
+
runsWhen: (args) => {
|
|
167
|
+
return !args.options.template;
|
|
168
|
+
}
|
|
169
|
+
});
|
|
167
170
|
};
|
|
168
171
|
module.exports = new TeamsTeamAddCommand();
|
|
169
172
|
//# sourceMappingURL=team-add.js.map
|