@pnp/cli-microsoft365 7.0.0-beta.68abdfc → 7.0.0-beta.68fea7b

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 (107) hide show
  1. package/dist/Command.js +1 -1
  2. package/dist/cli/Cli.js +23 -8
  3. package/dist/m365/aad/commands/user/user-get.js +7 -1
  4. package/dist/m365/booking/commands/business/business-get.js +14 -15
  5. package/dist/m365/cli/commands/config/config-set.js +1 -1
  6. package/dist/m365/pa/commands/app/app-owner-set.js +115 -0
  7. package/dist/m365/pa/commands/app/app-permission-list.js +104 -0
  8. package/dist/m365/pa/commands.js +2 -0
  9. package/dist/m365/planner/commands/bucket/bucket-add.js +14 -10
  10. package/dist/m365/planner/commands/bucket/bucket-get.js +25 -19
  11. package/dist/m365/planner/commands/bucket/bucket-list.js +14 -10
  12. package/dist/m365/planner/commands/bucket/bucket-remove.js +26 -20
  13. package/dist/m365/planner/commands/bucket/bucket-set.js +26 -28
  14. package/dist/m365/purview/commands/retentionevent/retentionevent-remove.js +19 -17
  15. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-remove.js +19 -17
  16. package/dist/m365/search/commands/externalconnection/externalconnection-remove.js +35 -34
  17. package/dist/m365/spfx/commands/project/project-externalize/rules/DynamicRule.js +59 -51
  18. package/dist/m365/spo/commands/folder/folder-remove.js +30 -28
  19. package/dist/m365/spo/commands/list/list-roleassignment-add.js +9 -47
  20. package/dist/m365/spo/commands/page/page-remove.js +33 -31
  21. package/dist/m365/spo/commands/roledefinition/roledefinition-remove.js +25 -23
  22. package/dist/m365/spo/commands/site/site-apppermission-add.js +3 -3
  23. package/dist/m365/spo/commands/site/site-commsite-enable.js +9 -18
  24. package/dist/m365/spo/commands/site/site-set.js +10 -2
  25. package/dist/m365/spo/commands/tenant/tenant-appcatalog-add.js +13 -16
  26. package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-set.js +80 -2
  27. package/dist/m365/spo/commands/tenant/tenant-recyclebinitem-remove.js +48 -48
  28. package/dist/m365/spo/commands/theme/theme-get.js +1 -2
  29. package/dist/m365/teams/commands/chat/chat-get.js +4 -4
  30. package/dist/m365/teams/commands/chat/chat-member-add.js +117 -0
  31. package/dist/m365/teams/commands/chat/chat-message-send.js +4 -4
  32. package/dist/m365/teams/commands/team/team-app-list.js +1 -1
  33. package/dist/m365/teams/commands.js +1 -0
  34. package/dist/utils/spo.js +74 -0
  35. package/docs/docs/_clisettings.mdx +1 -1
  36. package/docs/docs/cmd/_global.mdx +1 -1
  37. package/docs/docs/cmd/aad/user/user-get.mdx +118 -25
  38. package/docs/docs/cmd/pa/app/app-owner-set.mdx +60 -0
  39. package/docs/docs/cmd/pa/app/app-permission-list.mdx +132 -0
  40. package/docs/docs/cmd/planner/bucket/bucket-add.mdx +21 -4
  41. package/docs/docs/cmd/planner/bucket/bucket-get.mdx +22 -5
  42. package/docs/docs/cmd/planner/bucket/bucket-list.mdx +21 -4
  43. package/docs/docs/cmd/planner/bucket/bucket-remove.mdx +21 -4
  44. package/docs/docs/cmd/planner/bucket/bucket-set.mdx +22 -5
  45. package/docs/docs/cmd/spo/site/site-add.mdx +35 -0
  46. package/docs/docs/cmd/spo/site/site-appcatalog-add.mdx +5 -1
  47. package/docs/docs/cmd/spo/site/site-appcatalog-list.mdx +14 -0
  48. package/docs/docs/cmd/spo/site/site-appcatalog-remove.mdx +4 -0
  49. package/docs/docs/cmd/spo/site/site-apppermission-add.mdx +68 -0
  50. package/docs/docs/cmd/spo/site/site-apppermission-get.mdx +55 -0
  51. package/docs/docs/cmd/spo/site/site-apppermission-list.mdx +55 -0
  52. package/docs/docs/cmd/spo/site/site-apppermission-remove.mdx +4 -0
  53. package/docs/docs/cmd/spo/site/site-apppermission-set.mdx +66 -0
  54. package/docs/docs/cmd/spo/site/site-chrome-set.mdx +4 -0
  55. package/docs/docs/cmd/spo/site/site-commsite-enable.mdx +11 -1
  56. package/docs/docs/cmd/spo/site/site-ensure.mdx +70 -0
  57. package/docs/docs/cmd/spo/site/site-get.mdx +179 -0
  58. package/docs/docs/cmd/spo/site/site-groupify.mdx +54 -0
  59. package/docs/docs/cmd/spo/site/site-hubsite-connect.mdx +4 -0
  60. package/docs/docs/cmd/spo/site/site-hubsite-disconnect.mdx +4 -0
  61. package/docs/docs/cmd/spo/site/site-hubsite-theme-sync.mdx +5 -1
  62. package/docs/docs/cmd/spo/site/site-inplacerecordsmanagement-set.mdx +4 -0
  63. package/docs/docs/cmd/spo/site/site-list.mdx +303 -0
  64. package/docs/docs/cmd/spo/site/site-recyclebinitem-list.mdx +80 -0
  65. package/docs/docs/cmd/spo/site/site-recyclebinitem-restore.mdx +4 -0
  66. package/docs/docs/cmd/spo/site/site-remove.mdx +4 -0
  67. package/docs/docs/cmd/spo/site/site-rename.mdx +92 -0
  68. package/docs/docs/cmd/spo/site/site-set.mdx +13 -0
  69. package/docs/docs/cmd/spo/sitedesign/sitedesign-add.mdx +116 -0
  70. package/docs/docs/cmd/spo/sitedesign/sitedesign-apply.mdx +125 -0
  71. package/docs/docs/cmd/spo/sitedesign/sitedesign-get.mdx +117 -0
  72. package/docs/docs/cmd/spo/sitedesign/sitedesign-list.mdx +94 -0
  73. package/docs/docs/cmd/spo/sitedesign/sitedesign-remove.mdx +4 -0
  74. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-grant.mdx +4 -0
  75. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-list.mdx +54 -0
  76. package/docs/docs/cmd/spo/sitedesign/sitedesign-rights-revoke.mdx +4 -0
  77. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-list.mdx +66 -0
  78. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +65 -0
  79. package/docs/docs/cmd/spo/sitedesign/sitedesign-set.mdx +117 -0
  80. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-get.mdx +61 -0
  81. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-list.mdx +60 -0
  82. package/docs/docs/cmd/spo/sitedesign/sitedesign-task-remove.mdx +4 -0
  83. package/docs/docs/cmd/spo/sitescript/sitescript-add.mdx +75 -0
  84. package/docs/docs/cmd/spo/sitescript/sitescript-get.mdx +62 -0
  85. package/docs/docs/cmd/spo/sitescript/sitescript-list.mdx +60 -0
  86. package/docs/docs/cmd/spo/sitescript/sitescript-remove.mdx +4 -0
  87. package/docs/docs/cmd/spo/sitescript/sitescript-set.mdx +63 -0
  88. package/docs/docs/cmd/spo/storageentity/storageentity-get.mdx +53 -0
  89. package/docs/docs/cmd/spo/storageentity/storageentity-list.mdx +54 -0
  90. package/docs/docs/cmd/spo/storageentity/storageentity-remove.mdx +4 -0
  91. package/docs/docs/cmd/spo/storageentity/storageentity-set.mdx +4 -0
  92. package/docs/docs/cmd/spo/tenant/tenant-appcatalog-add.mdx +4 -0
  93. package/docs/docs/cmd/spo/tenant/tenant-appcatalogurl-get.mdx +35 -0
  94. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-set.mdx +12 -3
  95. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-list.mdx +67 -0
  96. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-remove.mdx +4 -0
  97. package/docs/docs/cmd/spo/tenant/tenant-recyclebinitem-restore.mdx +50 -0
  98. package/docs/docs/cmd/spo/tenant/tenant-settings-list.mdx +729 -0
  99. package/docs/docs/cmd/spo/tenant/tenant-settings-set.mdx +5 -0
  100. package/docs/docs/cmd/spo/theme/theme-apply.mdx +35 -0
  101. package/docs/docs/cmd/spo/theme/theme-get.mdx +74 -0
  102. package/docs/docs/cmd/spo/theme/theme-list.mdx +52 -0
  103. package/docs/docs/cmd/spo/theme/theme-remove.mdx +4 -0
  104. package/docs/docs/cmd/spo/theme/theme-set.mdx +4 -0
  105. package/docs/docs/cmd/teams/chat/chat-member-add.mdx +66 -0
  106. package/npm-shrinkwrap.json +212 -212
  107. package/package.json +10 -10
