@pnp/cli-microsoft365 6.9.0-beta.91abae4 → 6.9.0-beta.d8f63d2

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 (200) hide show
  1. package/dist/cli/Cli.js +16 -0
  2. package/dist/m365/aad/commands/app/app-add.js +258 -249
  3. package/dist/m365/aad/commands/app/app-get.js +65 -62
  4. package/dist/m365/aad/commands/app/app-remove.js +22 -23
  5. package/dist/m365/aad/commands/app/app-role-add.js +35 -34
  6. package/dist/m365/aad/commands/app/app-role-list.js +22 -23
  7. package/dist/m365/aad/commands/app/app-role-remove.js +76 -73
  8. package/dist/m365/aad/commands/app/app-set.js +103 -103
  9. package/dist/m365/aad/commands/approleassignment/approleassignment-add.js +16 -14
  10. package/dist/m365/aad/commands/approleassignment/approleassignment-list.js +43 -52
  11. package/dist/m365/aad/commands/approleassignment/approleassignment-remove.js +20 -16
  12. package/dist/m365/aad/commands/o365group/o365group-add.js +40 -37
  13. package/dist/m365/aad/commands/o365group/o365group-conversation-post-list.js +7 -6
  14. package/dist/m365/aad/commands/o365group/o365group-list.js +6 -11
  15. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-clear.js +7 -8
  16. package/dist/m365/aad/commands/o365group/o365group-recyclebinitem-restore.js +23 -24
  17. package/dist/m365/aad/commands/o365group/o365group-set.js +15 -20
  18. package/dist/m365/aad/commands/o365group/o365group-teamify.js +15 -16
  19. package/dist/m365/aad/commands/o365group/o365group-user-list.js +17 -10
  20. package/dist/m365/aad/commands/o365group/o365group-user-set.js +17 -10
  21. package/dist/m365/aad/commands/policy/policy-list.js +12 -13
  22. package/dist/m365/aad/commands/siteclassification/siteclassification-enable.js +1 -3
  23. package/dist/m365/aad/commands/siteclassification/siteclassification-set.js +19 -20
  24. package/dist/m365/aad/commands/sp/sp-add.js +22 -23
  25. package/dist/m365/aad/commands/sp/sp-get.js +22 -23
  26. package/dist/m365/cli/commands/config/config-set.js +1 -0
  27. package/dist/m365/commands/login.js +20 -0
  28. package/dist/m365/file/commands/convert/convert-pdf.js +147 -143
  29. package/dist/m365/file/commands/file-add.js +87 -93
  30. package/dist/m365/file/commands/file-list.js +49 -55
  31. package/dist/m365/flow/commands/flow-remove.js +2 -3
  32. package/dist/m365/flow/commands/run/run-resubmit.js +11 -10
  33. package/dist/m365/onedrive/commands/onedrive-list.js +21 -32
  34. package/dist/m365/outlook/commands/message/message-list.js +18 -23
  35. package/dist/m365/outlook/commands/message/message-move.js +15 -20
  36. package/dist/m365/pa/commands/app/app-export.js +3 -4
  37. package/dist/m365/pa/commands/app/app-get.js +11 -9
  38. package/dist/m365/pa/commands/app/app-remove.js +1 -1
  39. package/dist/m365/pa/commands/pcf/pcf-init.js +1 -2
  40. package/dist/m365/pa/commands/solution/solution-init.js +1 -2
  41. package/dist/m365/pa/commands/solution/solution-reference-add.js +1 -2
  42. package/dist/m365/planner/commands/bucket/bucket-add.js +15 -13
  43. package/dist/m365/planner/commands/bucket/bucket-get.js +27 -28
  44. package/dist/m365/planner/commands/bucket/bucket-list.js +15 -13
  45. package/dist/m365/planner/commands/bucket/bucket-remove.js +33 -34
  46. package/dist/m365/planner/commands/bucket/bucket-set.js +33 -34
  47. package/dist/m365/planner/commands/plan/plan-add.js +49 -52
  48. package/dist/m365/planner/commands/plan/plan-set.js +19 -20
  49. package/dist/m365/planner/commands/task/task-add.js +75 -78
  50. package/dist/m365/planner/commands/task/task-checklistitem-add.js +11 -10
  51. package/dist/m365/planner/commands/task/task-checklistitem-remove.js +10 -8
  52. package/dist/m365/planner/commands/task/task-get.js +53 -56
  53. package/dist/m365/planner/commands/task/task-list.js +23 -24
  54. package/dist/m365/planner/commands/task/task-reference-add.js +11 -10
  55. package/dist/m365/planner/commands/task/task-reference-remove.js +13 -14
  56. package/dist/m365/planner/commands/task/task-remove.js +44 -48
  57. package/dist/m365/planner/commands/task/task-set.js +83 -87
  58. package/dist/m365/pp/commands/card/card-get.js +6 -1
  59. package/dist/m365/purview/commands/retentionevent/retentionevent-add.js +0 -5
  60. package/dist/m365/purview/commands/retentionevent/retentionevent-get.js +0 -5
  61. package/dist/m365/purview/commands/retentionevent/retentionevent-list.js +0 -5
  62. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +0 -5
  63. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-add.js +0 -5
  64. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-get.js +0 -5
  65. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +0 -5
  66. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +0 -5
  67. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-set.js +0 -5
  68. package/dist/m365/purview/commands/retentionlabel/retentionlabel-add.js +0 -5
  69. package/dist/m365/purview/commands/retentionlabel/retentionlabel-get.js +0 -5
  70. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +0 -5
  71. package/dist/m365/purview/commands/retentionlabel/retentionlabel-remove.js +19 -22
  72. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +0 -5
  73. package/dist/m365/spfx/commands/project/JsonRule.js +1 -1
  74. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN021003_PKG_engines_node.js +1 -0
  75. package/dist/m365/spo/commands/app/app-teamspackage-download.js +17 -24
  76. package/dist/m365/spo/commands/applicationcustomizer/applicationcustomizer-set.js +154 -0
  77. package/dist/m365/spo/commands/commandset/commandset-set.js +11 -2
  78. package/dist/m365/spo/commands/file/file-checkout-undo.js +119 -0
  79. package/dist/m365/spo/commands/homesite/homesite-remove.js +1 -1
  80. package/dist/m365/spo/commands/list/list-sensitivitylabel-ensure.js +127 -0
  81. package/dist/m365/spo/commands/navigation/navigation-node-add.js +31 -1
  82. package/dist/m365/spo/commands/navigation/navigation-node-set.js +31 -2
  83. package/dist/m365/{teams/Message.js → spo/commands/tenant/Solution.js} +1 -1
  84. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +156 -0
  85. package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +215 -0
  86. package/dist/m365/spo/commands/tenant/tenant-commandset-get.js +114 -0
  87. package/dist/m365/spo/commands/tenant/tenant-commandset-list.js +50 -0
  88. package/dist/m365/spo/commands/tenant/tenant-commandset-set.js +1 -1
  89. package/dist/m365/spo/commands.js +7 -0
  90. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +10 -7
  91. package/dist/settingsNames.js +1 -0
  92. package/dist/utils/md.js +1 -3
  93. package/dist/utils/spo.js +60 -0
  94. package/docs/docs/cmd/aad/app/app-add.mdx +113 -0
  95. package/docs/docs/cmd/aad/app/app-get.mdx +217 -0
  96. package/docs/docs/cmd/aad/app/app-list.mdx +21 -0
  97. package/docs/docs/cmd/aad/app/app-role-add.mdx +4 -0
  98. package/docs/docs/cmd/aad/app/app-role-list.mdx +63 -0
  99. package/docs/docs/cmd/aad/app/app-role-remove.mdx +4 -0
  100. package/docs/docs/cmd/aad/app/app-set.mdx +4 -0
  101. package/docs/docs/cmd/aad/approleassignment/approleassignment-add.mdx +61 -0
  102. package/docs/docs/cmd/aad/approleassignment/approleassignment-list.mdx +59 -0
  103. package/docs/docs/cmd/aad/approleassignment/approleassignment-remove.mdx +4 -0
  104. package/docs/docs/cmd/aad/group/group-get.mdx +24 -0
  105. package/docs/docs/cmd/aad/group/group-list.mdx +98 -0
  106. package/docs/docs/cmd/aad/groupsetting/groupsetting-add.mdx +114 -0
  107. package/docs/docs/cmd/aad/groupsetting/groupsetting-get.mdx +115 -0
  108. package/docs/docs/cmd/aad/groupsetting/groupsetting-list.mdx +115 -0
  109. package/docs/docs/cmd/aad/groupsetting/groupsetting-remove.mdx +4 -0
  110. package/docs/docs/cmd/aad/groupsetting/groupsetting-set.mdx +4 -0
  111. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-get.mdx +63 -0
  112. package/docs/docs/cmd/aad/groupsettingtemplate/groupsettingtemplate-list.mdx +63 -0
  113. package/docs/docs/cmd/aad/o365group/o365group-add.mdx +122 -0
  114. package/docs/docs/cmd/aad/o365group/o365group-conversation-list.mdx +68 -0
  115. package/docs/docs/cmd/aad/o365group/o365group-conversation-post-list.mdx +77 -0
  116. package/docs/docs/cmd/aad/o365group/o365group-get.mdx +122 -0
  117. package/docs/docs/cmd/aad/o365group/o365group-list.mdx +99 -0
  118. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-clear.mdx +4 -0
  119. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-list.mdx +96 -0
  120. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-remove.mdx +4 -0
  121. package/docs/docs/cmd/aad/o365group/o365group-recyclebinitem-restore.mdx +4 -0
  122. package/docs/docs/cmd/aad/o365group/o365group-remove.mdx +4 -0
  123. package/docs/docs/cmd/aad/o365group/o365group-renew.mdx +4 -0
  124. package/docs/docs/cmd/aad/o365group/o365group-report-activitycounts.mdx +48 -0
  125. package/docs/docs/cmd/aad/o365group/o365group-report-activitydetail.mdx +60 -0
  126. package/docs/docs/cmd/aad/o365group/o365group-report-activityfilecounts.mdx +46 -0
  127. package/docs/docs/cmd/aad/o365group/o365group-report-activitygroupcounts.mdx +46 -0
  128. package/docs/docs/cmd/aad/o365group/o365group-report-activitystorage.mdx +46 -0
  129. package/docs/docs/cmd/aad/o365group/o365group-set.mdx +4 -0
  130. package/docs/docs/cmd/aad/o365group/o365group-teamify.mdx +4 -0
  131. package/docs/docs/cmd/aad/o365group/o365group-user-add.mdx +4 -0
  132. package/docs/docs/cmd/aad/o365group/o365group-user-list.mdx +56 -0
  133. package/docs/docs/cmd/aad/o365group/o365group-user-remove.mdx +4 -0
  134. package/docs/docs/cmd/aad/o365group/o365group-user-set.mdx +8 -4
  135. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-add.mdx +4 -0
  136. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-list.mdx +59 -0
  137. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-remove.mdx +4 -0
  138. package/docs/docs/cmd/aad/oauth2grant/oauth2grant-set.mdx +4 -0
  139. package/docs/docs/cmd/aad/policy/policy-list.mdx +77 -0
  140. package/docs/docs/cmd/aad/siteclassification/siteclassification-disable.mdx +4 -0
  141. package/docs/docs/cmd/aad/siteclassification/siteclassification-enable.mdx +4 -0
  142. package/docs/docs/cmd/aad/siteclassification/siteclassification-get.mdx +57 -0
  143. package/docs/docs/cmd/aad/siteclassification/siteclassification-set.mdx +4 -0
  144. package/docs/docs/cmd/aad/sp/sp-add.mdx +136 -0
  145. package/docs/docs/cmd/aad/sp/sp-get.mdx +166 -0
  146. package/docs/docs/cmd/aad/user/user-get.mdx +75 -0
  147. package/docs/docs/cmd/aad/user/user-guest-add.mdx +23 -0
  148. package/docs/docs/cmd/aad/user/user-hibp.mdx +82 -0
  149. package/docs/docs/cmd/aad/user/user-license-add.mdx +2 -2
  150. package/docs/docs/cmd/aad/user/user-license-remove.mdx +2 -2
  151. package/docs/docs/cmd/aad/user/user-list.mdx +52 -0
  152. package/docs/docs/cmd/aad/user/user-password-validate.mdx +67 -0
  153. package/docs/docs/cmd/aad/user/user-signin-list.mdx +131 -0
  154. package/docs/docs/cmd/login.mdx +39 -0
  155. package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +0 -6
  156. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +0 -6
  157. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.mdx +0 -7
  158. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.mdx +0 -6
  159. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +0 -6
  160. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +0 -6
  161. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.mdx +0 -6
  162. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +0 -6
  163. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +0 -6
  164. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +0 -6
  165. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.mdx +0 -6
  166. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.mdx +0 -6
  167. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.mdx +0 -6
  168. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.mdx +0 -6
  169. package/docs/docs/cmd/spo/applicationcustomizer/applicationcustomizer-set.mdx +72 -0
  170. package/docs/docs/cmd/spo/commandset/commandset-set.mdx +12 -3
  171. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +55 -0
  172. package/docs/docs/cmd/spo/list/list-sensitivitylabel-ensure.mdx +64 -0
  173. package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +7 -4
  174. package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +9 -0
  175. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +81 -0
  176. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +183 -0
  177. package/docs/docs/cmd/spo/tenant/tenant-commandset-get.mdx +155 -0
  178. package/docs/docs/cmd/spo/tenant/tenant-commandset-list.mdx +114 -0
  179. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  180. package/docs/docs/cmd/status.mdx +6 -3
  181. package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +12 -2
  182. package/package.json +1 -1
  183. package/dist/m365/aad/commands/approleassignment/AppRoleAssignment.js +0 -3
  184. package/dist/m365/aad/commands/approleassignment/ServicePrincipal.js +0 -3
  185. package/dist/m365/aad/commands/groupsetting/GroupSetting.js +0 -3
  186. package/dist/m365/aad/commands/groupsettingtemplate/GroupSettingTemplate.js +0 -3
  187. package/dist/m365/aad/commands/siteclassification/DirectorySetting.js +0 -10
  188. package/dist/m365/aad/commands/siteclassification/DirectorySettingTemplatesRsp.js +0 -3
  189. package/dist/m365/aad/commands/siteclassification/DirectorySettingValue.js +0 -3
  190. package/dist/m365/outlook/Message.js +0 -3
  191. package/dist/m365/spo/commands/site/SitePermission.js +0 -3
  192. package/dist/m365/teams/Channel.js +0 -3
  193. package/dist/m365/teams/ConversationMember.js +0 -3
  194. package/dist/m365/teams/Reply.js +0 -3
  195. package/dist/m365/teams/Tab.js +0 -3
  196. package/dist/m365/teams/Team.js +0 -3
  197. package/dist/m365/teams/TeamsApp.js +0 -3
  198. package/dist/m365/teams/TeamsAppInstallation.js +0 -3
  199. package/dist/m365/teams/TeamsTabConfiguration.js +0 -3
  200. package/dist/m365/teams/commands/Meeting.js +0 -3
