@pnp/cli-microsoft365 6.10.0 → 6.11.0-beta.259c884

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 (140) hide show
  1. package/dist/Auth.js +2 -1
  2. package/dist/Command.js +1 -1
  3. package/dist/m365/cli/commands/config/config-list.js +29 -0
  4. package/dist/m365/cli/commands.js +1 -0
  5. package/dist/m365/pa/commands/app/app-permission-ensure.js +177 -0
  6. package/dist/m365/pa/commands/app/app-permission-remove.js +170 -0
  7. package/dist/m365/pa/commands.js +2 -0
  8. package/dist/m365/planner/commands/bucket/bucket-add.js +2 -2
  9. package/dist/m365/planner/commands/bucket/bucket-get.js +2 -2
  10. package/dist/m365/planner/commands/bucket/bucket-list.js +2 -2
  11. package/dist/m365/planner/commands/bucket/bucket-remove.js +2 -2
  12. package/dist/m365/planner/commands/bucket/bucket-set.js +2 -2
  13. package/dist/m365/planner/commands/plan/plan-get.js +1 -2
  14. package/dist/m365/planner/commands/plan/plan-list.js +4 -5
  15. package/dist/m365/planner/commands/plan/plan-set.js +2 -2
  16. package/dist/m365/spfx/commands/project/project-doctor/{doctor-1.18.0-beta.1.js → doctor-1.18.0-beta.5.js} +1 -1
  17. package/dist/m365/spfx/commands/project/project-doctor.js +1 -1
  18. package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +34 -23
  19. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.15.2.js +1 -1
  20. package/dist/m365/spfx/commands/project/project-upgrade/{upgrade-1.18.0-beta.1.js → upgrade-1.18.0-beta.5.js} +26 -26
  21. package/dist/m365/spfx/commands/project/project-upgrade.js +1 -1
  22. package/dist/m365/spfx/commands/spfx-doctor.js +35 -51
  23. package/dist/m365/spo/commands/app/SpoAppBaseCommand.js +26 -14
  24. package/dist/m365/spo/commands/app/app-add.js +9 -9
  25. package/dist/m365/spo/commands/file/file-add.js +13 -13
  26. package/dist/m365/spo/commands/file/file-checkin.js +1 -1
  27. package/dist/m365/spo/commands/file/file-checkout.js +1 -1
  28. package/dist/m365/spo/commands/file/file-copy.js +38 -4
  29. package/dist/m365/spo/commands/file/file-list.js +4 -4
  30. package/dist/m365/spo/commands/file/file-move.js +2 -2
  31. package/dist/m365/spo/commands/file/file-remove.js +6 -6
  32. package/dist/m365/spo/commands/file/file-rename.js +2 -2
  33. package/dist/m365/spo/commands/file/file-retentionlabel-ensure.js +1 -1
  34. package/dist/m365/spo/commands/file/file-retentionlabel-remove.js +1 -1
  35. package/dist/m365/spo/commands/file/file-roleassignment-add.js +1 -1
  36. package/dist/m365/spo/commands/file/file-roleassignment-remove.js +1 -1
  37. package/dist/m365/spo/commands/file/file-roleinheritance-break.js +1 -1
  38. package/dist/m365/spo/commands/file/file-roleinheritance-reset.js +1 -1
  39. package/dist/m365/spo/commands/file/file-version-clear.js +1 -1
  40. package/dist/m365/spo/commands/file/file-version-get.js +1 -1
  41. package/dist/m365/spo/commands/file/file-version-list.js +1 -1
  42. package/dist/m365/spo/commands/file/file-version-remove.js +1 -1
  43. package/dist/m365/spo/commands/file/file-version-restore.js +1 -1
  44. package/dist/m365/spo/commands/folder/folder-add.js +2 -4
  45. package/dist/m365/spo/commands/folder/folder-get.js +1 -1
  46. package/dist/m365/spo/commands/folder/folder-list.js +2 -2
  47. package/dist/m365/spo/commands/folder/folder-remove.js +7 -4
  48. package/dist/m365/spo/commands/folder/folder-rename.js +13 -17
  49. package/dist/m365/spo/commands/folder/folder-retentionlabel-ensure.js +1 -1
  50. package/dist/m365/spo/commands/folder/folder-retentionlabel-remove.js +1 -1
  51. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +1 -1
  52. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +1 -1
  53. package/dist/m365/spo/commands/folder/folder-roleinheritance-break.js +1 -1
  54. package/dist/m365/spo/commands/folder/folder-roleinheritance-reset.js +1 -1
  55. package/dist/m365/spo/commands/group/group-list.js +0 -1
  56. package/dist/m365/spo/commands/navigation/navigation-node-set.js +2 -2
  57. package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-add.js +32 -3
  58. package/dist/m365/spo/commands/page/Page.js +24 -32
  59. package/dist/m365/spo/commands/propertybag/propertybag-base.js +75 -54
  60. package/dist/m365/spo/commands/propertybag/propertybag-remove.js +41 -40
  61. package/dist/m365/spo/commands/site/FlowsPolicy.js +10 -0
  62. package/dist/m365/spo/commands/site/site-ensure.js +3 -3
  63. package/dist/m365/spo/commands/site/site-hubsite-disconnect.js +24 -22
  64. package/dist/m365/spo/commands/site/site-list.js +28 -36
  65. package/dist/m365/spo/commands/site/site-set.js +52 -39
  66. package/dist/m365/spo/commands/theme/theme-remove.js +26 -24
  67. package/dist/m365/spo/commands/theme/theme-set.js +0 -1
  68. package/dist/m365/spo/commands/user/user-remove.js +29 -27
  69. package/dist/m365/spo/commands/web/web-reindex.js +17 -20
  70. package/dist/m365/spo/commands/web/web-remove.js +23 -21
  71. package/dist/m365/spo/commands/web/web-roleassignment-add.js +45 -52
  72. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +58 -61
  73. package/dist/m365/spo/commands/web/web-roleinheritance-break.js +20 -18
  74. package/dist/m365/spo/commands/web/web-roleinheritance-reset.js +21 -19
  75. package/dist/m365/yammer/commands/message/message-like-set.js +29 -28
  76. package/dist/m365/yammer/commands/message/message-list.js +9 -26
  77. package/dist/m365/yammer/commands/message/message-remove.js +20 -18
  78. package/dist/m365/yammer/commands/yammer-search.js +42 -56
  79. package/dist/utils/planner.js +6 -3
  80. package/dist/utils/spo.js +1 -1
  81. package/docs/docs/cmd/aad/user/user-set.mdx +1 -1
  82. package/docs/docs/cmd/cli/config/config-list.mdx +78 -0
  83. package/docs/docs/cmd/flow/flow-enable.mdx +2 -2
  84. package/docs/docs/cmd/login.mdx +6 -0
  85. package/docs/docs/cmd/pa/app/app-permission-ensure.mdx +85 -0
  86. package/docs/docs/cmd/pa/app/app-permission-remove.mdx +74 -0
  87. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +2 -2
  88. package/docs/docs/cmd/pp/dataverse/dataverse-table-list.mdx +2 -2
  89. package/docs/docs/cmd/pp/dataverse/dataverse-table-remove.mdx +3 -3
  90. package/docs/docs/cmd/spo/file/file-add.mdx +1 -1
  91. package/docs/docs/cmd/spo/file/file-checkin.mdx +1 -1
  92. package/docs/docs/cmd/spo/file/file-checkout-undo.mdx +1 -9
  93. package/docs/docs/cmd/spo/file/file-checkout.mdx +1 -1
  94. package/docs/docs/cmd/spo/file/file-copy.mdx +20 -16
  95. package/docs/docs/cmd/spo/file/file-get.mdx +1 -1
  96. package/docs/docs/cmd/spo/file/file-list.mdx +2 -2
  97. package/docs/docs/cmd/spo/file/file-move.mdx +2 -2
  98. package/docs/docs/cmd/spo/file/file-remove.mdx +8 -8
  99. package/docs/docs/cmd/spo/file/file-rename.mdx +3 -3
  100. package/docs/docs/cmd/spo/file/file-retentionlabel-ensure.mdx +2 -2
  101. package/docs/docs/cmd/spo/file/file-retentionlabel-remove.mdx +3 -3
  102. package/docs/docs/cmd/spo/file/file-roleassignment-add.mdx +1 -1
  103. package/docs/docs/cmd/spo/file/file-roleassignment-remove.mdx +1 -1
  104. package/docs/docs/cmd/spo/file/file-roleinheritance-break.mdx +1 -1
  105. package/docs/docs/cmd/spo/file/file-roleinheritance-reset.mdx +1 -1
  106. package/docs/docs/cmd/spo/file/file-sharinginfo-get.mdx +1 -1
  107. package/docs/docs/cmd/spo/file/file-sharinglink-add.mdx +1 -1
  108. package/docs/docs/cmd/spo/file/file-sharinglink-clear.mdx +1 -1
  109. package/docs/docs/cmd/spo/file/file-sharinglink-get.mdx +1 -1
  110. package/docs/docs/cmd/spo/file/file-sharinglink-list.mdx +1 -1
  111. package/docs/docs/cmd/spo/file/file-sharinglink-remove.mdx +1 -1
  112. package/docs/docs/cmd/spo/file/file-sharinglink-set.mdx +1 -1
  113. package/docs/docs/cmd/spo/file/file-version-clear.mdx +1 -1
  114. package/docs/docs/cmd/spo/file/file-version-get.mdx +1 -1
  115. package/docs/docs/cmd/spo/file/file-version-list.mdx +1 -1
  116. package/docs/docs/cmd/spo/file/file-version-remove.mdx +1 -1
  117. package/docs/docs/cmd/spo/file/file-version-restore.mdx +1 -1
  118. package/docs/docs/cmd/spo/folder/folder-add.mdx +76 -1
  119. package/docs/docs/cmd/spo/folder/folder-get.mdx +1 -1
  120. package/docs/docs/cmd/spo/folder/folder-list.mdx +1 -1
  121. package/docs/docs/cmd/spo/folder/folder-remove.mdx +1 -1
  122. package/docs/docs/cmd/spo/folder/folder-rename.mdx +5 -1
  123. package/docs/docs/cmd/spo/folder/folder-retentionlabel-ensure.mdx +1 -1
  124. package/docs/docs/cmd/spo/folder/folder-retentionlabel-remove.mdx +1 -1
  125. package/docs/docs/cmd/spo/folder/folder-roleassignment-add.mdx +2 -2
  126. package/docs/docs/cmd/spo/folder/folder-roleassignment-remove.mdx +1 -1
  127. package/docs/docs/cmd/spo/folder/folder-roleinheritance-break.mdx +1 -1
  128. package/docs/docs/cmd/spo/folder/folder-roleinheritance-reset.mdx +1 -1
  129. package/docs/docs/cmd/spo/listitem/listitem-attachment-list.mdx +1 -1
  130. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.mdx +14 -1
  131. package/docs/docs/cmd/spo/site/site-ensure.mdx +1 -1
  132. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-add.mdx +1 -1
  133. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-list.mdx +1 -1
  134. package/docs/docs/cmd/spo/tenant/tenant-applicationcustomizer-remove.mdx +1 -1
  135. package/docs/docs/cmd/spo/tenant/tenant-commandset-add.mdx +1 -1
  136. package/docs/docs/cmd/spo/tenant/tenant-commandset-remove.mdx +1 -1
  137. package/docs/docs/cmd/spo/tenant/tenant-commandset-set.mdx +1 -1
  138. package/docs/docs/cmd/yammer/network/network-list.mdx +1 -1
  139. package/npm-shrinkwrap.json +685 -346
  140. package/package.json +14 -14
