@pnp/cli-microsoft365 6.8.0-beta.2463cfa → 6.8.0-beta.74dea8a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/.eslintrc.js +2 -0
  2. package/.mocharc.json +1 -0
  3. package/README.md +6 -1
  4. package/dist/m365/commands/commands.js +1 -0
  5. package/dist/m365/commands/docs.js +42 -0
  6. package/dist/m365/commands/login.js +1 -1
  7. package/dist/m365/pa/commands/app/app-consent-set.js +101 -0
  8. package/dist/m365/pa/commands.js +1 -0
  9. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-get.js +97 -0
  10. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-list.js +85 -0
  11. package/dist/m365/purview/commands/sensitivitylabel/sensitivitylabel-policysettings-list.js +89 -0
  12. package/dist/m365/purview/commands.js +3 -0
  13. package/dist/m365/spo/commands/file/file-checkin.js +8 -3
  14. package/dist/m365/spo/commands/file/file-checkout.js +8 -3
  15. package/dist/m365/spo/commands/file/file-copy.js +4 -4
  16. package/dist/m365/spo/commands/file/file-get.js +3 -1
  17. package/dist/m365/spo/commands/file/file-list.js +17 -6
  18. package/dist/m365/spo/commands/file/file-move.js +6 -7
  19. package/dist/m365/spo/commands/file/file-remove.js +6 -12
  20. package/dist/m365/spo/commands/file/file-rename.js +3 -3
  21. package/dist/m365/spo/commands/file/file-roleassignment-add.js +2 -1
  22. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +3 -3
  23. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +2 -1
  24. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +2 -1
  25. package/dist/m365/spo/commands/file/file-sharinginfo-get.js +4 -2
  26. package/dist/m365/spo/commands/file/file-version-clear.js +3 -1
  27. package/dist/m365/spo/commands/file/file-version-get.js +3 -1
  28. package/dist/m365/spo/commands/file/file-version-remove.js +3 -1
  29. package/dist/m365/spo/commands/file/file-version-restore.js +3 -1
  30. package/dist/m365/spo/commands/folder/folder-copy.js +4 -4
  31. package/dist/m365/spo/commands/folder/folder-get.js +5 -2
  32. package/dist/m365/spo/commands/folder/folder-move.js +3 -2
  33. package/dist/m365/spo/commands/folder/folder-rename.js +5 -2
  34. package/dist/m365/spo/commands/list/list-get.js +30 -3
  35. package/dist/m365/spo/commands/list/list-list.js +39 -2
  36. package/dist/m365/spo/commands/serviceprincipal/serviceprincipal-permissionrequest-list.js +46 -1
  37. package/dist/m365/spo/commands/site/site-recyclebinitem-move.js +119 -0
  38. package/dist/m365/spo/commands/site/site-recyclebinitem-remove.js +106 -0
  39. package/dist/m365/spo/commands/term/term-add.js +13 -4
  40. package/dist/m365/spo/commands/term/term-get.js +14 -5
  41. package/dist/m365/spo/commands/term/term-group-get.js +12 -3
  42. package/dist/m365/spo/commands/term/term-group-list.js +39 -4
  43. package/dist/m365/spo/commands/term/term-list.js +18 -9
  44. package/dist/m365/spo/commands/term/term-set-add.js +13 -4
  45. package/dist/m365/spo/commands/term/term-set-get.js +12 -3
  46. package/dist/m365/spo/commands/term/term-set-list.js +12 -3
  47. package/dist/m365/spo/commands.js +3 -0
  48. package/dist/utils/spo.js +1 -1
  49. package/docs/docs/cmd/aad/o365group/o365group-get.md +0 -12
  50. package/docs/docs/cmd/cli/cli-consent.md +6 -0
  51. package/docs/docs/cmd/cli/cli-doctor.md +17 -0
  52. package/docs/docs/cmd/cli/cli-issue.md +6 -0
  53. package/docs/docs/cmd/cli/cli-reconsent.md +6 -0
  54. package/docs/docs/cmd/cli/completion/completion-sh-setup.md +6 -0
  55. package/docs/docs/cmd/cli/config/config-get.md +6 -0
  56. package/docs/docs/cmd/docs.md +51 -0
  57. package/docs/docs/cmd/login.md +1 -1
  58. package/docs/docs/cmd/pa/app/app-consent-set.md +47 -0
  59. package/docs/docs/cmd/planner/task/task-get.md +0 -6
  60. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-get.md +118 -0
  61. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-list.md +111 -0
  62. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-policysettings-list.md +97 -0
  63. package/docs/docs/cmd/search/externalconnection/externalconnection-get.md +17 -0
  64. package/docs/docs/cmd/search/externalconnection/externalconnection-list.md +17 -0
  65. package/docs/docs/cmd/spo/file/file-add.md +1 -1
  66. package/docs/docs/cmd/spo/file/file-checkin.md +1 -1
  67. package/docs/docs/cmd/spo/file/file-checkout.md +1 -1
  68. package/docs/docs/cmd/spo/file/file-copy.md +1 -1
  69. package/docs/docs/cmd/spo/file/file-get.md +1 -1
  70. package/docs/docs/cmd/spo/file/file-list.md +9 -6
  71. package/docs/docs/cmd/spo/file/file-move.md +3 -3
  72. package/docs/docs/cmd/spo/file/file-remove.md +12 -0
  73. package/docs/docs/cmd/spo/file/file-rename.md +1 -1
  74. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.md +3 -3
  75. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.md +2 -2
  76. package/docs/docs/cmd/spo/file/file-roleassignment-add.md +1 -1
  77. package/docs/docs/cmd/spo/file/file-roleassignment-remove.md +1 -1
  78. package/docs/docs/cmd/spo/file/file-roleinheritance-break.md +1 -1
  79. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.md +1 -1
  80. package/docs/docs/cmd/spo/file/file-sharinginfo-get.md +1 -1
  81. package/docs/docs/cmd/spo/file/file-sharinglink-add.md +1 -1
  82. package/docs/docs/cmd/spo/file/file-sharinglink-clear.md +1 -1
  83. package/docs/docs/cmd/spo/file/file-sharinglink-get.md +1 -1
  84. package/docs/docs/cmd/spo/file/file-sharinglink-list.md +1 -1
  85. package/docs/docs/cmd/spo/file/file-sharinglink-remove.md +1 -1
  86. package/docs/docs/cmd/spo/file/file-sharinglink-set.md +1 -1
  87. package/docs/docs/cmd/spo/file/file-version-clear.md +2 -2
  88. package/docs/docs/cmd/spo/file/file-version-get.md +1 -1
  89. package/docs/docs/cmd/spo/file/file-version-list.md +1 -1
  90. package/docs/docs/cmd/spo/file/file-version-remove.md +1 -1
  91. package/docs/docs/cmd/spo/file/file-version-restore.md +1 -1
  92. package/docs/docs/cmd/spo/folder/folder-add.md +9 -3
  93. package/docs/docs/cmd/spo/folder/folder-copy.md +1 -1
  94. package/docs/docs/cmd/spo/folder/folder-get.md +7 -7
  95. package/docs/docs/cmd/spo/folder/folder-list.md +11 -11
  96. package/docs/docs/cmd/spo/folder/folder-move.md +1 -1
  97. package/docs/docs/cmd/spo/folder/folder-remove.md +7 -7
  98. package/docs/docs/cmd/spo/folder/folder-rename.md +11 -5
  99. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.md +3 -3
  100. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.md +1 -1
  101. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.md +1 -1
  102. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.md +4 -4
  103. package/docs/docs/cmd/spo/list/list-get.md +10 -0
  104. package/docs/docs/cmd/spo/list/list-list.md +28 -0
  105. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.md +19 -0
  106. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-remove.md +12 -0
  107. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-list.md +6 -0
  108. package/docs/docs/cmd/spo/page/page-column-get.md +15 -0
  109. package/docs/docs/cmd/spo/page/page-column-list.md +16 -0
  110. package/docs/docs/cmd/spo/page/page-control-get.md +18 -0
  111. package/docs/docs/cmd/spo/page/page-control-list.md +18 -0
  112. package/docs/docs/cmd/spo/page/page-copy.md +35 -0
  113. package/docs/docs/cmd/spo/page/page-get.md +39 -0
  114. package/docs/docs/cmd/spo/page/page-list.md +53 -0
  115. package/docs/docs/cmd/spo/page/page-section-get.md +12 -0
  116. package/docs/docs/cmd/spo/page/page-section-list.md +13 -0
  117. package/docs/docs/cmd/spo/page/page-template-list.md +31 -0
  118. package/docs/docs/cmd/spo/propertybag/propertybag-get.md +6 -0
  119. package/docs/docs/cmd/spo/propertybag/propertybag-list.md +13 -0
  120. package/docs/docs/cmd/spo/report/report-activityfilecounts.md +7 -0
  121. package/docs/docs/cmd/spo/report/report-activitypages.md +7 -0
  122. package/docs/docs/cmd/spo/report/report-activityusercounts.md +7 -0
  123. package/docs/docs/cmd/spo/report/report-activityuserdetail.md +7 -0
  124. package/docs/docs/cmd/spo/report/report-siteusagedetail.md +7 -0
  125. package/docs/docs/cmd/spo/report/report-siteusagefilecounts.md +7 -0
  126. package/docs/docs/cmd/spo/report/report-siteusagepages.md +7 -0
  127. package/docs/docs/cmd/spo/report/report-siteusagesitecounts.md +7 -0
  128. package/docs/docs/cmd/spo/report/report-siteusagestorage.md +7 -0
  129. package/docs/docs/cmd/spo/roledefinition/roledefinition-get.md +20 -0
  130. package/docs/docs/cmd/spo/roledefinition/roledefinition-list.md +20 -0
  131. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-add.md +20 -0
  132. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-list.md +18 -0
  133. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-approve.md +20 -0
  134. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-list.md +17 -0
  135. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-set.md +13 -0
  136. package/docs/docs/cmd/spo/site/site-recyclebinitem-move.md +43 -0
  137. package/docs/docs/cmd/spo/site/site-recyclebinitem-remove.md +45 -0
  138. package/docs/docs/cmd/spo/term/term-add.md +107 -6
  139. package/docs/docs/cmd/spo/term/term-get.md +111 -10
  140. package/docs/docs/cmd/spo/term/term-group-get.md +71 -5
  141. package/docs/docs/cmd/spo/term/term-group-list.md +70 -2
  142. package/docs/docs/cmd/spo/term/term-list.md +80 -8
  143. package/docs/docs/cmd/spo/term/term-set-add.md +95 -11
  144. package/docs/docs/cmd/spo/term/term-set-get.md +92 -8
  145. package/docs/docs/cmd/spo/term/term-set-list.md +85 -5
  146. package/docs/docs/cmd/teams/app/app-list.md +17 -0
  147. package/docs/docs/cmd/teams/app/app-publish.md +18 -1
  148. package/docs/docs/cmd/teams/channel/channel-add.md +20 -0
  149. package/docs/docs/cmd/teams/channel/channel-get.md +21 -0
  150. package/docs/docs/cmd/teams/channel/channel-list.md +21 -0
  151. package/docs/docs/cmd/teams/channel/channel-member-list.md +20 -0
  152. package/docs/docs/cmd/teams/channel/channel-member-set.md +21 -0
  153. package/docs/docs/cmd/teams/chat/chat-get.md +22 -0
  154. package/docs/docs/cmd/teams/chat/chat-list.md +22 -0
  155. package/docs/docs/cmd/teams/chat/chat-member-list.md +20 -0
  156. package/docs/docs/cmd/teams/chat/chat-message-list.md +23 -0
  157. package/docs/docs/cmd/teams/funsettings/funsettings-list.md +15 -0
  158. package/docs/docs/cmd/teams/guestsettings/guestsettings-list.md +13 -0
  159. package/docs/docs/cmd/teams/membersettings/membersettings-list.md +17 -0
  160. package/npm-shrinkwrap.json +267 -334
  161. package/package.json +12 -12