@@ -85,15 +85,14 @@ class SpoAppTeamsPackageDownloadCommand extends SpoAppBaseCommand_1.SpoAppBaseCo
85
85
  });
86
86
  }
87
87
  ensureAppInfo(logger, args, appInfo) {
88
- if (appInfo.id && appInfo.packageFileName) {
89
- return Promise.resolve();
90
- }
91
- if (args.options.appName && !appInfo.packageFileName) {
92
- appInfo.packageFileName = this.getPackageNameFromFileName(args.options.appName);
93
- }
94
- return this
95
- .loadAppCatalogUrl(logger, args)
96
- .then(_ => {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ if (appInfo.id && appInfo.packageFileName) {
90
+ return;
91
+ }
92
+ if (args.options.appName && !appInfo.packageFileName) {
93
+ appInfo.packageFileName = this.getPackageNameFromFileName(args.options.appName);
94
+ }
95
+ yield this.loadAppCatalogUrl(logger, args);
97
96
  const appCatalogListName = 'AppCatalog';
98
97
  const serverRelativeAppCatalogListUrl = `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(this.appCatalogUrl)}/${appCatalogListName}`;
99
98
  let url = `${this.appCatalogUrl}/_api/web/`;
@@ -113,39 +112,33 @@ class SpoAppTeamsPackageDownloadCommand extends SpoAppBaseCommand_1.SpoAppBaseCo
113
112
  },
114
113
  responseType: 'json'
115
114
  };
116
- return request_1.default.get(requestOptions);
117
- })
118
- .then(res => {
115
+ const res = yield request_1.default.get(requestOptions);
119
116
  if (args.options.appItemUniqueId) {
120
117
  appInfo.id = parseInt(res.Id);
121
118
  if (!appInfo.packageFileName) {
122
119
  appInfo.packageFileName = this.getPackageNameFromFileName(res.File.Name);
123
120
  }
124
- return Promise.resolve();
121
+ return;
125
122
  }
126
123
  if (args.options.appItemId) {
127
124
  if (!appInfo.packageFileName) {
128
125
  appInfo.packageFileName = this.getPackageNameFromFileName(res.File.Name);
129
126
  }
130
- return Promise.resolve();
127
+ return;
131
128
  }
132
- // if (args.options.appName)
133
- // skipped 'if' clause to provide a default code branch
134
129
  appInfo.id = parseInt(res.Id);
135
- return Promise.resolve();
136
130
  });