@@ -35,30 +35,8 @@ class SpoThemeRemoveCommand extends SpoCommand_1.default {
35
35
  }
36
36
  commandAction(logger, args) {
37
37
  return __awaiter(this, void 0, void 0, function* () {
38
- const removeTheme = () => __awaiter(this, void 0, void 0, function* () {
39
- try {
40
- const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
41
- if (this.verbose) {
42
- logger.logToStderr(`Removing theme from tenant...`);
43
- }
44
- const requestOptions = {
45
- url: `${spoAdminUrl}/_api/thememanager/DeleteTenantTheme`,
46
- headers: {
47
- 'accept': 'application/json;odata=nometadata'
48
- },
49
- data: {
50
- name: args.options.name
51
- },
52
- responseType: 'json'
53
- };
54
- yield request_1.default.post(requestOptions);
55
- }
56
- catch (err) {
57
- this.handleRejectedODataJsonPromise(err);
58
- }
59
- });
60
38
  if (args.options.confirm) {
61
- yield removeTheme();
39
+ yield this.removeTheme(logger, args.options);
62
40
  }
63
41
  else {
64
42
  const result = yield Cli_1.Cli.prompt({
@@ -68,8 +46,32 @@ class SpoThemeRemoveCommand extends SpoCommand_1.default {
68
46
  message: `Are you sure you want to remove the theme`
69
47
  });
70
48
  if (result.continue) {
71
- yield removeTheme();
49
+ yield this.removeTheme(logger, args.options);
50
+ }
51
+ }
52
+ });
53
+ }
54
+ removeTheme(logger, options) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ try {
57
+ const spoAdminUrl = yield spo_1.spo.getSpoAdminUrl(logger, this.debug);
58
+ if (this.verbose) {
59
+ logger.logToStderr(`Removing theme from tenant...`);
72
60
  }
61
+ const requestOptions = {
62
+ url: `${spoAdminUrl}/_api/thememanager/DeleteTenantTheme`,
63
+ headers: {
64
+ 'accept': 'application/json;odata=nometadata'
65
+ },
66
+ data: {
67
+ name: options.name
68
+ },
69
+ responseType: 'json'
70
+ };
71
+ yield request_1.default.post(requestOptions);
72
+ }
73
+ catch (err) {
74
+ this.handleRejectedODataJsonPromise(err);
73
75
  }
74
76
  });