@@ -105,13 +105,17 @@ class PlannerBucketRemoveCommand extends GraphCommand_1.default {
105
105
  }
106
106
  getPlanId(args) {
107
107
  return __awaiter(this, void 0, void 0, function* () {
108
- const { planId, planTitle } = args.options;
108
+ const { planId, planTitle, rosterId } = args.options;
109
109
  if (planId) {
110
110
  return planId;
111
111
  }
112
- const groupId = yield this.getGroupId(args);
113
- const plan = yield planner_1.planner.getPlanByTitle(planTitle, groupId);
114
- return plan.id;
112
+ if (planTitle) {
113
+ const groupId = yield this.getGroupId(args);
114
+ const plan = yield planner_1.planner.getPlanByTitle(planTitle, groupId);
115
+ return plan.id;
116
+ }
117
+ const plans = yield planner_1.planner.getPlansByRosterId(rosterId);
118
+ return plans[0].id;
115
119
  });
116
120
  }
117
121
  getGroupId(args) {
@@ -132,6 +136,7 @@ _PlannerBucketRemoveCommand_instances = new WeakSet(), _PlannerBucketRemoveComma
132
136
  name: typeof args.options.name !== 'undefined',
133
137
  planId: typeof args.options.planId !== 'undefined',
134
138
  planTitle: typeof args.options.planTitle !== 'undefined',
139
+ rosterId: typeof args.options.rosterId !== 'undefined',
135
140
  ownerGroupId: typeof args.options.ownerGroupId !== 'undefined',
136
141
  ownerGroupName: typeof args.options.ownerGroupName !== 'undefined',
137
142
  force: args.options.force || false
@@ -146,6 +151,8 @@ _PlannerBucketRemoveCommand_instances = new WeakSet(), _PlannerBucketRemoveComma
146
151
  option: '--planId [planId]'
147
152
  }, {
148
153
  option: "--planTitle [planTitle]"
154
+ }, {
155
+ option: '--rosterId [rosterId]'
149
156
  }, {
150
157
  option: '--ownerGroupId [ownerGroupId]'
151
158
  }, {
@@ -156,38 +163,37 @@ _PlannerBucketRemoveCommand_instances = new WeakSet(), _PlannerBucketRemoveComma
156
163
  }, _PlannerBucketRemoveCommand_initValidators = function _PlannerBucketRemoveCommand_initValidators() {
157
164
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
158
165
  if (args.options.id) {
159
- if (args.options.planId || args.options.planTitle || args.options.ownerGroupId || args.options.ownerGroupName) {
160
- return 'Don\'t specify planId, planTitle, ownerGroupId or ownerGroupName when using id';
166
+ if (args.options.planId || args.options.planTitle || args.options.rosterId || args.options.ownerGroupId || args.options.ownerGroupName) {
167
+ return 'Don\'t specify planId, planTitle, rosterId, ownerGroupId or ownerGroupName when using id';
161
168
  }
162
169
  }
163
170
  else {
164
- if (!args.options.planId && !args.options.planTitle) {
165
- return 'Specify either planId or planTitle when using name';
166
- }
167
- if (args.options.planId && args.options.planTitle) {
168
- return 'Specify either planId or planTitle when using name but not both';
169
- }
170
171
  if (args.options.planTitle) {
171
- if (!args.options.ownerGroupId && !args.options.ownerGroupName) {
172
- return 'Specify either ownerGroupId or ownerGroupName when using planTitle';
173
- }
174
- if (args.options.ownerGroupId && args.options.ownerGroupName) {
175
- return 'Specify either ownerGroupId or ownerGroupName when using planTitle but not both';
176
- }
177
172
  if (args.options.ownerGroupId && !validation_1.validation.isValidGuid(args.options.ownerGroupId)) {
178
173
  return `${args.options.ownerGroupId} is not a valid GUID`;
179
174
  }
180
175
  }
181
- else {
176
+ else if (args.options.planId) {
182
177
  if (args.options.ownerGroupId || args.options.ownerGroupName) {
183
178
  return 'Don\'t specify ownerGroupId or ownerGroupName when using planId';
184
179
  }
185
180
  }
181
+ else {
182
+ if (args.options.ownerGroupId || args.options.ownerGroupName) {
183
+ return 'Don\'t specify ownerGroupId or ownerGroupName when using rosterId';
184
+ }
185
+ }
186
186
  }
187
187
  return true;
188
188
  }));