137
131
  }
138
132
  getPackageNameFromFileName(fileName) {
139
133
  return `${path.basename(fileName, path.extname(fileName))}.zip`;
140
134
  }
141
135
  loadAppCatalogUrl(logger, args) {
142
- if (this.appCatalogUrl) {
143
- return Promise.resolve();
144
- }
145
- return spo_1.spo
146
- .getSpoUrl(logger, this.debug)
147
- .then(spoUrl => this.getAppCatalogSiteUrl(logger, spoUrl, args))
148
- .then(appCatalogUrl => {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ if (this.appCatalogUrl) {
138
+ return;
139
+ }
140
+ const spoUrl = yield spo_1.spo.getSpoUrl(logger, this.debug);
141
+ const appCatalogUrl = yield this.getAppCatalogSiteUrl(logger, spoUrl, args);
149
142
  this.appCatalogUrl = appCatalogUrl;
150
143
  });
151
144
  }
@@ -0,0 +1,154 @@
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 _SpoApplicationCustomizerSetCommand_instances, _SpoApplicationCustomizerSetCommand_initOptions, _SpoApplicationCustomizerSetCommand_initTelemetry, _SpoApplicationCustomizerSetCommand_initValidators, _SpoApplicationCustomizerSetCommand_initOptionSets;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const validation_1 = require("../../../../utils/validation");
20
+ const SpoCommand_1 = require("../../../base/SpoCommand");
21
+ const commands_1 = require("../../commands");
22
+ const spo_1 = require("../../../../utils/spo");
23
+ const formatting_1 = require("../../../../utils/formatting");
24
+ const os = require("os");
25
+ class SpoApplicationCustomizerSetCommand extends SpoCommand_1.default {
26
+ get name() {
27
+ return commands_1.default.APPLICATIONCUSTOMIZER_SET;
28
+ }
29
+ get description() {
30
+ return 'Updates an existing Application Customizer on a site';
31
+ }
32
+ constructor() {
33
+ super();
34
+ _SpoApplicationCustomizerSetCommand_instances.add(this);
35
+ this.allowedScopes = ['Site', 'Web', 'All'];
36
+ __classPrivateFieldGet(this, _SpoApplicationCustomizerSetCommand_instances, "m", _SpoApplicationCustomizerSetCommand_initTelemetry).call(this);
37
+ __classPrivateFieldGet(this, _SpoApplicationCustomizerSetCommand_instances, "m", _SpoApplicationCustomizerSetCommand_initOptions).call(this);
38
+ __classPrivateFieldGet(this, _SpoApplicationCustomizerSetCommand_instances, "m", _SpoApplicationCustomizerSetCommand_initValidators).call(this);
39
+ __classPrivateFieldGet(this, _SpoApplicationCustomizerSetCommand_instances, "m", _SpoApplicationCustomizerSetCommand_initOptionSets).call(this);
40
+ }
41
+ commandAction(logger, args) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ const appCustomizer = yield this.getAppCustomizerToUpdate(logger, args.options);
45
+ yield this.updateAppCustomizer(logger, args.options, appCustomizer);
46
+ }
47
+ catch (err) {
48
+ this.handleRejectedODataJsonPromise(err);
49
+ }
50
+ });
51
+ }
52
+ updateAppCustomizer(logger, options, appCustomizer) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const { clientSideComponentProperties, webUrl, newTitle } = options;
55
+ if (this.verbose) {
56
+ logger.logToStderr(`Updating application customizer with ID '${appCustomizer.Id}' on the site '${webUrl}'...`);
57
+ }
58
+ const requestBody = {};
59
+ if (newTitle) {
60
+ requestBody.Title = newTitle;
61
+ }
62
+ if (clientSideComponentProperties !== undefined) {
63
+ requestBody.ClientSideComponentProperties = clientSideComponentProperties;
64
+ }
65
+ const requestOptions = {
66
+ url: `${webUrl}/_api/${appCustomizer.Scope.toString() === '2' ? 'Site' : 'Web'}/UserCustomActions('${appCustomizer.Id}')`,
67
+ headers: {
68
+ accept: 'application/json;odata=nometadata',
69
+ 'X-HTTP-Method': 'MERGE'
70
+ },
71
+ data: requestBody,
72
+ responseType: 'json'
73
+ };
74
+ yield request_1.default.post(requestOptions);
75
+ });
76
+ }
77
+ getAppCustomizerToUpdate(logger, options) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const { id, webUrl, title, clientSideComponentId, scope } = options;
80
+ const resolvedScope = scope || 'All';
81
+ if (this.verbose) {
82
+ logger.logToStderr(`Getting application customizer ${title || clientSideComponentId || id} to update...`);
83
+ }
84
+ let appCustomizers = [];
85
+ if (id) {
86
+ const appCustomizer = yield spo_1.spo.getCustomActionById(webUrl, id, resolvedScope);
87
+ if (appCustomizer && appCustomizer.Location === 'ClientSideExtension.ApplicationCustomizer') {
88
+ appCustomizers.push(appCustomizer);
89
+ }
90
+ }
91
+ else if (title) {
92
+ appCustomizers = yield spo_1.spo.getCustomActions(webUrl, resolvedScope, `(Title eq '${formatting_1.formatting.encodeQueryParameter(title)}') and (startswith(Location,'ClientSideExtension.ApplicationCustomizer'))`);
93
+ }
94
+ else {
95
+ appCustomizers = yield spo_1.spo.getCustomActions(webUrl, resolvedScope, `(ClientSideComponentId eq guid'${clientSideComponentId}') and (startswith(Location,'ClientSideExtension.ApplicationCustomizer'))`);
96
+ }
97
+ if (appCustomizers.length === 0) {
98
+ throw `No application customizer with ${title && `title '${title}'` || clientSideComponentId && `ClientSideComponentId '${clientSideComponentId}'` || id && `id '${id}'`} found`;
99
+ }
100
+ if (appCustomizers.length > 1) {
101
+ throw `Multiple application customizer with ${title ? `title '${title}'` : `ClientSideComponentId '${clientSideComponentId}'`} found. Please disambiguate using IDs: ${os.EOL}${appCustomizers.map(a => `- ${a.Id}`).join(os.EOL)}`;
102
+ }
103
+ return appCustomizers[0];
104
+ });
105
+ }
106
+ }
107
+ _SpoApplicationCustomizerSetCommand_instances = new WeakSet(), _SpoApplicationCustomizerSetCommand_initOptions = function _SpoApplicationCustomizerSetCommand_initOptions() {
108
+ this.options.unshift({
109
+ option: '-u, --webUrl <webUrl>'
110
+ }, {
111
+ option: '-t, --title [title]'
112
+ }, {
113
+ option: '-i, --id [id]'
114
+ }, {
115
+ option: '-c, --clientSideComponentId [clientSideComponentId]'
116
+ }, {
117
+ option: '--newTitle [newTitle]'
118
+ }, {
119
+ option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
120
+ }, {
121
+ option: '-s, --scope [scope]', autocomplete: this.allowedScopes
122
+ });
123
+ }, _SpoApplicationCustomizerSetCommand_initTelemetry = function _SpoApplicationCustomizerSetCommand_initTelemetry() {
124
+ this.telemetry.push((args) => {
125
+ Object.assign(this.telemetryProperties, {
126
+ title: typeof args.options.title !== 'undefined',
127
+ id: typeof args.options.id !== 'undefined',
128
+ clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
129
+ newTitle: typeof args.options.newTitle !== 'undefined',
130
+ clientSideComponentProperties: typeof args.options.clientSideComponentProperties !== 'undefined',
131
+ scope: typeof args.options.scope !== 'undefined'
132
+ });
133
+ });
134
+ }, _SpoApplicationCustomizerSetCommand_initValidators = function _SpoApplicationCustomizerSetCommand_initValidators() {
135
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
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.clientSideComponentId && !validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
140
+ return `${args.options.clientSideComponentId} is not a valid GUID`;
141
+ }
142
+ if (args.options.scope && this.allowedScopes.indexOf(args.options.scope) === -1) {
143
+ return `'${args.options.scope}' is not a valid application customizer scope. Allowed values are: ${this.allowedScopes.join(',')}`;
144
+ }
145
+ if (!args.options.newTitle && !args.options.clientSideComponentProperties) {
146
+ return `Please specify an option to be updated`;
147
+ }
148
+ return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
149
+ }));
150
+ }, _SpoApplicationCustomizerSetCommand_initOptionSets = function _SpoApplicationCustomizerSetCommand_initOptionSets() {
151
+ this.optionSets.push({ options: ['id', 'title', 'clientSideComponentId'] });
152
+ };
153
+ module.exports = new SpoApplicationCustomizerSetCommand();
154
+ //# sourceMappingURL=applicationcustomizer-set.js.map
@@ -39,7 +39,7 @@ class SpoCommandSetSetCommand extends SpoCommand_1.default {
39
39
  commandAction(logger, args) {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
41
  if (this.verbose) {
42
- logger.logToStderr(`Updating ListView Command Set ${args.options.clientSideComponentId} to site '${args.options.webUrl}'...`);
42
+ logger.logToStderr(`Updating ListView Command Set ${args.options.id || args.options.title || args.options.clientSideComponentId} to site '${args.options.webUrl}'...`);
43
43
  }
44
44
  if (!args.options.scope) {
45
45
  args.options.scope = 'All';
@@ -59,6 +59,9 @@ class SpoCommandSetSetCommand extends SpoCommand_1.default {
59
59
  if (args.options.clientSideComponentProperties) {
60
60
  requestBody.ClientSideComponentProperties = args.options.clientSideComponentProperties;
61
61
  }
62
+ if (args.options.newClientSideComponentId) {
63
+ requestBody.ClientSideComponentId = args.options.newClientSideComponentId;
64
+ }
62
65
  const customAction = yield this.getCustomAction(args.options);
63
66
  const requestOptions = {
64
67
  url: `${args.options.webUrl}/_api/${customAction.Scope === 3 ? "Web" : "Site"}/UserCustomActions('${formatting_1.formatting.encodeQueryParameter(customAction.Id)}')`,
@@ -127,6 +130,7 @@ _SpoCommandSetSetCommand_instances = new WeakSet(), _SpoCommandSetSetCommand_ini
127
130
  title: typeof args.options.title !== 'undefined',
128
131
  id: typeof args.options.id !== 'undefined',
129
132
  clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
133
+ newClientSideComponentId: typeof args.options.newClientSideComponentId !== 'undefined',
130
134
  listType: typeof args.options.listType !== 'undefined',
131
135
  clientSideComponentProperties: typeof args.options.clientSideComponentProperties !== 'undefined',
132
136
  scope: typeof args.options.scope !== 'undefined',
@@ -142,6 +146,8 @@ _SpoCommandSetSetCommand_instances = new WeakSet(), _SpoCommandSetSetCommand_ini
142
146
  option: '-i, --id [id]'
143
147
  }, {
144
148
  option: '-c, --clientSideComponentId [clientSideComponentId]'
149
+ }, {
150
+ option: '--newClientSideComponentId [newClientSideComponentId]'
145
151
  }, {
146
152
  option: '--newTitle [newTitle]'
147
153
  }, {
@@ -161,6 +167,9 @@ _SpoCommandSetSetCommand_instances = new WeakSet(), _SpoCommandSetSetCommand_ini
161
167
  if (args.options.clientSideComponentId && !validation_1.validation.isValidGuid(args.options.clientSideComponentId)) {
162
168
  return `${args.options.clientSideComponentId} is not a valid GUID`;
163
169
  }
170
+ if (args.options.newClientSideComponentId && !validation_1.validation.isValidGuid(args.options.newClientSideComponentId)) {
171
+ return `${args.options.newClientSideComponentId} is not a valid GUID`;
172
+ }
164
173
  if (args.options.listType && SpoCommandSetSetCommand.listTypes.indexOf(args.options.listType) < 0) {
165
174
  return `${args.options.listType} is not a valid list type. Allowed values are ${SpoCommandSetSetCommand.listTypes.join(', ')}`;
166
175
  }
@@ -170,7 +179,7 @@ _SpoCommandSetSetCommand_instances = new WeakSet(), _SpoCommandSetSetCommand_ini
170
179
  if (args.options.location && SpoCommandSetSetCommand.locations.indexOf(args.options.location) < 0) {
171
180
  return `${args.options.location} is not a valid location. Allowed values are ${SpoCommandSetSetCommand.locations.join(', ')}`;
172
181
  }
173
- if (!args.options.newTitle && !args.options.listType && !args.options.clientSideComponentProperties && !args.options.location) {
182
+ if (!args.options.newTitle && !args.options.listType && !args.options.clientSideComponentProperties && !args.options.location && !args.options.newClientSideComponentId) {
174
183
  return `Please specify option to be updated`;
175
184
  }
176
185
  return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
@@ -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 _SpoFileCheckoutUndoCommand_instances, _SpoFileCheckoutUndoCommand_initTelemetry, _SpoFileCheckoutUndoCommand_initOptions, _SpoFileCheckoutUndoCommand_initValidators, _SpoFileCheckoutUndoCommand_initOptionSets;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Cli_1 = require("../../../../cli/Cli");
19
+ const request_1 = require("../../../../request");
20
+ const formatting_1 = require("../../../../utils/formatting");
21
+ const urlUtil_1 = require("../../../../utils/urlUtil");
22
+ const validation_1 = require("../../../../utils/validation");
23
+ const SpoCommand_1 = require("../../../base/SpoCommand");
24
+ const commands_1 = require("../../commands");
25
+ class SpoFileCheckoutUndoCommand extends SpoCommand_1.default {
26
+ get name() {
27
+ return commands_1.default.FILE_CHECKOUT_UNDO;
28
+ }
29
+ get description() {
30
+ return 'Discards a checked out file';
31
+ }
32
+ constructor() {
33
+ super();
34
+ _SpoFileCheckoutUndoCommand_instances.add(this);
35
+ __classPrivateFieldGet(this, _SpoFileCheckoutUndoCommand_instances, "m", _SpoFileCheckoutUndoCommand_initTelemetry).call(this);
36
+ __classPrivateFieldGet(this, _SpoFileCheckoutUndoCommand_instances, "m", _SpoFileCheckoutUndoCommand_initOptions).call(this);
37
+ __classPrivateFieldGet(this, _SpoFileCheckoutUndoCommand_instances, "m", _SpoFileCheckoutUndoCommand_initValidators).call(this);
38
+ __classPrivateFieldGet(this, _SpoFileCheckoutUndoCommand_instances, "m", _SpoFileCheckoutUndoCommand_initOptionSets).call(this);
39
+ }
40
+ commandAction(logger, args) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const undoCheckout = () => __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ if (this.verbose) {
45
+ logger.logToStderr(`Undoing checkout for file ${args.options.fileId || args.options.fileUrl} on web ${args.options.webUrl}`);
46
+ }
47
+ let requestUrl = `${args.options.webUrl}/_api/web/`;
48
+ if (args.options.fileId) {
49
+ requestUrl += `getFileById('${args.options.fileId}')`;
50
+ }
51
+ else if (args.options.fileUrl) {
52
+ const serverRelativePath = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.fileUrl);
53
+ requestUrl += `getFileByServerRelativePath(DecodedUrl='${formatting_1.formatting.encodeQueryParameter(serverRelativePath)}')`;
54
+ }
55
+ requestUrl += '/undocheckout';
56
+ const requestOptions = {
57
+ url: requestUrl,
58
+ headers: {
59
+ 'accept': 'application/json;odata=nometadata'
60
+ },
61
+ responseType: 'json'
62
+ };
63
+ yield request_1.default.post(requestOptions);
64
+ }
65
+ catch (err) {
66
+ this.handleRejectedODataJsonPromise(err);
67
+ }
68
+ });
69
+ if (args.options.confirm) {
70
+ yield undoCheckout();
71
+ }
72
+ else {
73
+ const result = yield Cli_1.Cli.prompt({
74
+ type: 'confirm',
75
+ name: 'continue',
76
+ default: false,
77
+ message: `Are you sure you want to undo the checkout for file ${args.options.fileId || args.options.fileUrl} ?`
78
+ });
79
+ if (result.continue) {
80
+ yield undoCheckout();
81
+ }
82
+ }
83
+ });
84
+ }
85
+ }
86
+ _SpoFileCheckoutUndoCommand_instances = new WeakSet(), _SpoFileCheckoutUndoCommand_initTelemetry = function _SpoFileCheckoutUndoCommand_initTelemetry() {
87
+ this.telemetry.push((args) => {
88
+ Object.assign(this.telemetryProperties, {
89
+ fileId: typeof args.options.fileId !== 'undefined',
90
+ fileUrl: typeof args.options.fileUrl !== 'undefined',
91
+ confirm: !!args.options.confirm
92
+ });
93
+ });
94
+ }, _SpoFileCheckoutUndoCommand_initOptions = function _SpoFileCheckoutUndoCommand_initOptions() {
95
+ this.options.unshift({
96
+ option: '-u, --webUrl <webUrl>'
97
+ }, {
98
+ option: '-f, --fileUrl [fileUrl]'
99
+ }, {
100
+ option: '-i, --fileId [fileId]'
101
+ }, {
102
+ option: '--confirm'
103
+ });
104
+ }, _SpoFileCheckoutUndoCommand_initValidators = function _SpoFileCheckoutUndoCommand_initValidators() {
105
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
106
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
107
+ if (isValidSharePointUrl !== true) {
108
+ return isValidSharePointUrl;
109
+ }
110
+ if (args.options.fileId && !validation_1.validation.isValidGuid(args.options.fileId)) {
111
+ return `${args.options.fileId} is not a valid GUID`;
112
+ }
113
+ return true;
114
+ }));
115
+ }, _SpoFileCheckoutUndoCommand_initOptionSets = function _SpoFileCheckoutUndoCommand_initOptionSets() {
116
+ this.optionSets.push({ options: ['fileId', 'fileUrl'] });
117
+ };
118
+ module.exports = new SpoFileCheckoutUndoCommand();
119
+ //# sourceMappingURL=file-checkout-undo.js.map
@@ -58,7 +58,7 @@ class SpoHomeSiteRemoveCommand extends SpoCommand_1.default {
58
58
  }