75
77
  }
@@ -61,7 +61,6 @@ class SpoThemeSetCommand extends SpoCommand_1.default {
61
61
  if (contents && contents.ErrorInfo) {
62
62
  throw contents.ErrorInfo.ErrorMessage || 'ClientSvc unknown error';
63
63
  }
64
- return Promise.resolve();
65
64
  }
66
65
  catch (err) {
67
66
  this.handleRejectedPromise(err);
@@ -38,33 +38,8 @@ class SpoUserRemoveCommand extends SpoCommand_1.default {
38
38
  }
39
39
  commandAction(logger, args) {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
- const removeUser = () => __awaiter(this, void 0, void 0, function* () {
42
- if (this.verbose) {
43
- logger.logToStderr(`Removing user from subsite ${args.options.webUrl} ...`);
44
- }
45
- let requestUrl = '';
46
- if (args.options.id) {
47
- requestUrl = `${encodeURI(args.options.webUrl)}/_api/web/siteusers/removebyid(${args.options.id})`;
48
- }
49
- if (args.options.loginName) {
50
- requestUrl = `${encodeURI(args.options.webUrl)}/_api/web/siteusers/removeByLoginName('${formatting_1.formatting.encodeQueryParameter(args.options.loginName)}')`;
51
- }
52
- const requestOptions = {
53
- url: requestUrl,
54
- headers: {
55
- accept: 'application/json;odata=nometadata'
56
- },
57
- responseType: 'json'
58
- };
59
- try {
60
- yield request_1.default.post(requestOptions);
61
- }
62
- catch (err) {
63
- this.handleRejectedODataJsonPromise(err);
64
- }
65
- });
66
41
  if (args.options.confirm) {
67
- yield removeUser();
42
+ yield this.removeUser(logger, args.options);
68
43
  }
69
44
  else {
70
45
  const result = yield Cli_1.Cli.prompt({
@@ -74,11 +49,38 @@ class SpoUserRemoveCommand extends SpoCommand_1.default {
74
49
  message: `Are you sure you want to remove specified user from the site ${args.options.webUrl}`
75
50
  });
76
51
  if (result.continue) {
77
- yield removeUser();
52
+ yield this.removeUser(logger, args.options);
78
53
  }
79
54
  }
80
55
  });
81
56
  }