189
189
  }, _PlannerBucketRemoveCommand_initOptionSets = function _PlannerBucketRemoveCommand_initOptionSets() {
190
- this.optionSets.push({ options: ['id', 'name'] });
190
+ this.optionSets.push({ options: ['id', 'name'] }, {
191
+ options: ['planId', 'planTitle', 'rosterId'],
192
+ runsWhen: (args) => args.options.name !== undefined
193
+ }, {
194
+ options: ['ownerGroupId', 'ownerGroupName'],
195
+ runsWhen: (args) => args.options.planTitle !== undefined
196
+ });
191
197
  };
192
198
  module.exports = new PlannerBucketRemoveCommand();
193
199
  //# sourceMappingURL=bucket-remove.js.map
@@ -96,13 +96,17 @@ class PlannerBucketSetCommand extends GraphCommand_1.default {
96
96
  }
97
97
  getPlanId(args) {
98
98
  return __awaiter(this, void 0, void 0, function* () {
99
- const { planId, planTitle } = args.options;
99
+ const { planId, planTitle, rosterId } = args.options;
100
100
  if (planId) {
101
101
  return planId;
102
102
  }
103
- const groupId = yield this.getGroupId(args);
104
- const plan = yield planner_1.planner.getPlanByTitle(planTitle, groupId);
105
- return plan.id;
103
+ if (planTitle) {
104
+ const groupId = yield this.getGroupId(args);
105
+ const plan = yield planner_1.planner.getPlanByTitle(planTitle, groupId);
106
+ return plan.id;
107
+ }
108
+ const plans = yield planner_1.planner.getPlansByRosterId(rosterId);
109
+ return plans[0].id;
106
110
  });
107
111
  }