59
59
  }
60
60
  catch (err) {
61
- this.handleRejectedPromise(err);
61
+ this.handleRejectedODataJsonPromise(err);
62
62
  }
63
63
  });
64
64
  if (args.options.confirm) {
@@ -0,0 +1,127 @@
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 _SpoListSensitivityLabelEnsureCommand_instances, _SpoListSensitivityLabelEnsureCommand_initTelemetry, _SpoListSensitivityLabelEnsureCommand_initOptions, _SpoListSensitivityLabelEnsureCommand_initValidators, _SpoListSensitivityLabelEnsureCommand_initOptionSets;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const request_1 = require("../../../../request");
19
+ const formatting_1 = require("../../../../utils/formatting");
20
+ const urlUtil_1 = require("../../../../utils/urlUtil");
21
+ const validation_1 = require("../../../../utils/validation");
22
+ const SpoCommand_1 = require("../../../base/SpoCommand");
23
+ const commands_1 = require("../../commands");
24
+ class SpoListSensitivityLabelEnsureCommand extends SpoCommand_1.default {
25
+ get name() {
26
+ return commands_1.default.LIST_SENSITIVITYLABEL_ENSURE;
27
+ }
28
+ get description() {
29
+ return 'Applies a default sensitivity label to the specified document library';
30
+ }
31
+ constructor() {
32
+ super();
33
+ _SpoListSensitivityLabelEnsureCommand_instances.add(this);
34
+ __classPrivateFieldGet(this, _SpoListSensitivityLabelEnsureCommand_instances, "m", _SpoListSensitivityLabelEnsureCommand_initTelemetry).call(this);
35
+ __classPrivateFieldGet(this, _SpoListSensitivityLabelEnsureCommand_instances, "m", _SpoListSensitivityLabelEnsureCommand_initOptions).call(this);
36
+ __classPrivateFieldGet(this, _SpoListSensitivityLabelEnsureCommand_instances, "m", _SpoListSensitivityLabelEnsureCommand_initValidators).call(this);
37
+ __classPrivateFieldGet(this, _SpoListSensitivityLabelEnsureCommand_instances, "m", _SpoListSensitivityLabelEnsureCommand_initOptionSets).call(this);
38
+ }
39
+ commandAction(logger, args) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ try {
42
+ const sensitivityLabelId = yield this.getSensitivityLabelId(args, logger);
43
+ if (this.verbose) {
44
+ logger.logToStderr(`Applying a sensitivity label ${sensitivityLabelId} to the document library...`);
45
+ }
46
+ let requestUrl = `${args.options.webUrl}/_api/web`;
47
+ if (args.options.listId) {
48
+ requestUrl += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')`;
49
+ }
50
+ else if (args.options.listTitle) {
51
+ requestUrl += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')`;
52
+ }
53
+ else if (args.options.listUrl) {
54
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
55
+ requestUrl += `/GetList('${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}')`;
56
+ }
57
+ const requestOptions = {
58
+ url: requestUrl,
59
+ headers: {
60
+ accept: 'application/json;odata=nometadata',
61
+ 'content-type': 'application/json;odata=nometadata',
62
+ 'if-match': '*'
63
+ },
64
+ data: { 'DefaultSensitivityLabelForLibrary': sensitivityLabelId },
65
+ responseType: 'json'
66
+ };
67
+ yield request_1.default.patch(requestOptions);
68
+ }
69
+ catch (err) {
70
+ this.handleRejectedODataJsonPromise(err);
71
+ }
72
+ });
73
+ }
74
+ getSensitivityLabelId(args, logger) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const { name } = args.options;
77
+ if (this.verbose) {
78
+ logger.logToStderr(`Retrieving sensitivity label id of ${name}...`);
79
+ }
80
+ const requestOptions = {
81
+ url: `https://graph.microsoft.com/beta/security/informationProtection/sensitivityLabels?$filter=name eq '${formatting_1.formatting.encodeQueryParameter(name)}'&$select=id`,
82
+ headers: {
83
+ accept: 'application/json;odata.metadata=none'
84
+ },
85
+ responseType: 'json'
86
+ };
87
+ const res = yield request_1.default.get(requestOptions);
88
+ const sensitivityLabelItem = res.value[0];
89
+ if (!sensitivityLabelItem) {
90
+ throw Error(`The specified sensitivity label does not exist`);
91
+ }
92
+ return sensitivityLabelItem.id;
93
+ });
94
+ }
95
+ }
96
+ _SpoListSensitivityLabelEnsureCommand_instances = new WeakSet(), _SpoListSensitivityLabelEnsureCommand_initTelemetry = function _SpoListSensitivityLabelEnsureCommand_initTelemetry() {
97
+ this.telemetry.push((args) => {
98
+ Object.assign(this.telemetryProperties, {
99
+ listId: typeof args.options.listId !== 'undefined',
100
+ listTitle: typeof args.options.listTitle !== 'undefined',
101
+ listUrl: typeof args.options.listUrl !== 'undefined'
102
+ });
103
+ });
104
+ }, _SpoListSensitivityLabelEnsureCommand_initOptions = function _SpoListSensitivityLabelEnsureCommand_initOptions() {
105
+ this.options.unshift({
106
+ option: '-u, --webUrl <webUrl>'
107
+ }, {
108
+ option: '-n, --name <name>'
109
+ }, {
110
+ option: '-t, --listTitle [listTitle]'
111
+ }, {
112
+ option: '-l, --listId [listId]'
113
+ }, {
114
+ option: '--listUrl [listUrl]'
115
+ });
116
+ }, _SpoListSensitivityLabelEnsureCommand_initValidators = function _SpoListSensitivityLabelEnsureCommand_initValidators() {
117
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
118
+ if (args.options.listId && !validation_1.validation.isValidGuid(args.options.listId)) {
119
+ return `${args.options.listId} is not a valid GUID`;
120
+ }
121
+ return validation_1.validation.isValidSharePointUrl(args.options.webUrl);
122
+ }));
123
+ }, _SpoListSensitivityLabelEnsureCommand_initOptionSets = function _SpoListSensitivityLabelEnsureCommand_initOptionSets() {
124
+ this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
125
+ };
126
+ module.exports = new SpoListSensitivityLabelEnsureCommand();
127
+ //# sourceMappingURL=list-sensitivitylabel-ensure.js.map
@@ -16,6 +16,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
16
16
  var _SpoNavigationNodeAddCommand_instances, _SpoNavigationNodeAddCommand_initTelemetry, _SpoNavigationNodeAddCommand_initOptions, _SpoNavigationNodeAddCommand_initValidators, _SpoNavigationNodeAddCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