@@ -46,8 +46,21 @@ class SpoServicePrincipalPermissionRequestListCommand extends SpoCommand_1.defau
46
46
  throw response.ErrorInfo.ErrorMessage;
47
47
  }
48
48
  else {
49
+ let spoWebAppServicePrincipalPermissionRequestResult = [];
49
50
  const result = json[json.length - 1]._Child_Items_;
50
- logger.log(result.map(r => {
51
+ if (result.length > 0) {
52
+ const spoClientExtensibilityWebApplicationPrincipalId = yield this.getSPOClientExtensibilityWebApplicationPrincipalId();
53
+ if (spoClientExtensibilityWebApplicationPrincipalId !== null) {
54
+ const oAuth2PermissionGrants = yield this.getOAuth2PermissionGrants(spoClientExtensibilityWebApplicationPrincipalId);
55
+ if (oAuth2PermissionGrants) {
56
+ spoWebAppServicePrincipalPermissionRequestResult = result.filter(x => oAuth2PermissionGrants.indexOf(x.Scope) === -1);
57
+ }
58
+ }
59
+ }
60
+ if (spoWebAppServicePrincipalPermissionRequestResult.length === 0) {
61
+ spoWebAppServicePrincipalPermissionRequestResult = result;
62
+ }
63
+ logger.log(spoWebAppServicePrincipalPermissionRequestResult.map(r => {
51
64
  return {
52
65
  Id: r.Id.replace('/Guid(', '').replace(')/', ''),
53
66
  Resource: r.Resource,
@@ -62,6 +75,38 @@ class SpoServicePrincipalPermissionRequestListCommand extends SpoCommand_1.defau
62
75
  }
63
76
  });
64
77
  }
78
+ getOAuth2PermissionGrants(spoClientExtensibilityWebApplicationPrincipalId) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const requestOptions = {
81
+ url: `https://graph.microsoft.com/v1.0/oAuth2Permissiongrants/?$filter=clientId eq '${spoClientExtensibilityWebApplicationPrincipalId}' and consentType eq 'AllPrincipals'`,
82
+ headers: {
83
+ accept: 'application/json;odata.metadata=none'
84
+ },
85
+ responseType: 'json'
86
+ };
87
+ const response = yield request_1.default.get(requestOptions);
88
+ if (response.value && response.value.length > 0) {
89
+ return response.value[0].scope.split(' ');
90
+ }
91
+ return null;
92
+ });
93
+ }
94
+ getSPOClientExtensibilityWebApplicationPrincipalId() {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ const requestOptions = {
97
+ url: `https://graph.microsoft.com/v1.0/servicePrincipals/?$filter=displayName eq 'SharePoint Online Client Extensibility Web Application Principal'`,
98
+ headers: {
99
+ accept: 'application/json;odata.metadata=none'
100
+ },
101
+ responseType: 'json'
102
+ };
103
+ const response = yield request_1.default.get(requestOptions);
104
+ if (response.value && response.value.length > 0) {
105
+ return response.value[0].id;
106
+ }
107
+ return null;
108
+ });
109
+ }
65
110
  }
66
111
  module.exports = new SpoServicePrincipalPermissionRequestListCommand();
67
112
  //# sourceMappingURL=serviceprincipal-permissionrequest-list.js.map
@@ -0,0 +1,119 @@
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 _SpoSiteRecycleBinItemMoveCommand_instances, _SpoSiteRecycleBinItemMoveCommand_initTelemetry, _SpoSiteRecycleBinItemMoveCommand_initOptions, _SpoSiteRecycleBinItemMoveCommand_initOptionSets, _SpoSiteRecycleBinItemMoveCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const request_1 = require("../../../../request");
20
+ const validation_1 = require("../../../../utils/validation");
21
+ const SpoCommand_1 = require("../../../base/SpoCommand");
22
+ const commands_1 = require("../../commands");
23
+ class SpoSiteRecycleBinItemMoveCommand extends SpoCommand_1.default {
24
+ get name() {
25
+ return commands_1.default.SITE_RECYCLEBINITEM_MOVE;
26
+ }
27
+ get description() {
28
+ return 'Moves items from the first-stage recycle bin to the second-stage recycle bin';
29
+ }
30
+ constructor() {
31
+ super();
32
+ _SpoSiteRecycleBinItemMoveCommand_instances.add(this);
33
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemMoveCommand_instances, "m", _SpoSiteRecycleBinItemMoveCommand_initTelemetry).call(this);
34
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemMoveCommand_instances, "m", _SpoSiteRecycleBinItemMoveCommand_initOptions).call(this);
35
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemMoveCommand_instances, "m", _SpoSiteRecycleBinItemMoveCommand_initOptionSets).call(this);
36
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemMoveCommand_instances, "m", _SpoSiteRecycleBinItemMoveCommand_initValidators).call(this);
37
+ }
38
+ commandAction(logger, args) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (args.options.confirm) {
41
+ yield this.moveRecycleBinItem(args, logger);
42
+ }
43
+ else {
44
+ const result = yield Cli_1.Cli.prompt({
45
+ type: 'confirm',
46
+ name: 'continue',
47
+ default: false,
48
+ message: 'Are you sure you want to move these items to the second-stage recycle bin?'
49
+ });
50
+ if (result.continue) {
51
+ yield this.moveRecycleBinItem(args, logger);
52
+ }
53
+ }
54
+ });
55
+ }
56
+ moveRecycleBinItem(args, logger) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ try {
59
+ const requestOptions = {
60
+ url: `${args.options.siteUrl}/_api/web/recycleBin/MoveAllToSecondStage`,
61
+ headers: {
62
+ 'accept': 'application/json;odata=nometadata'
63
+ },
64
+ responseType: 'json'
65
+ };
66
+ if (args.options.ids !== undefined) {
67
+ const ids = args.options.ids.split(',');
68
+ if (this.verbose) {
69
+ logger.logToStderr(`Moving ${ids.length} items to the second-stage recycle bin.`);
70
+ }
71
+ requestOptions.data = {
72
+ ids: ids
73
+ };
74
+ }
75
+ else if (this.verbose) {
76
+ logger.logToStderr('Moving all items to the second-stage recycle bin.');
77
+ }
78
+ yield request_1.default.post(requestOptions);
79
+ }
80
+ catch (err) {
81
+ this.handleRejectedODataJsonPromise(err);
82
+ }
83
+ });
84
+ }
85
+ }
86
+ _SpoSiteRecycleBinItemMoveCommand_instances = new WeakSet(), _SpoSiteRecycleBinItemMoveCommand_initTelemetry = function _SpoSiteRecycleBinItemMoveCommand_initTelemetry() {
87
+ this.telemetry.push((args) => {
88
+ Object.assign(this.telemetryProperties, {
89
+ ids: typeof args.options.ids !== 'undefined',
90
+ all: !!args.options.all,
91
+ confirm: !!args.options.confirm
92
+ });
93
+ });
94
+ }, _SpoSiteRecycleBinItemMoveCommand_initOptions = function _SpoSiteRecycleBinItemMoveCommand_initOptions() {
95
+ this.options.unshift({
96
+ option: '-u, --siteUrl <siteUrl>'
97
+ }, {
98
+ option: '-i, --ids [ids]'
99
+ }, {
100
+ option: '--all'
101
+ }, {
102
+ option: '--confirm'
103
+ });
104
+ }, _SpoSiteRecycleBinItemMoveCommand_initOptionSets = function _SpoSiteRecycleBinItemMoveCommand_initOptionSets() {
105
+ this.optionSets.push({ options: ['ids', 'all'] });
106
+ }, _SpoSiteRecycleBinItemMoveCommand_initValidators = function _SpoSiteRecycleBinItemMoveCommand_initValidators() {
107
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
108
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.siteUrl);
109
+ if (isValidSharePointUrl !== true) {
110
+ return isValidSharePointUrl;
111
+ }
112
+ if (args.options.ids && !validation_1.validation.isValidGuidArray(args.options.ids.split(','))) {
113
+ return 'The option ids contains one or more invalid GUIDs';
114
+ }
115
+ return true;
116
+ }));
117
+ };
118
+ module.exports = new SpoSiteRecycleBinItemMoveCommand();
119
+ //# sourceMappingURL=site-recyclebinitem-move.js.map
@@ -0,0 +1,106 @@
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 _SpoSiteRecycleBinItemRemoveCommand_instances, _SpoSiteRecycleBinItemRemoveCommand_initTelemetry, _SpoSiteRecycleBinItemRemoveCommand_initOptions, _SpoSiteRecycleBinItemRemoveCommand_initValidators;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const request_1 = require("../../../../request");
20
+ const validation_1 = require("../../../../utils/validation");
21
+ const SpoCommand_1 = require("../../../base/SpoCommand");
22
+ const commands_1 = require("../../commands");
23
+ class SpoSiteRecycleBinItemRemoveCommand extends SpoCommand_1.default {
24
+ get name() {
25
+ return commands_1.default.SITE_RECYCLEBINITEM_REMOVE;
26
+ }
27
+ get description() {
28
+ return 'Permanently deletes specific items from the site recycle bin';
29
+ }
30
+ constructor() {
31
+ super();
32
+ _SpoSiteRecycleBinItemRemoveCommand_instances.add(this);
33
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRemoveCommand_instances, "m", _SpoSiteRecycleBinItemRemoveCommand_initTelemetry).call(this);
34
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRemoveCommand_instances, "m", _SpoSiteRecycleBinItemRemoveCommand_initOptions).call(this);
35
+ __classPrivateFieldGet(this, _SpoSiteRecycleBinItemRemoveCommand_instances, "m", _SpoSiteRecycleBinItemRemoveCommand_initValidators).call(this);
36
+ }
37
+ commandAction(logger, args) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ if (args.options.confirm) {
40
+ yield this.removeRecycleBinItem(args, logger);
41
+ }
42
+ else {
43
+ const result = yield Cli_1.Cli.prompt({
44
+ type: 'confirm',
45
+ name: 'continue',
46
+ default: false,
47
+ message: `Are you sure you want to permanently delete ${args.options.ids.split(',').length} item(s) from the site recycle bin?`
48
+ });
49
+ if (result.continue) {
50
+ yield this.removeRecycleBinItem(args, logger);
51
+ }
52
+ }
53
+ });
54
+ }
55
+ removeRecycleBinItem(args, logger) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ if (this.verbose) {
58
+ logger.logToStderr(`Permanently deleting items from the site recycle bin at site ${args.options.siteUrl}...`);
59
+ }
60
+ try {
61
+ const requestOptions = {
62
+ url: `${args.options.siteUrl}/_api/site/RecycleBin/DeleteByIds`,
63
+ headers: {
64
+ accept: 'application/json;odata=nometadata'
65
+ },
66
+ responseType: 'json',
67
+ data: {
68
+ ids: args.options.ids.split(',')
69
+ }
70
+ };
71
+ yield request_1.default.post(requestOptions);
72
+ }
73
+ catch (err) {
74
+ this.handleRejectedODataJsonPromise(err);
75
+ }
76
+ });
77
+ }
78
+ }
79
+ _SpoSiteRecycleBinItemRemoveCommand_instances = new WeakSet(), _SpoSiteRecycleBinItemRemoveCommand_initTelemetry = function _SpoSiteRecycleBinItemRemoveCommand_initTelemetry() {
80
+ this.telemetry.push((args) => {
81
+ Object.assign(this.telemetryProperties, {
82
+ confirm: !!args.options.confirm
83
+ });
84
+ });
85
+ }, _SpoSiteRecycleBinItemRemoveCommand_initOptions = function _SpoSiteRecycleBinItemRemoveCommand_initOptions() {
86
+ this.options.unshift({
87
+ option: '-u, --siteUrl <siteUrl>'
88
+ }, {
89
+ option: '-i, --ids <ids>'
90
+ }, {
91
+ option: '--confirm'
92
+ });
93
+ }, _SpoSiteRecycleBinItemRemoveCommand_initValidators = function _SpoSiteRecycleBinItemRemoveCommand_initValidators() {
94
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
95
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.siteUrl);
96
+ if (isValidSharePointUrl !== true) {
97
+ return isValidSharePointUrl;
98
+ }
99
+ if (!validation_1.validation.isValidGuidArray(args.options.ids.split(','))) {
100
+ return 'The option ids contains one or more invalid GUIDs.';
101
+ }
102
+ return true;
103
+ }));
104
+ };
105
+ module.exports = new SpoSiteRecycleBinItemRemoveCommand();
106
+ //# sourceMappingURL=site-recyclebinitem-remove.js.map
@@ -43,8 +43,8 @@ class SpoTermAddCommand extends SpoCommand_1.default {
43
43
  let term;
44
44
  let formDigest;
45
45
  try {
46
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
47
- const res = yield spo_1.spo.getRequestDigest(spoAdminUrl);
46
+ const spoWebUrl = args.options.webUrl ? args.options.webUrl : yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
47
+ const res = yield spo_1.spo.getRequestDigest(spoWebUrl);
48
48
  formDigest = res.FormDigestValue;
49
49
  if (this.verbose) {
50
50
  logger.logToStderr(`Adding taxonomy term...`);
@@ -58,7 +58,7 @@ class SpoTermAddCommand extends SpoCommand_1.default {
58
58
  const termId = args.options.id || (0, uuid_1.v4)();
59
59
  const data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="4" ObjectPathId="3" /><ObjectIdentityQuery Id="5" ObjectPathId="3" /><ObjectPath Id="7" ObjectPathId="6" /><ObjectIdentityQuery Id="8" ObjectPathId="6" /><ObjectPath Id="10" ObjectPathId="9" /><ObjectPath Id="12" ObjectPathId="11" /><ObjectIdentityQuery Id="13" ObjectPathId="11" /><ObjectPath Id="15" ObjectPathId="14" /><ObjectPath Id="17" ObjectPathId="16" /><ObjectIdentityQuery Id="18" ObjectPathId="16" /><ObjectPath Id="20" ObjectPathId="19" /><ObjectIdentityQuery Id="21" ObjectPathId="19" /><Query Id="22" ObjectPathId="19"><Query SelectAllProperties="true"><Properties /></Query></Query></Actions><ObjectPaths><StaticMethod Id="3" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="6" ParentId="3" Name="GetDefaultSiteCollectionTermStore" /><Property Id="9" ParentId="6" Name="Groups" />${termGroupQuery}<Property Id="14" ParentId="11" Name="TermSets" />${termParentQuery}<Method Id="19" ParentId="16" Name="CreateTerm"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.name)}</Parameter><Parameter Type="Int32">1033</Parameter><Parameter Type="Guid">{${termId}}</Parameter></Parameters></Method></ObjectPaths></Request>`;
60
60
  const requestOptionsPost = {
61
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
61
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
62
62
  headers: {
63
63
  'X-RequestDigest': res.FormDigestValue
64
64
  },
@@ -108,7 +108,7 @@ class SpoTermAddCommand extends SpoCommand_1.default {
108
108
  break;
109
109
  }
110
110
  const requestOptions = {
111
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
111
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
112
112
  headers: {
113
113
  'X-RequestDigest': formDigest
114
114
  },
@@ -139,6 +139,7 @@ class SpoTermAddCommand extends SpoCommand_1.default {
139
139
  _SpoTermAddCommand_instances = new WeakSet(), _SpoTermAddCommand_initTelemetry = function _SpoTermAddCommand_initTelemetry() {
140
140
  this.telemetry.push((args) => {
141
141
  Object.assign(this.telemetryProperties, {
142
+ webUrl: typeof args.options.webUrl !== 'undefined',
142
143
  customProperties: typeof args.options.customProperties !== 'undefined',
143
144
  description: typeof args.options.description !== 'undefined',
144
145
  id: typeof args.options.id !== 'undefined',
@@ -153,6 +154,8 @@ _SpoTermAddCommand_instances = new WeakSet(), _SpoTermAddCommand_initTelemetry =
153
154
  }, _SpoTermAddCommand_initOptions = function _SpoTermAddCommand_initOptions() {
154
155
  this.options.unshift({
155
156
  option: '-n, --name <name>'
157
+ }, {
158
+ option: '-u, --webUrl [webUrl]'
156
159
  }, {
157
160
  option: '--termSetId [termSetId]'
158
161
  }, {
@@ -174,6 +177,12 @@ _SpoTermAddCommand_instances = new WeakSet(), _SpoTermAddCommand_initTelemetry =
174
177
  });
175
178
  }, _SpoTermAddCommand_initValidators = function _SpoTermAddCommand_initValidators() {
176
179
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
180
+ if (args.options.webUrl) {
181
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
182
+ if (isValidSharePointUrl !== true) {
183
+ return isValidSharePointUrl;
184
+ }
185
+ }
177
186
  if (args.options.id) {
178
187
  if (!validation_1.validation.isValidGuid(args.options.id)) {
179
188
  return `${args.options.id} is not a valid GUID`;
@@ -41,8 +41,8 @@ class SpoTermGetCommand extends SpoCommand_1.default {
41
41
  commandAction(logger, args) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
43
  try {
44
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
45
- const res = yield spo_1.spo.getRequestDigest(spoAdminUrl);
44
+ const spoWebUrl = args.options.webUrl ? args.options.webUrl : yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
45
+ const res = yield spo_1.spo.getRequestDigest(spoWebUrl);
46
46
  if (this.verbose) {
47
47
  logger.logToStderr(`Retrieving taxonomy term...`);
48
48
  }
@@ -54,7 +54,7 @@ class SpoTermGetCommand extends SpoCommand_1.default {
54
54
  data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="2" ObjectPathId="1" /><ObjectIdentityQuery Id="3" ObjectPathId="1" /><ObjectPath Id="5" ObjectPathId="4" /><ObjectIdentityQuery Id="6" ObjectPathId="4" /><ObjectPath Id="8" ObjectPathId="7" /><ObjectPath Id="10" ObjectPathId="9" /><ObjectIdentityQuery Id="11" ObjectPathId="9" /><ObjectPath Id="13" ObjectPathId="12" /><ObjectPath Id="15" ObjectPathId="14" /><ObjectIdentityQuery Id="16" ObjectPathId="14" /><ObjectPath Id="18" ObjectPathId="17" /><SetProperty Id="19" ObjectPathId="17" Name="TrimUnavailable"><Parameter Type="Boolean">true</Parameter></SetProperty><SetProperty Id="20" ObjectPathId="17" Name="TermLabel"><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.name)}</Parameter></SetProperty><ObjectPath Id="22" ObjectPathId="21" /><Query Id="23" ObjectPathId="21"><Query SelectAllProperties="true"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties /></ChildItemQuery></Query></Actions><ObjectPaths><StaticMethod Id="1" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="4" ParentId="1" Name="GetDefaultSiteCollectionTermStore" /><Property Id="7" ParentId="4" Name="Groups" /><Method Id="9" ParentId="7" Name="${args.options.termGroupName === undefined ? "GetById" : "GetByName"}"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termGroupName) || args.options.termGroupId}</Parameter></Parameters></Method><Property Id="12" ParentId="9" Name="TermSets" /><Method Id="14" ParentId="12" Name="${args.options.termSetName === undefined ? "GetById" : "GetByName"}"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termSetName) || args.options.termSetId}</Parameter></Parameters></Method><Constructor Id="17" TypeId="{61a1d689-2744-4ea3-a88b-c95bee9803aa}" /><Method Id="21" ParentId="14" Name="GetTerms"><Parameters><Parameter ObjectPathId="17" /></Parameters></Method></ObjectPaths></Request>`;
55
55
  }
56
56
  let term;
57
- const csomResponse = yield this.executeCsomCall(data, spoAdminUrl, res);
57
+ const csomResponse = yield this.executeCsomCall(data, spoWebUrl, res);
58
58
  if (csomResponse === null) {
59
59
  throw `Term with id '${args.options.id}' could not be found.`;
60
60
  }
@@ -86,10 +86,10 @@ class SpoTermGetCommand extends SpoCommand_1.default {
86
86
  }
87
87
  });
88
88
  }
89
- executeCsomCall(data, spoAdminUrl, res) {
89
+ executeCsomCall(data, spoWebUrl, res) {
90
90
  return __awaiter(this, void 0, void 0, function* () {
91
91
  const requestOptions = {
92
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
92
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
93
93
  headers: {
94
94
  'X-RequestDigest': res.FormDigestValue
95
95
  },
@@ -115,6 +115,7 @@ class SpoTermGetCommand extends SpoCommand_1.default {
115
115
  _SpoTermGetCommand_instances = new WeakSet(), _SpoTermGetCommand_initTelemetry = function _SpoTermGetCommand_initTelemetry() {
116
116
  this.telemetry.push((args) => {
117
117
  Object.assign(this.telemetryProperties, {
118
+ webUrl: typeof args.options.webUrl !== 'undefined',
118
119
  id: typeof args.options.id !== 'undefined',
119
120
  name: typeof args.options.name !== 'undefined',
120
121
  termGroupId: typeof args.options.termGroupId !== 'undefined',
@@ -125,6 +126,8 @@ _SpoTermGetCommand_instances = new WeakSet(), _SpoTermGetCommand_initTelemetry =
125
126
  });
126
127
  }, _SpoTermGetCommand_initOptions = function _SpoTermGetCommand_initOptions() {
127
128
  this.options.unshift({
129
+ option: '-u, --webUrl [webUrl]'
130
+ }, {
128
131
  option: '-i, --id [id]'
129
132
  }, {
130
133
  option: '-n, --name [name]'
@@ -139,6 +142,12 @@ _SpoTermGetCommand_instances = new WeakSet(), _SpoTermGetCommand_initTelemetry =
139
142
  });
140
143
  }, _SpoTermGetCommand_initValidators = function _SpoTermGetCommand_initValidators() {
141
144
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
145
+ if (args.options.webUrl) {
146
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
147
+ if (isValidSharePointUrl !== true) {
148
+ return isValidSharePointUrl;
149
+ }
150
+ }
142
151
  if (args.options.id && !validation_1.validation.isValidGuid(args.options.id)) {
143
152
  return `${args.options.id} is not a valid GUID`;
144
153
  }
@@ -40,14 +40,14 @@ class SpoTermGroupGetCommand extends SpoCommand_1.default {
40
40
  commandAction(logger, args) {
41
41
  return __awaiter(this, void 0, void 0, function* () {
42
42
  try {
43
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
44
- const res = yield spo_1.spo.getRequestDigest(spoAdminUrl);
43
+ const spoWebUrl = args.options.webUrl ? args.options.webUrl : yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
44
+ const res = yield spo_1.spo.getRequestDigest(spoWebUrl);
45
45
  if (this.verbose) {
46
46
  logger.logToStderr(`Retrieving taxonomy term groups...`);
47
47
  }
48
48
  const query = args.options.id ? `<Method Id="32" ParentId="30" Name="GetById"><Parameters><Parameter Type="Guid">{${formatting_1.formatting.escapeXml(args.options.id)}}</Parameter></Parameters></Method>` : `<Method Id="32" ParentId="30" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.name)}</Parameter></Parameters></Method>`;
49
49
  const requestOptions = {
50
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
50
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
51
51
  headers: {
52
52
  'X-RequestDigest': res.FormDigestValue
53
53
  },
@@ -76,18 +76,27 @@ class SpoTermGroupGetCommand extends SpoCommand_1.default {
76
76
  _SpoTermGroupGetCommand_instances = new WeakSet(), _SpoTermGroupGetCommand_initTelemetry = function _SpoTermGroupGetCommand_initTelemetry() {
77
77
  this.telemetry.push((args) => {
78
78
  Object.assign(this.telemetryProperties, {
79
+ webUrl: typeof args.options.webUrl !== 'undefined',
79
80
  id: typeof args.options.id !== 'undefined',
80
81
  name: typeof args.options.name !== 'undefined'
81
82
  });
82
83
  });
83
84
  }, _SpoTermGroupGetCommand_initOptions = function _SpoTermGroupGetCommand_initOptions() {
84
85
  this.options.unshift({
86
+ option: '-u, --webUrl [webUrl]'
87
+ }, {
85
88
  option: '-i, --id [id]'
86
89
  }, {
87
90
  option: '-n, --name [name]'
88
91
  });
89
92
  }, _SpoTermGroupGetCommand_initValidators = function _SpoTermGroupGetCommand_initValidators() {
90
93
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
94
+ if (args.options.webUrl) {
95
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
96
+ if (isValidSharePointUrl !== true) {
97
+ return isValidSharePointUrl;
98
+ }
99
+ }
91
100
  if (args.options.id) {
92
101
  if (!validation_1.validation.isValidGuid(args.options.id)) {
93
102
  return `${args.options.id} is not a valid GUID`;
@@ -8,10 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
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 _SpoTermGroupListCommand_instances, _SpoTermGroupListCommand_initTelemetry, _SpoTermGroupListCommand_initOptions, _SpoTermGroupListCommand_initValidators;
11
17
  Object.defineProperty(exports, "__esModule", { value: true });
12
18
  const config_1 = require("../../../../config");
13
19
  const request_1 = require("../../../../request");
14
20
  const spo_1 = require("../../../../utils/spo");
21
+ const validation_1 = require("../../../../utils/validation");
15
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
16
23
  const commands_1 = require("../../commands");
17
24
  class SpoTermGroupListCommand extends SpoCommand_1.default {
@@ -24,16 +31,23 @@ class SpoTermGroupListCommand extends SpoCommand_1.default {
24
31
  defaultProperties() {
25
32
  return ['Id', 'Name'];
26
33
  }
27
- commandAction(logger) {
34
+ constructor() {
35
+ super();
36
+ _SpoTermGroupListCommand_instances.add(this);
37
+ __classPrivateFieldGet(this, _SpoTermGroupListCommand_instances, "m", _SpoTermGroupListCommand_initTelemetry).call(this);
38
+ __classPrivateFieldGet(this, _SpoTermGroupListCommand_instances, "m", _SpoTermGroupListCommand_initOptions).call(this);
39
+ __classPrivateFieldGet(this, _SpoTermGroupListCommand_instances, "m", _SpoTermGroupListCommand_initValidators).call(this);
40
+ }
41
+ commandAction(logger, args) {
28
42
  return __awaiter(this, void 0, void 0, function* () {
29
43
  try {
30
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
31
- const res = yield spo_1.spo.getRequestDigest(spoAdminUrl);
44
+ const spoWebUrl = args.options.webUrl ? args.options.webUrl : yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
45
+ const res = yield spo_1.spo.getRequestDigest(spoWebUrl);
32
46
  if (this.verbose) {
33
47
  logger.logToStderr(`Retrieving taxonomy term groups...`);
34
48
  }
35
49
  const requestOptions = {
36
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
50
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
37
51
  headers: {
38
52
  'X-RequestDigest': res.FormDigestValue
39
53
  },
@@ -61,5 +75,26 @@ class SpoTermGroupListCommand extends SpoCommand_1.default {
61
75
  });
62
76
  }
63
77
  }
78
+ _SpoTermGroupListCommand_instances = new WeakSet(), _SpoTermGroupListCommand_initTelemetry = function _SpoTermGroupListCommand_initTelemetry() {
79
+ this.telemetry.push((args) => {
80
+ Object.assign(this.telemetryProperties, {
81
+ webUrl: typeof args.options.webUrl !== 'undefined'
82
+ });
83
+ });
84
+ }, _SpoTermGroupListCommand_initOptions = function _SpoTermGroupListCommand_initOptions() {
85
+ this.options.unshift({
86
+ option: '-u, --webUrl [webUrl]'
87
+ });
88
+ }, _SpoTermGroupListCommand_initValidators = function _SpoTermGroupListCommand_initValidators() {
89
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
90
+ if (args.options.webUrl) {
91
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
92
+ if (isValidSharePointUrl !== true) {
93
+ return isValidSharePointUrl;
94
+ }
95
+ }
96
+ return true;
97
+ }));
98
+ };
64
99
  module.exports = new SpoTermGroupListCommand();
65
100
  //# sourceMappingURL=term-group-list.js.map
@@ -44,22 +44,22 @@ class SpoTermListCommand extends SpoCommand_1.default {
44
44
  commandAction(logger, args) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  try {
47
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
48
- const res = yield spo_1.spo.getRequestDigest(spoAdminUrl);
47
+ const spoWebUrl = args.options.webUrl ? args.options.webUrl : yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
48
+ const res = yield spo_1.spo.getRequestDigest(spoWebUrl);
49
49
  if (this.verbose) {
50
50
  logger.logToStderr(`Retrieving taxonomy term sets...`);
51
51
  }
52
52
  const termGroupQuery = args.options.termGroupId ? `<Method Id="77" ParentId="75" Name="GetById"><Parameters><Parameter Type="Guid">{${args.options.termGroupId}}</Parameter></Parameters></Method>` : `<Method Id="77" ParentId="75" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termGroupName)}</Parameter></Parameters></Method>`;
53
53
  const termSetQuery = args.options.termSetId ? `<Method Id="82" ParentId="80" Name="GetById"><Parameters><Parameter Type="Guid">{${args.options.termSetId}}</Parameter></Parameters></Method>` : `<Method Id="82" ParentId="80" Name="GetByName"><Parameters><Parameter Type="String">${formatting_1.formatting.escapeXml(args.options.termSetName)}</Parameter></Parameters></Method>`;
54
54
  const data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="70" ObjectPathId="69" /><ObjectIdentityQuery Id="71" ObjectPathId="69" /><ObjectPath Id="73" ObjectPathId="72" /><ObjectIdentityQuery Id="74" ObjectPathId="72" /><ObjectPath Id="76" ObjectPathId="75" /><ObjectPath Id="78" ObjectPathId="77" /><ObjectIdentityQuery Id="79" ObjectPathId="77" /><ObjectPath Id="81" ObjectPathId="80" /><ObjectPath Id="83" ObjectPathId="82" /><ObjectIdentityQuery Id="84" ObjectPathId="82" /><ObjectPath Id="86" ObjectPathId="85" /><Query Id="87" ObjectPathId="85"><Query SelectAllProperties="false"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties><Property Name="Name" ScalarProperty="true" /><Property Name="Id" ScalarProperty="true" /></Properties></ChildItemQuery></Query></Actions><ObjectPaths><StaticMethod Id="69" Name="GetTaxonomySession" TypeId="{981cbc68-9edc-4f8d-872f-71146fcbb84f}" /><Method Id="72" ParentId="69" Name="GetDefaultSiteCollectionTermStore" /><Property Id="75" ParentId="72" Name="Groups" />${termGroupQuery}<Property Id="80" ParentId="77" Name="TermSets" />${termSetQuery}<Property Id="85" ParentId="82" Name="Terms" /></ObjectPaths></Request>`;
55
- const result = yield this.executeCsomCall(data, spoAdminUrl, res);
55
+ const result = yield this.executeCsomCall(data, spoWebUrl, res);
56
56
  const terms = [];
57
57
  if (result._Child_Items_ && result._Child_Items_.length > 0) {
58
58
  for (const term of result._Child_Items_) {
59
59
  this.setTermDetails(term);
60
60
  terms.push(term);
61
61
  if (args.options.includeChildTerms && term.TermsCount > 0) {
62
- yield this.getChildTerms(spoAdminUrl, res, term);
62
+ yield this.getChildTerms(spoWebUrl, res, term);
63
63
  }
64
64
  }
65
65
  }
@@ -108,17 +108,17 @@ class SpoTermListCommand extends SpoCommand_1.default {
108
108
  }
109
109
  });
110
110
  }
111
- getChildTerms(spoAdminUrl, res, parentTerm) {
111
+ getChildTerms(spoWebUrl, res, parentTerm) {
112
112
  return __awaiter(this, void 0, void 0, function* () {
113
113
  parentTerm.Children = [];
114
114
  const data = `<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName="${config_1.default.applicationName}" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions><ObjectPath Id="20" ObjectPathId="19" /><Query Id="21" ObjectPathId="19"><Query SelectAllProperties="false"><Properties /></Query><ChildItemQuery SelectAllProperties="true"><Properties><Property Name="CustomSortOrder" ScalarProperty="true" /><Property Name="CustomProperties" ScalarProperty="true" /><Property Name="LocalCustomProperties" ScalarProperty="true" /></Properties></ChildItemQuery></Query></Actions><ObjectPaths><Property Id="19" ParentId="16" Name="Terms" /><Identity Id="16" Name="${parentTerm._ObjectIdentity_}" /></ObjectPaths></Request>`;
115
- const result = yield this.executeCsomCall(data, spoAdminUrl, res);
115
+ const result = yield this.executeCsomCall(data, spoWebUrl, res);
116
116
  if (result._Child_Items_ && result._Child_Items_.length > 0) {
117
117
  for (const term of result._Child_Items_) {
118
118
  this.setTermDetails(term);
119
119
  parentTerm.Children.push(term);
120
120
  if (term.TermsCount > 0) {
121
- yield this.getChildTerms(spoAdminUrl, res, term);
121
+ yield this.getChildTerms(spoWebUrl, res, term);
122
122
  }
123
123
  }
124
124
  }
@@ -132,10 +132,10 @@ class SpoTermListCommand extends SpoCommand_1.default {
132
132
  parseTermDateToIsoString(dateAsString) {
133
133
  return new Date(Number(dateAsString.replace('/Date(', '').replace(')/', ''))).toISOString();
134
134
  }
135
- executeCsomCall(data, spoAdminUrl, res) {
135
+ executeCsomCall(data, spoWebUrl, res) {
136
136
  return __awaiter(this, void 0, void 0, function* () {
137
137
  const requestOptions = {
138
- url: `${spoAdminUrl}/_vti_bin/client.svc/ProcessQuery`,
138
+ url: `${spoWebUrl}/_vti_bin/client.svc/ProcessQuery`,
139
139
  headers: {
140
140
  'X-RequestDigest': res.FormDigestValue
141
141
  },
@@ -154,6 +154,7 @@ class SpoTermListCommand extends SpoCommand_1.default {
154
154
  _SpoTermListCommand_instances = new WeakSet(), _SpoTermListCommand_initTelemetry = function _SpoTermListCommand_initTelemetry() {
155
155
  this.telemetry.push((args) => {
156
156
  Object.assign(this.telemetryProperties, {
157
+ webUrl: typeof args.options.webUrl !== 'undefined',
157
158
  termGroupId: typeof args.options.termGroupId !== 'undefined',
158
159
  termGroupName: typeof args.options.termGroupName !== 'undefined',
159
160
  termSetId: typeof args.options.termSetId !== 'undefined',
@@ -163,6 +164,8 @@ _SpoTermListCommand_instances = new WeakSet(), _SpoTermListCommand_initTelemetry
163
164
  });
164
165
  }, _SpoTermListCommand_initOptions = function _SpoTermListCommand_initOptions() {
165
166
  this.options.unshift({
167
+ option: '-u, --webUrl [webUrl]'
168
+ }, {
166
169
  option: '--termGroupId [termGroupId]'
167
170
  }, {
168
171
  option: '--termGroupName [termGroupName]'
@@ -175,6 +178,12 @@ _SpoTermListCommand_instances = new WeakSet(), _SpoTermListCommand_initTelemetry
175
178
  });
176
179
  }, _SpoTermListCommand_initValidators = function _SpoTermListCommand_initValidators() {
177
180
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
181
+ if (args.options.webUrl) {
182
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
183
+ if (isValidSharePointUrl !== true) {
184
+ return isValidSharePointUrl;
185
+ }
186
+ }
178
187
  if (args.options.termGroupId && !validation_1.validation.isValidGuid(args.options.termGroupId)) {
179
188
  return `${args.options.termGroupId} is not a valid GUID`;
180
189
  }