108
112
  getGroupId(args) {
@@ -123,6 +127,7 @@ _PlannerBucketSetCommand_instances = new WeakSet(), _PlannerBucketSetCommand_ini
123
127
  name: typeof args.options.name !== 'undefined',
124
128
  planId: typeof args.options.planId !== 'undefined',
125
129
  planTitle: typeof args.options.planTitle !== 'undefined',
130
+ rosterId: typeof args.options.rosterId !== 'undefined',
126
131
  ownerGroupId: typeof args.options.ownerGroupId !== 'undefined',
127
132
  ownerGroupName: typeof args.options.ownerGroupName !== 'undefined',
128
133
  newName: typeof args.options.newName !== 'undefined',
@@ -138,6 +143,8 @@ _PlannerBucketSetCommand_instances = new WeakSet(), _PlannerBucketSetCommand_ini
138
143
  option: '--planId [planId]'
139
144
  }, {
140
145
  option: "--planTitle [planTitle]"
146
+ }, {
147
+ option: '--rosterId [rosterId]'
141
148
  }, {
142
149
  option: '--ownerGroupId [ownerGroupId]'
143
150
  }, {
@@ -149,33 +156,18 @@ _PlannerBucketSetCommand_instances = new WeakSet(), _PlannerBucketSetCommand_ini
149
156
  });
150
157
  }, _PlannerBucketSetCommand_initValidators = function _PlannerBucketSetCommand_initValidators() {
151
158
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
152
- if (args.options.id) {
153
- if (args.options.planId || args.options.planTitle || args.options.ownerGroupId || args.options.ownerGroupName) {
154
- return 'Don\'t specify planId, planTitle, ownerGroupId or ownerGroupName when using id';
155
- }
159
+ if (args.options.id && (args.options.planId || args.options.planTitle || args.options.ownerGroupId || args.options.ownerGroupName || args.options.rosterId)) {
160
+ return 'Don\'t specify planId, planTitle, ownerGroupId, ownerGroupName or rosterId when using id';
156
161
  }
157
162
  if (args.options.name) {
158
- if (!args.options.planId && !args.options.planTitle) {
159
- return 'Specify either planId or planTitle when using name';
163
+ if (args.options.ownerGroupId && !validation_1.validation.isValidGuid(args.options.ownerGroupId)) {
164
+ return `${args.options.ownerGroupId} is not a valid GUID`;
160
165
  }
161
- if (args.options.planId && args.options.planTitle) {
162
- return 'Specify either planId or planTitle when using name but not both';
163
- }
164
- if (args.options.planTitle) {
165
- if (!args.options.ownerGroupId && !args.options.ownerGroupName) {
166
- return 'Specify either ownerGroupId or ownerGroupName when using planTitle';
167
- }
168
- if (args.options.ownerGroupId && args.options.ownerGroupName) {
169
- return 'Specify either ownerGroupId or ownerGroupName when using planTitle but not both';
170
- }
171
- if (args.options.ownerGroupId && !validation_1.validation.isValidGuid(args.options.ownerGroupId)) {
172
- return `${args.options.ownerGroupId} is not a valid GUID`;
173
- }
166
+ if (args.options.planId && (args.options.ownerGroupId || args.options.ownerGroupName)) {
167
+ return 'Don\'t specify ownerGroupId or ownerGroupName when using planId';
174
168
  }
175
- if (args.options.planId) {
176
- if (args.options.ownerGroupId || args.options.ownerGroupName) {
177
- return 'Don\'t specify ownerGroupId or ownerGroupName when using planId';
178
- }
169
+ if (args.options.rosterId && (args.options.ownerGroupId || args.options.ownerGroupName)) {
170
+ return 'Don\'t specify ownerGroupId or ownerGroupName when using rosterId';
179
171
  }
180
172
  }
181
173
  if (!args.options.newName && !args.options.orderHint) {
@@ -184,7 +176,13 @@ _PlannerBucketSetCommand_instances = new WeakSet(), _PlannerBucketSetCommand_ini
184
176
  return true;
185
177
  }));
186
178
  }, _PlannerBucketSetCommand_initOptionSets = function _PlannerBucketSetCommand_initOptionSets() {
187
- this.optionSets.push({ options: ['id', 'name'] });
179
+ this.optionSets.push({ options: ['id', 'name'] }, {
180
+ options: ['planId', 'planTitle', 'rosterId'],
181
+ runsWhen: (args) => args.options.name !== undefined
182
+ }, {
183
+ options: ['ownerGroupId', 'ownerGroupName'],
184
+ runsWhen: (args) => args.options.planTitle !== undefined
185
+ });
188
186
  };
189
187
  module.exports = new PlannerBucketSetCommand();
190
188
  //# sourceMappingURL=bucket-set.js.map
@@ -36,23 +36,8 @@ class PurviewRetentionEventRemoveCommand extends GraphCommand_1.default {
36
36
  }
37
37
  commandAction(logger, args) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const removeRetentionEvent = () => __awaiter(this, void 0, void 0, function* () {
40
- try {
41
- const requestOptions = {
42
- url: `${this.resource}/v1.0/security/triggers/retentionEvents/${args.options.id}`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- yield request_1.default.delete(requestOptions);
49
- }
50
- catch (err) {
51
- this.handleRejectedODataJsonPromise(err);
52
- }
53
- });
54
39
  if (args.options.force) {
55
- yield removeRetentionEvent();
40
+ yield this.removeRetentionEvent(args.options);
56
41
  }
57
42
  else {
58
43
  const result = yield Cli_1.Cli.prompt({
@@ -62,11 +47,28 @@ class PurviewRetentionEventRemoveCommand extends GraphCommand_1.default {
62
47
  message: `Are you sure you want to remove the retention event ${args.options.id}?`
63
48
  });
64
49
  if (result.continue) {
65
- yield removeRetentionEvent();
50
+ yield this.removeRetentionEvent(args.options);
66
51
  }
67
52
  }
68
53
  });
69
54
  }
55
+ removeRetentionEvent(options) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const requestOptions = {
59
+ url: `${this.resource}/beta/security/triggers/retentionEvents/${options.id}`,
60
+ headers: {
61
+ accept: 'application/json;odata.metadata=none'
62
+ },
63
+ responseType: 'json'
64
+ };
65
+ yield request_1.default.delete(requestOptions);
66
+ }
67
+ catch (err) {
68
+ this.handleRejectedODataJsonPromise(err);
69
+ }
70
+ });
71
+ }
70
72
  }