+ const spo_1 = require("../../../../utils/spo");
19
20
  const validation_1 = require("../../../../utils/validation");
20
21
  const SpoCommand_1 = require("../../../base/SpoCommand");
21
22
  const commands_1 = require("../../commands");
@@ -62,6 +63,20 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
62
63
  };
63
64
  try {
64
65
  const res = yield request_1.default.post(requestOptions);
66
+ if (args.options.openInNewWindow) {
67
+ if (this.verbose) {
68
+ logger.logToStderr(`Making sure that the newly added navigation node opens in a new window.`);
69
+ }
70
+ const id = res.Id.toString();
71
+ let menuState = args.options.location === 'TopNavigationBar' ? yield spo_1.spo.getTopNavigationMenuState(args.options.webUrl) : yield spo_1.spo.getQuickLaunchMenuState(args.options.webUrl);
72
+ let menuStateItem = this.getMenuStateNode(menuState.Nodes, id);
73
+ if (args.options.parentNodeId && !menuStateItem) {
74
+ menuState = yield spo_1.spo.getTopNavigationMenuState(args.options.webUrl);
75
+ menuStateItem = this.getMenuStateNode(menuState.Nodes, id);
76
+ }
77
+ menuStateItem.OpenInNewWindow = true;
78
+ yield spo_1.spo.saveMenuState(args.options.webUrl, menuState);
79
+ }
65
80
  logger.log(res);
66
81
  }