57
+ removeUser(logger, options) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (this.verbose) {
60
+ logger.logToStderr(`Removing user from subsite ${options.webUrl} ...`);
61
+ }
62
+ let requestUrl = `${encodeURI(options.webUrl)}/_api/web/siteusers/`;
63
+ if (options.id) {
64
+ requestUrl += `removebyid(${options.id})`;
65
+ }
66
+ else if (options.loginName) {
67
+ requestUrl += `removeByLoginName('${formatting_1.formatting.encodeQueryParameter(options.loginName)}')`;
68
+ }
69
+ const requestOptions = {
70
+ url: requestUrl,
71
+ headers: {
72
+ accept: 'application/json;odata=nometadata'
73
+ },
74
+ responseType: 'json'
75
+ };
76
+ try {
77
+ yield request_1.default.post(requestOptions);
78
+ }
79
+ catch (err) {
80
+ this.handleRejectedODataJsonPromise(err);
81
+ }
82
+ });
83
+ }
82
84
  }
83
85
  _SpoUserRemoveCommand_instances = new WeakSet(), _SpoUserRemoveCommand_initTelemetry = function _SpoUserRemoveCommand_initTelemetry() {
84
86
  this.telemetry.push((args) => {
@@ -80,8 +80,8 @@ class SpoWebReindexCommand extends SpoCommand_1.default {
80
80
  });
81
81
  }
82
82
  reindexLists(webUrl, requestDigest, logger, webIdentityResp) {
83
- return new Promise((resolve, reject) => {
84
- (() => {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ try {
85
85
  if (this.debug) {
86
86
  logger.logToStderr(`Retrieving information about lists...`);
87
87
  }
@@ -92,36 +92,33 @@ class SpoWebReindexCommand extends SpoCommand_1.default {
92
92
  },
93
93
  responseType: 'json'
94
94
  };
95
- return request_1.default.get(requestOptions);
96
- })()
97
- .then((lists) => {
95
+ const lists = yield request_1.default.get(requestOptions);
98
96
  const promises = lists.value.map(l => this.reindexList(l, webUrl, requestDigest, webIdentityResp, logger));
99
- return Promise.all(promises);
100
- })
101
- .then(() => {
102
- resolve();
103
- }, (err) => reject(err));
97
+ yield Promise.all(promises);
98
+ }
99
+ catch (err) {
100
+ throw err;
101
+ }
104
102
  });
105
103
  }
106
104
  reindexList(list, webUrl, requestDigest, webIdentityResp, logger) {
107
- return new Promise((resolve, reject) => {
105
+ return __awaiter(this, void 0, void 0, function* () {
108
106
  if (list.NoCrawl) {
109
107
  if (this.debug) {
110
108
  logger.logToStderr(`List ${list.Title} is excluded from crawling`);
111
109
  }
112
- resolve();
113
110
  return;
114
111
  }
115
- spo_1.spo
116
- .getFolderIdentity(webIdentityResp.objectIdentity, webUrl, list.RootFolder.ServerRelativeUrl, requestDigest)
117
- .then((folderIdentityResp) => {
112
+ try {
113
+ const folderIdentityResp = yield spo_1.spo.getFolderIdentity(webIdentityResp.objectIdentity, webUrl, list.RootFolder.ServerRelativeUrl, requestDigest);
118
114
  let searchversion = list.RootFolder.Properties.vti_x005f_searchversion || 0;
119
115
  searchversion++;
120
- return propertybag_base_1.SpoPropertyBagBaseCommand.setProperty('vti_searchversion', searchversion.toString(), webUrl, requestDigest, folderIdentityResp, logger, this.debug, list.RootFolder.ServerRelativeUrl);
121
- })
122
- .then(() => {
123
- resolve();
124
- }, (err) => reject(err));
116
+ yield propertybag_base_1.SpoPropertyBagBaseCommand.setProperty('vti_searchversion', searchversion.toString(), webUrl, requestDigest, folderIdentityResp, logger, this.debug, list.RootFolder.ServerRelativeUrl);
117
+ return;
118
+ }
119
+ catch (err) {
120
+ throw (err);
121
+ }
125
122
  });
126
123
  }
127
124
  }
@@ -36,27 +36,8 @@ class SpoWebRemoveCommand extends SpoCommand_1.default {
36
36
  }
37
37
  commandAction(logger, args) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const removeWeb = () => __awaiter(this, void 0, void 0, function* () {
40
- const requestOptions = {
41
- url: `${encodeURI(args.options.url)}/_api/web`,
42
- headers: {
43
- accept: 'application/json;odata=nometadata',
44
- 'X-HTTP-Method': 'DELETE'
45
- },
46
- responseType: 'json'
47
- };
48
- if (this.verbose) {
49
- logger.logToStderr(`Deleting subsite ${args.options.url} ...`);
50
- }
51
- try {
52
- yield request_1.default.post(requestOptions);
53
- }
54
- catch (err) {
55
- this.handleRejectedODataJsonPromise(err);
56
- }
57
- });
58
39
  if (args.options.confirm) {
59
- yield removeWeb();
40
+ yield this.removeWeb(logger, args.options.url);
60
41
  }
61
42
  else {
62
43
  const result = yield Cli_1.Cli.prompt({
@@ -66,11 +47,32 @@ class SpoWebRemoveCommand extends SpoCommand_1.default {
66
47
  message: `Are you sure you want to remove the subsite ${args.options.url}`
67
48
  });
68
49
  if (result.continue) {
69
- yield removeWeb();
50
+ yield this.removeWeb(logger, args.options.url);
70
51
  }
71
52
  }
72
53
  });
73
54
  }
55
+ removeWeb(logger, url) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const requestOptions = {
58
+ url: `${encodeURI(url)}/_api/web`,
59
+ headers: {
60
+ accept: 'application/json;odata=nometadata',
61
+ 'X-HTTP-Method': 'DELETE'
62
+ },
63
+ responseType: 'json'
64
+ };
65
+ if (this.verbose) {
66
+ logger.logToStderr(`Deleting subsite ${url} ...`);
67
+ }
68
+ try {
69
+ yield request_1.default.post(requestOptions);
70
+ }
71
+ catch (err) {
72
+ this.handleRejectedODataJsonPromise(err);
73
+ }
74
+ });
75
+ }
74
76
  }
75
77
  _SpoWebRemoveCommand_instances = new WeakSet(), _SpoWebRemoveCommand_initTelemetry = function _SpoWebRemoveCommand_initTelemetry() {
76
78
  this.telemetry.push((args) => {
@@ -63,70 +63,63 @@ class SpoWebRoleAssignmentAddCommand extends SpoCommand_1.default {
63
63
  });
64
64
  }
65
65
  addRoleAssignment(logger, options) {
66
- const requestOptions = {
67
- url: `${options.webUrl}/_api/web/roleassignments/addroleassignment(principalid='${options.principalId}',roledefid='${options.roleDefinitionId}')`,
68
- method: 'POST',
69
- headers: {
70
- 'accept': 'application/json;odata=nometadata',
71
- 'content-type': 'application/json'
72
- },
73
- responseType: 'json'
74
- };
75
- return request_1.default
76
- .post(requestOptions)
77
- .then(_ => Promise.resolve())
78
- .catch((err) => Promise.reject(err));
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const requestOptions = {
68
+ url: `${options.webUrl}/_api/web/roleassignments/addroleassignment(principalid='${options.principalId}',roledefid='${options.roleDefinitionId}')`,
69
+ method: 'POST',
70
+ headers: {
71
+ 'accept': 'application/json;odata=nometadata',
72
+ 'content-type': 'application/json'
73
+ },
74
+ responseType: 'json'
75
+ };
76
+ yield request_1.default.post(requestOptions);
77
+ });
79
78
  }
80
79
  getRoleDefinitionId(options) {
81
- if (!options.roleDefinitionName) {
82
- return Promise.resolve(options.roleDefinitionId);
83
- }
84
- const roleDefinitionListCommandOptions = {
85
- webUrl: options.webUrl,
86
- output: 'json',
87
- debug: this.debug,
88
- verbose: this.verbose
89
- };
90
- return Cli_1.Cli.executeCommandWithOutput(SpoRoleDefinitionListCommand, { options: Object.assign(Object.assign({}, roleDefinitionListCommandOptions), { _: [] }) })
91
- .then((output) => {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ if (!options.roleDefinitionName) {
82
+ return options.roleDefinitionId;
83
+ }
84
+ const roleDefinitionListCommandOptions = {
85
+ webUrl: options.webUrl,
86
+ output: 'json',
87
+ debug: this.debug,
88
+ verbose: this.verbose
89
+ };
90
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoRoleDefinitionListCommand, { options: Object.assign(Object.assign({}, roleDefinitionListCommandOptions), { _: [] }) });
92
91
  const getRoleDefinitionListOutput = JSON.parse(output.stdout);
93
92
  const roleDefinitionId = getRoleDefinitionListOutput.find((role) => role.Name === options.roleDefinitionName).Id;
94
- return Promise.resolve(roleDefinitionId);
95
- }, (err) => {
96
- return Promise.reject(err);
93
+ return roleDefinitionId;
97
94
  });
98
95
  }
99
96
  getGroupPrincipalId(options) {
100
- const groupGetCommandOptions = {
101
- webUrl: options.webUrl,
102
- name: options.groupName,
103
- output: 'json',
104
- debug: this.debug,
105
- verbose: this.verbose
106
- };
107
- return Cli_1.Cli.executeCommandWithOutput(SpoGroupGetCommand, { options: Object.assign(Object.assign({}, groupGetCommandOptions), { _: [] }) })
108
- .then((output) => {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ const groupGetCommandOptions = {
99
+ webUrl: options.webUrl,
100
+ name: options.groupName,
101
+ output: 'json',
102
+ debug: this.debug,
103
+ verbose: this.verbose
104
+ };
105
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoGroupGetCommand, { options: Object.assign(Object.assign({}, groupGetCommandOptions), { _: [] }) });
109
106
  const getGroupOutput = JSON.parse(output.stdout);
110
- return Promise.resolve(getGroupOutput.Id);
111
- }, (err) => {
112
- return Promise.reject(err);
107
+ return getGroupOutput.Id;
113
108
  });
114
109
  }
115
110
  getUserPrincipalId(options) {
116
- const userGetCommandOptions = {
117
- webUrl: options.webUrl,
118
- email: options.upn,
119
- id: undefined,
120
- output: 'json',
121
- debug: this.debug,
122
- verbose: this.verbose
123
- };
124
- return Cli_1.Cli.executeCommandWithOutput(SpoUserGetCommand, { options: Object.assign(Object.assign({}, userGetCommandOptions), { _: [] }) })
125
- .then((output) => {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const userGetCommandOptions = {
113
+ webUrl: options.webUrl,
114
+ email: options.upn,
115
+ id: undefined,
116
+ output: 'json',
117
+ debug: this.debug,
118
+ verbose: this.verbose
119
+ };
120
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoUserGetCommand, { options: Object.assign(Object.assign({}, userGetCommandOptions), { _: [] }) });
126
121
  const getUserOutput = JSON.parse(output.stdout);
127
- return Promise.resolve(getUserOutput.Id);
128
- }, (err) => {
129
- return Promise.reject(err);
122
+ return getUserOutput.Id;
130
123
  });
131
124
  }
132
125
  }
@@ -39,29 +39,8 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
39
39
  }
40
40
  commandAction(logger, args) {
41
41
  return __awaiter(this, void 0, void 0, function* () {
42
- const removeRoleAssignment = () => __awaiter(this, void 0, void 0, function* () {
43
- if (this.verbose) {
44
- logger.logToStderr(`Removing role assignment from web ${args.options.webUrl}...`);
45
- }
46
- try {
47
- if (args.options.upn) {
48
- args.options.principalId = yield this.getUserPrincipalId(args.options);
49
- yield this.removeRoleAssignment(logger, args.options);
50
- }
51
- else if (args.options.groupName) {
52
- args.options.principalId = yield this.getGroupPrincipalId(args.options);
53
- yield this.removeRoleAssignment(logger, args.options);
54
- }
55
- else {
56
- yield this.removeRoleAssignment(logger, args.options);
57
- }
58
- }
59
- catch (err) {
60
- this.handleRejectedODataJsonPromise(err);
61
- }
62
- });
63
42
  if (args.options.confirm) {
64
- yield removeRoleAssignment();
43
+ yield this.removeRoleAssignment(logger, args.options);
65
44
  }
66
45
  else {
67
46
  const result = yield Cli_1.Cli.prompt({
@@ -71,57 +50,75 @@ class SpoWebRoleAssignmentRemoveCommand extends SpoCommand_1.default {
71
50
  message: `Are you sure you want to remove role assignment from web ${args.options.webUrl}?`
72
51
  });
73
52
  if (result.continue) {
74
- yield removeRoleAssignment();
53
+ yield this.removeRoleAssignment(logger, args.options);
75
54
  }
76
55
  }
77
56
  });
78
57
  }
79
58
  removeRoleAssignment(logger, options) {
80
- const requestOptions = {
81
- url: `${options.webUrl}/_api/web/roleassignments/removeroleassignment(principalid='${options.principalId}')`,
82
- method: 'POST',
83
- headers: {
84
- 'accept': 'application/json;odata=nometadata',
85
- 'content-type': 'application/json'
86
- },
87
- responseType: 'json'
88
- };
89
- return request_1.default
90
- .post(requestOptions)
91
- .then(_ => Promise.resolve())
92
- .catch((err) => Promise.reject(err));
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (this.verbose) {
61
+ logger.logToStderr(`Removing role assignment from web ${options.webUrl}...`);
62
+ }
63
+ try {
64
+ if (options.upn) {
65
+ options.principalId = yield this.getUserPrincipalId(options);
66
+ yield this.removeRoleAssignmentWithOptions(logger, options);
67
+ }
68
+ else if (options.groupName) {
69
+ options.principalId = yield this.getGroupPrincipalId(options);
70
+ yield this.removeRoleAssignmentWithOptions(logger, options);
71
+ }
72
+ else {
73
+ yield this.removeRoleAssignmentWithOptions(logger, options);
74
+ }
75
+ }
76
+ catch (err) {
77
+ this.handleRejectedODataJsonPromise(err);
78
+ }
79
+ });
80
+ }
81
+ removeRoleAssignmentWithOptions(logger, options) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const requestOptions = {
84
+ url: `${options.webUrl}/_api/web/roleassignments/removeroleassignment(principalid='${options.principalId}')`,
85
+ method: 'POST',
86
+ headers: {
87
+ 'accept': 'application/json;odata=nometadata',
88
+ 'content-type': 'application/json'
89
+ },
90
+ responseType: 'json'
91
+ };
92
+ yield request_1.default.post(requestOptions);
93
+ });
93
94
  }
94
95
  getGroupPrincipalId(options) {
95
- const groupGetCommandOptions = {
96
- webUrl: options.webUrl,
97
- name: options.groupName,
98
- output: 'json',
99
- debug: this.debug,
100
- verbose: this.verbose
101
- };
102
- return Cli_1.Cli.executeCommandWithOutput(SpoGroupGetCommand, { options: Object.assign(Object.assign({}, groupGetCommandOptions), { _: [] }) })
103
- .then((output) => {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ const groupGetCommandOptions = {
98
+ webUrl: options.webUrl,
99
+ name: options.groupName,
100
+ output: 'json',
101
+ debug: this.debug,
102
+ verbose: this.verbose
103
+ };
104
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoGroupGetCommand, { options: Object.assign(Object.assign({}, groupGetCommandOptions), { _: [] }) });
104
105
  const getGroupOutput = JSON.parse(output.stdout);
105
- return Promise.resolve(getGroupOutput.Id);
106
- }, (err) => {
107
- return Promise.reject(err);
106
+ return getGroupOutput.Id;
108
107
  });
109
108
  }
110
109
  getUserPrincipalId(options) {
111
- const userGetCommandOptions = {
112
- webUrl: options.webUrl,
113
- email: options.upn,
114
- id: undefined,
115
- output: 'json',
116
- debug: this.debug,
117
- verbose: this.verbose
118
- };
119
- return Cli_1.Cli.executeCommandWithOutput(SpoUserGetCommand, { options: Object.assign(Object.assign({}, userGetCommandOptions), { _: [] }) })
120
- .then((output) => {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ const userGetCommandOptions = {
112
+ webUrl: options.webUrl,
113
+ email: options.upn,
114
+ id: undefined,
115
+ output: 'json',
116
+ debug: this.debug,
117
+ verbose: this.verbose
118
+ };
119
+ const output = yield Cli_1.Cli.executeCommandWithOutput(SpoUserGetCommand, { options: Object.assign(Object.assign({}, userGetCommandOptions), { _: [] }) });
121
120
  const getUserOutput = JSON.parse(output.stdout);
122
- return Promise.resolve(getUserOutput.Id);
123
- }, (err) => {
124
- return Promise.reject(err);
121
+ return getUserOutput.Id;
125
122
  });
126
123
  }
127
124
  }
@@ -39,24 +39,8 @@ class SpoWebRoleInheritanceBreakCommand extends SpoCommand_1.default {
39
39
  if (this.verbose) {
40
40
  logger.logToStderr(`Break role inheritance of subsite with URL ${args.options.webUrl}...`);
41
41
  }
42
- const breakroleInheritance = () => __awaiter(this, void 0, void 0, function* () {
43
- const requestOptions = {
44
- url: `${args.options.webUrl}/_api/web/breakroleinheritance(${!args.options.clearExistingPermissions})`,
45
- headers: {
46
- 'accept': 'application/json;odata=nometadata',
47
- 'content-type': 'application/json'
48
- },
49
- responseType: 'json'
50
- };
51
- try {
52
- yield request_1.default.post(requestOptions);
53
- }
54
- catch (err) {
55
- this.handleRejectedODataJsonPromise(err);
56
- }
57
- });
58
42
  if (args.options.confirm) {
59
- yield breakroleInheritance();
43
+ yield this.breakroleInheritance(args.options);
60
44
  }
61
45
  else {
62
46
  const result = yield Cli_1.Cli.prompt({
@@ -66,11 +50,29 @@ class SpoWebRoleInheritanceBreakCommand extends SpoCommand_1.default {
66
50
  message: `Are you sure you want to break the role inheritance of subsite ${args.options.webUrl}`
67
51
  });
68
52
  if (result.continue) {
69
- yield breakroleInheritance();
53
+ yield this.breakroleInheritance(args.options);
70
54
  }
71
55
  }
72
56
  });
73
57
  }
58
+ breakroleInheritance(options) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const requestOptions = {
61
+ url: `${options.webUrl}/_api/web/breakroleinheritance(${!options.clearExistingPermissions})`,
62
+ headers: {
63
+ 'accept': 'application/json;odata=nometadata',
64
+ 'content-type': 'application/json'
65
+ },
66
+ responseType: 'json'
67
+ };
68
+ try {
69
+ yield request_1.default.post(requestOptions);
70
+ }
71
+ catch (err) {
72
+ this.handleRejectedODataJsonPromise(err);
73
+ }
74
+ });
75
+ }
74
76
  }
75
77
  _SpoWebRoleInheritanceBreakCommand_instances = new WeakSet(), _SpoWebRoleInheritanceBreakCommand_initTelemetry = function _SpoWebRoleInheritanceBreakCommand_initTelemetry() {
76
78
  this.telemetry.push((args) => {
@@ -39,25 +39,8 @@ class SpoWebRoleInheritanceResetCommand extends SpoCommand_1.default {
39
39
  if (this.verbose) {
40
40
  logger.logToStderr(`Restore role inheritance of subsite at ${args.options.webUrl}...`);
41
41
  }
42
- const resetWebRoleInheritance = () => __awaiter(this, void 0, void 0, function* () {
43
- try {
44
- const requestOptions = {
45
- url: `${args.options.webUrl}/_api/web/resetroleinheritance`,
46
- method: 'POST',
47
- headers: {
48
- 'accept': 'application/json;odata=nometadata',
49
- 'content-type': 'application/json'
50
- },
51
- responseType: 'json'
52
- };
53
- yield request_1.default.post(requestOptions);
54
- }
55
- catch (err) {
56
- this.handleRejectedODataJsonPromise(err);
57
- }
58
- });
59
42
  if (args.options.confirm) {
60
- yield resetWebRoleInheritance();
43
+ yield this.resetWebRoleInheritance(args.options);
61
44
  }
62
45
  else {
63
46
  const result = yield Cli_1.Cli.prompt({
@@ -67,11 +50,30 @@ class SpoWebRoleInheritanceResetCommand extends SpoCommand_1.default {
67
50
  message: `Are you sure you want to reset the role inheritance of ${args.options.webUrl}`
68
51
  });
69
52
  if (result.continue) {
70
- yield resetWebRoleInheritance();
53
+ yield this.resetWebRoleInheritance(args.options);
71
54
  }
72
55
  }
73
56
  });
74
57
  }
58
+ resetWebRoleInheritance(options) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ try {
61
+ const requestOptions = {
62
+ url: `${options.webUrl}/_api/web/resetroleinheritance`,
63
+ method: 'POST',
64
+ headers: {
65
+ 'accept': 'application/json;odata=nometadata',
66
+ 'content-type': 'application/json'
67
+ },
68
+ responseType: 'json'
69
+ };
70
+ yield request_1.default.post(requestOptions);
71
+ }
72
+ catch (err) {
73
+ this.handleRejectedODataJsonPromise(err);
74
+ }
75
+ });
76
+ }
75
77
  }
76
78
  _SpoWebRoleInheritanceResetCommand_instances = new WeakSet(), _SpoWebRoleInheritanceResetCommand_initTelemetry = function _SpoWebRoleInheritanceResetCommand_initTelemetry() {
77
79
  this.telemetry.push((args) => {