71
73
  _PurviewRetentionEventRemoveCommand_instances = new WeakSet(), _PurviewRetentionEventRemoveCommand_initTelemetry = function _PurviewRetentionEventRemoveCommand_initTelemetry() {
72
74
  this.telemetry.push((args) => {
@@ -36,23 +36,8 @@ class PurviewRetentionEventTypeRemoveCommand extends GraphCommand_1.default {
36
36
  }
37
37
  commandAction(logger, args) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const removeRetentionEventType = () => __awaiter(this, void 0, void 0, function* () {
40
- try {
41
- const requestOptions = {
42
- url: `${this.resource}/v1.0/security/triggerTypes/retentionEventTypes/${args.options.id}`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- yield request_1.default.delete(requestOptions);
49
- }
50
- catch (err) {
51
- this.handleRejectedODataJsonPromise(err);
52
- }
53
- });
54
39
  if (args.options.force) {
55
- yield removeRetentionEventType();
40
+ yield this.removeRetentionEventType(args.options);
56
41
  }
57
42
  else {
58
43
  const result = yield Cli_1.Cli.prompt({
@@ -62,11 +47,28 @@ class PurviewRetentionEventTypeRemoveCommand extends GraphCommand_1.default {
62
47
  message: `Are you sure you want to remove the retention event type with id ${args.options.id}?`
63
48
  });
64
49
  if (result.continue) {
65
- yield removeRetentionEventType();
50
+ yield this.removeRetentionEventType(args.options);
66
51
  }
67
52
  }
68
53
  });
69
54
  }
55
+ removeRetentionEventType(options) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const requestOptions = {
59
+ url: `${this.resource}/v1.0/security/triggerTypes/retentionEventTypes/${options.id}`,
60
+ headers: {
61
+ accept: 'application/json;odata.metadata=none'
62
+ },
63
+ responseType: 'json'
64
+ };
65
+ yield request_1.default.delete(requestOptions);
66
+ }
67
+ catch (err) {
68
+ this.handleRejectedODataJsonPromise(err);
69
+ }
70
+ });
71
+ }
70
72
  }
71
73
  _PurviewRetentionEventTypeRemoveCommand_instances = new WeakSet(), _PurviewRetentionEventTypeRemoveCommand_initTelemetry = function _PurviewRetentionEventTypeRemoveCommand_initTelemetry() {
72
74
  this.telemetry.push((args) => {
@@ -35,48 +35,31 @@ class SearchExternalConnectionRemoveCommand extends GraphCommand_1.default {
35
35
  __classPrivateFieldGet(this, _SearchExternalConnectionRemoveCommand_instances, "m", _SearchExternalConnectionRemoveCommand_initOptionSets).call(this);
36
36
  }
37
37
  getExternalConnectionId(args) {
38
- if (args.options.id) {
39
- return Promise.resolve(args.options.id);
40
- }
41
- const requestOptions = {
42
- url: `${this.resource}/v1.0/external/connections?$filter=name eq '${formatting_1.formatting.encodeQueryParameter(args.options.name)}'&$select=id`,
43
- headers: {
44
- accept: 'application/json;odata.metadata=none'
45
- },
46
- responseType: 'json'
47
- };
48
- return request_1.default
49
- .get(requestOptions)
50
- .then((res) => {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ if (args.options.id) {
40
+ return args.options.id;
41
+ }
42
+ const requestOptions = {
43
+ url: `${this.resource}/v1.0/external/connections?$filter=name eq '${formatting_1.formatting.encodeQueryParameter(args.options.name)}'&$select=id`,
44
+ headers: {
45
+ accept: 'application/json;odata.metadata=none'
46
+ },
47
+ responseType: 'json'
48
+ };
49
+ const res = yield request_1.default.get(requestOptions);
51
50
  if (res.value.length === 1) {
52
- return Promise.resolve(res.value[0].id);
51
+ return res.value[0].id;
53
52
  }
54
53
  if (res.value.length === 0) {
55
- return Promise.reject(`The specified connection does not exist in Microsoft Search`);
54
+ throw `The specified connection does not exist in Microsoft Search`;
56
55
  }
57
- return Promise.reject(`Multiple external connections with name ${args.options.name} found. Please disambiguate (IDs): ${res.value.map(x => x.id).join(', ')}`);
56
+ throw `Multiple external connections with name ${args.options.name} found. Please disambiguate (IDs): ${res.value.map(x => x.id).join(', ')}`;
58
57
  });
59
58
  }
60
59
  commandAction(logger, args) {
61
60
  return __awaiter(this, void 0, void 0, function* () {
62
- const removeExternalConnection = () => __awaiter(this, void 0, void 0, function* () {
63
- try {
64
- const externalConnectionId = yield this.getExternalConnectionId(args);
65
- const requestOptions = {
66
- url: `${this.resource}/v1.0/external/connections/${formatting_1.formatting.encodeQueryParameter(externalConnectionId)}`,
67
- headers: {
68
- accept: 'application/json;odata.metadata=none'
69
- },
70
- responseType: 'json'
71
- };
72
- yield request_1.default.delete(requestOptions);
73
- }
74
- catch (err) {
75
- this.handleRejectedODataJsonPromise(err);
76
- }
77
- });
78
61
  if (args.options.force) {
79
- yield removeExternalConnection();
62
+ yield this.removeExternalConnection(args);
80
63
  }
81
64
  else {
82
65
  const result = yield Cli_1.Cli.prompt({
@@ -86,11 +69,29 @@ class SearchExternalConnectionRemoveCommand extends GraphCommand_1.default {
86
69
  message: `Are you sure you want to remove the external connection '${args.options.id || args.options.name}'?`
87
70
  });
88
71
  if (result.continue) {
89
- yield removeExternalConnection();
72
+ yield this.removeExternalConnection(args);
90
73
  }
91
74
  }
92
75
  });
93
76
  }
77
+ removeExternalConnection(args) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ try {
80
+ const externalConnectionId = yield this.getExternalConnectionId(args);
81
+ const requestOptions = {
82
+ url: `${this.resource}/v1.0/external/connections/${formatting_1.formatting.encodeQueryParameter(externalConnectionId)}`,
83
+ headers: {
84
+ accept: 'application/json;odata.metadata=none'
85
+ },
86
+ responseType: 'json'
87
+ };
88
+ yield request_1.default.delete(requestOptions);
89
+ }
90
+ catch (err) {
91
+ this.handleRejectedODataJsonPromise(err);
92
+ }
93
+ });
94
+ }
94
95
  }
95
96
  _SearchExternalConnectionRemoveCommand_instances = new WeakSet(), _SearchExternalConnectionRemoveCommand_initTelemetry = function _SearchExternalConnectionRemoveCommand_initTelemetry() {
96
97
  this.telemetry.push((args) => {
@@ -1,4 +1,13 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.DynamicRule = void 0;
4
13
  const fs = require("fs");
@@ -12,36 +21,32 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
12
21
  this.fileVariationSuffixes = ['.min', '.bundle', '-min', '.bundle.min'];
13
22
  }
14
23
  visit(project) {
15
- if (!project.packageJson ||
16
- !project.packageJson.dependencies) {
17
- return Promise.resolve({ entries: [], suggestions: [] });
18
- }
19
- const validPackageNames = Object.getOwnPropertyNames(project.packageJson.dependencies)
20
- .filter(x => this.restrictedNamespaces.map(y => x.indexOf(y) === -1).reduce((y, z) => y && z))
21
- .filter(x => this.restrictedModules.indexOf(x) === -1);
22
- return Promise
23
- .all(validPackageNames.map((x) => this.getExternalEntryForPackage(x, project)))
24
- .then((res) => {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ if (!project.packageJson || !project.packageJson.dependencies) {
26
+ return { entries: [], suggestions: [] };
27
+ }
28
+ const validPackageNames = Object.getOwnPropertyNames(project.packageJson.dependencies)
29
+ .filter(x => this.restrictedNamespaces.map(y => x.indexOf(y) === -1).reduce((y, z) => y && z))
30
+ .filter(x => this.restrictedModules.indexOf(x) === -1);
31
+ const res = yield Promise.all(validPackageNames.map((x) => this.getExternalEntryForPackage(x, project)));
25
32
  return {
26
- entries: res
27
- .filter(x => x !== undefined)
28
- .map(x => x),
33
+ entries: res.filter(x => x !== undefined),
29
34
  suggestions: []
30
35
  };
31
36
  });
32
37
  }
33
38
  getExternalEntryForPackage(packageName, project) {
34
- const version = project.packageJson.dependencies[packageName];
35
- const filesPaths = this.getFilePath(packageName).map(x => this.cleanFilePath(x));
36
- if (!version || filesPaths.length === 0) {
37
- return Promise.resolve(undefined);
38
- }
39
- const filesPathsVariations = filesPaths
40
- .map(x => this.fileVariationSuffixes.map(y => x.indexOf(y) === -1 ? x.replace('.js', `${y}.js`) : x))
41
- .reduce((x, y) => [...x, ...y]);
42
- const pathsAndVariations = [...filesPaths, ...filesPathsVariations];
43
- return Promise.all(pathsAndVariations.map(x => this.getExternalEntryForFilePath(x, packageName, version)))
44
- .then((externalizeEntryCandidates) => {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const version = project.packageJson.dependencies[packageName];
41
+ const filesPaths = this.getFilePath(packageName).map(x => this.cleanFilePath(x));
42
+ if (!version || filesPaths.length === 0) {
43
+ return undefined;
44
+ }
45
+ const filesPathsVariations = filesPaths
46
+ .map(x => this.fileVariationSuffixes.map(y => x.indexOf(y) === -1 ? x.replace('.js', `${y}.js`) : x))
47
+ .reduce((x, y) => [...x, ...y]);
48
+ const pathsAndVariations = [...filesPaths, ...filesPathsVariations];
49
+ const externalizeEntryCandidates = yield Promise.all(pathsAndVariations.map(x => this.getExternalEntryForFilePath(x, packageName, version)));
45
50
  const dExternalizeEntryCandidates = externalizeEntryCandidates.filter(x => x !== undefined);
46
51
  const minifiedModule = dExternalizeEntryCandidates.find(x => !x.globalName && this.pathContainsMinifySuffix(x.path));
47
52
  const minifiedNonModule = dExternalizeEntryCandidates.find(x => x.globalName && this.pathContainsMinifySuffix(x.path));
@@ -57,31 +62,29 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
57
62
  .filter(y => y > -1).length > 0;
58
63
  }
59
64
  getExternalEntryForFilePath(filePath, packageName, version) {
60
- const url = this.getFileUrl(packageName, version, filePath);
61
- return this
62
- .testUrl(url)
63
- .then((testResult) => {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const url = this.getFileUrl(packageName, version, filePath);
67
+ const testResult = yield this.testUrl(url);
64
68
  if (!testResult) {
65
- return Promise.resolve(undefined);
69
+ return undefined;
70
+ }
71
+ const moduleInfo = yield this.getModuleType(url);
72
+ if (moduleInfo.scriptType === 'CommonJs') {
73
+ return undefined; //browsers don't support those module types without an additional library
74
+ }
75
+ else if (moduleInfo.scriptType === 'ES2015' || moduleInfo.scriptType === 'AMD') {
76
+ return {
77
+ key: packageName,
78
+ path: url
79
+ };
80
+ }
81
+ else { //TODO for non-module and UMD we should technically add dependencies as well
82
+ return {
83
+ key: packageName,
84
+ path: url,
85
+ globalName: moduleInfo.exports && moduleInfo.exports.length > 0 ? moduleInfo.exports[0] : packageName // examples where this is not good https://unpkg.com/@pnp/polyfill-ie11@^1.0.2/dist/index.js https://unpkg.com/moment-timezone@^0.5.27/builds/moment-timezone-with-data.js
86
+ };
66
87
  }
67
- return this.getModuleType(url).then((moduleInfo) => {
68
- if (moduleInfo.scriptType === 'CommonJs') {
69
- return Promise.resolve(undefined); //browsers don't support those module types without an additional library
70
- }
71
- else if (moduleInfo.scriptType === 'ES2015' || moduleInfo.scriptType === 'AMD') {
72
- return {
73
- key: packageName,
74
- path: url
75
- };
76
- }
77
- else { //TODO for non-module and UMD we should technically add dependencies as well
78
- return {
79
- key: packageName,
80
- path: url,
81
- globalName: moduleInfo.exports && moduleInfo.exports.length > 0 ? moduleInfo.exports[0] : packageName // examples where this is not good https://unpkg.com/@pnp/polyfill-ie11@^1.0.2/dist/index.js https://unpkg.com/moment-timezone@^0.5.27/builds/moment-timezone-with-data.js
82
- };
83
- }
84
- });
85
88
  });
86
89
  }
87
90
  getModuleType(url) {
@@ -101,10 +104,15 @@ class DynamicRule extends BasicDependencyRule_1.BasicDependencyRule {
101
104
  return `https://unpkg.com/${packageName}@${version}/${filePath}`;
102
105
  }
103
106
  testUrl(url) {
104
- return request_1.default
105
- .head({ url: url, headers: { 'x-anonymous': 'true' } })
106
- .then(() => true)
107
- .catch(() => false);
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ try {
109
+ yield request_1.default.head({ url: url, headers: { 'x-anonymous': 'true' } });
110
+ return true;
111
+ }
112
+ catch (_a) {
113
+ return false;
114
+ }
115
+ });
108
116
  }
109
117
  getFilePath(packageName) {
110
118
  const packageJsonFilePath = `node_modules/${packageName}/package.json`;
@@ -38,34 +38,8 @@ class SpoFolderRemoveCommand extends SpoCommand_1.default {
38
38
  }
39
39
  commandAction(logger, args) {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
- const removeFolder = () => __awaiter(this, void 0, void 0, function* () {
42
- if (this.verbose) {
43
- logger.logToStderr(`Removing folder in site at ${args.options.webUrl}...`);
44
- }
45
- const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.url);
46
- let requestUrl = `${args.options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
47
- if (args.options.recycle) {
48
- requestUrl += `/recycle()`;
49
- }
50
- const requestOptions = {
51
- url: requestUrl,
52
- method: 'POST',
53
- headers: {
54
- 'X-HTTP-Method': 'DELETE',
55
- 'If-Match': '*',
56
- 'accept': 'application/json;odata=nometadata'
57
- },
58
- responseType: 'json'
59
- };
60
- try {
61
- yield request_1.default.post(requestOptions);
62
- }
63
- catch (err) {
64
- this.handleRejectedODataJsonPromise(err);
65
- }
66
- });
67
41
  if (args.options.force) {
68
- yield removeFolder();
42
+ yield this.removeFolder(logger, args.options);
69
43
  }
70
44
  else {
71
45
  const result = yield Cli_1.Cli.prompt({
@@ -75,11 +49,39 @@ class SpoFolderRemoveCommand extends SpoCommand_1.default {
75
49
  message: `Are you sure you want to ${args.options.recycle ? "recycle" : "remove"} the folder ${args.options.url} located in site ${args.options.webUrl}?`
76
50
  });
77
51
  if (result.continue) {
78
- yield removeFolder();
52
+ yield this.removeFolder(logger, args.options);
79
53
  }
80
54
  }
81
55
  });
82
56
  }
57
+ removeFolder(logger, options) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (this.verbose) {
60
+ logger.logToStderr(`Removing folder in site at ${options.webUrl}...`);
61
+ }
62
+ const serverRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(options.webUrl, options.url);
63
+ let requestUrl = `${options.webUrl}/_api/web/GetFolderByServerRelativeUrl('${formatting_1.formatting.encodeQueryParameter(serverRelativeUrl)}')`;
64
+ if (options.recycle) {
65
+ requestUrl += `/recycle()`;
66
+ }
67
+ const requestOptions = {
68
+ url: requestUrl,
69
+ method: 'POST',
70
+ headers: {
71
+ 'X-HTTP-Method': 'DELETE',
72
+ 'If-Match': '*',
73
+ 'accept': 'application/json;odata=nometadata'
74
+ },
75
+ responseType: 'json'
76
+ };
77
+ try {
78
+ yield request_1.default.post(requestOptions);
79
+ }
80
+ catch (err) {
81
+ this.handleRejectedODataJsonPromise(err);
82
+ }
83
+ });
84
+ }
83
85
  }
84
86
  _SpoFolderRemoveCommand_instances = new WeakSet(), _SpoFolderRemoveCommand_initTelemetry = function _SpoFolderRemoveCommand_initTelemetry() {
85
87
  this.telemetry.push((args) => {