67
82
  catch (err) {
@@ -69,6 +84,18 @@ class SpoNavigationNodeAddCommand extends SpoCommand_1.default {
69
84
  }
70
85
  });
71
86
  }
87
+ getMenuStateNode(nodes, id) {
88
+ let menuNode = nodes.find((node) => node.Key !== null && node.Key === id);
89
+ if (menuNode === undefined) {
90
+ for (const node of nodes.filter(node => node.Nodes.length > 0)) {
91
+ menuNode = this.getMenuStateNode(node.Nodes, id);
92
+ if (menuNode) {
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ return menuNode;
98
+ }
72
99
  }
73
100
  _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCommand_initTelemetry = function _SpoNavigationNodeAddCommand_initTelemetry() {
74
101
  this.telemetry.push((args) => {
@@ -77,7 +104,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
77
104
  location: typeof args.options.location !== 'undefined',
78
105
  parentNodeId: typeof args.options.parentNodeId !== 'undefined',
79
106
  audienceIds: typeof args.options.audienceIds !== 'undefined',
80
- url: typeof args.options.url !== 'undefined'
107
+ url: typeof args.options.url !== 'undefined',
108
+ openInNewWindow: !!args.options.openInNewWindow
81
109
  });
82
110
  });
83
111
  }, _SpoNavigationNodeAddCommand_initOptions = function _SpoNavigationNodeAddCommand_initOptions() {
@@ -96,6 +124,8 @@ _SpoNavigationNodeAddCommand_instances = new WeakSet(), _SpoNavigationNodeAddCom
96
124
  option: '--isExternal'
97
125
  }, {
98
126
  option: '--audienceIds [audienceIds]'
127
+ }, {
128
+ option: '--openInNewWindow'
99
129
  });
100
130
  }, _SpoNavigationNodeAddCommand_initValidators = function _SpoNavigationNodeAddCommand_initValidators() {
101
131
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {