@pnp/cli-microsoft365 6.1.0-beta.3e0114a → 6.1.0-beta.539ef23

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 (93) hide show
  1. package/dist/m365/aad/commands/group/group-get.js +79 -0
  2. package/dist/m365/aad/commands/user/user-set.js +84 -11
  3. package/dist/m365/aad/commands.js +1 -0
  4. package/dist/m365/base/ContextCommand.js +33 -0
  5. package/dist/m365/context/commands/context-init.js +28 -0
  6. package/dist/m365/context/commands/context-remove.js +103 -0
  7. package/dist/m365/context/commands.js +8 -0
  8. package/dist/m365/pp/commands/dataverse/dataverse-table-row-remove.js +133 -0
  9. package/dist/m365/pp/commands/environment/environment-get.js +5 -13
  10. package/dist/m365/pp/commands.js +1 -0
  11. package/dist/m365/purview/commands/retentionlabel/retentionlabel-set.js +142 -0
  12. package/dist/m365/purview/commands.js +2 -1
  13. package/dist/m365/search/commands/externalconnection/externalconnection-schema-add.js +86 -0
  14. package/dist/m365/search/commands.js +2 -1
  15. package/dist/m365/spo/commands/group/group-member-add.js +68 -30
  16. package/dist/m365/spo/commands/group/group-member-remove.js +50 -7
  17. package/dist/m365/spo/commands/list/{list-label-set.js → list-retentionlabel-ensure.js} +25 -15
  18. package/dist/m365/spo/commands/list/{list-label-get.js → list-retentionlabel-get.js} +19 -15
  19. package/dist/m365/spo/commands/listitem/listitem-remove.js +1 -1
  20. package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +143 -0
  21. package/dist/m365/spo/commands/page/page-add.js +60 -63
  22. package/dist/m365/spo/commands/page/page-set.js +59 -70
  23. package/dist/m365/spo/commands/site/site-appcatalog-list.js +43 -0
  24. package/dist/m365/spo/commands/web/web-retentionlabel-list.js +63 -0
  25. package/dist/m365/spo/commands.js +5 -0
  26. package/dist/request.js +2 -1
  27. package/dist/utils/pid.js +31 -15
  28. package/docs/docs/cmd/aad/group/group-get.md +127 -0
  29. package/docs/docs/cmd/aad/user/user-set.md +31 -3
  30. package/docs/docs/cmd/context/context-init.md +25 -0
  31. package/docs/docs/cmd/context/context-remove.md +34 -0
  32. package/docs/docs/cmd/pp/dataverse/dataverse-table-row-remove.md +61 -0
  33. package/docs/docs/cmd/pp/environment/environment-get.md +9 -3
  34. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.md +63 -0
  35. package/docs/docs/cmd/search/externalconnection/externalconnection-schema-add.md +31 -0
  36. package/docs/docs/cmd/spo/group/group-member-add.md +58 -6
  37. package/docs/docs/cmd/spo/group/group-member-remove.md +24 -8
  38. package/docs/docs/cmd/spo/list/list-retentionlabel-ensure.md +65 -0
  39. package/docs/docs/cmd/spo/list/{list-label-get.md → list-retentionlabel-get.md} +17 -11
  40. package/docs/docs/cmd/spo/listitem/listitem-remove.md +6 -6
  41. package/docs/docs/cmd/spo/listitem/listitem-retentionlabel-remove.md +55 -0
  42. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-add.md +9 -5
  43. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.md +42 -0
  44. package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-remove.md +25 -3
  45. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-list.md +22 -0
  46. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-remove.md +6 -2
  47. package/docs/docs/cmd/spo/orgnewssite/orgnewssite-set.md +5 -1
  48. package/docs/docs/cmd/spo/page/page-add.md +13 -9
  49. package/docs/docs/cmd/spo/page/page-clientsidewebpart-add.md +6 -2
  50. package/docs/docs/cmd/spo/page/page-column-get.md +68 -5
  51. package/docs/docs/cmd/spo/page/page-column-list.md +36 -4
  52. package/docs/docs/cmd/spo/page/page-control-get.md +70 -3
  53. package/docs/docs/cmd/spo/page/page-control-list.md +69 -3
  54. package/docs/docs/cmd/spo/page/page-control-set.md +11 -7
  55. package/docs/docs/cmd/spo/page/page-copy.md +65 -4
  56. package/docs/docs/cmd/spo/page/page-get.md +100 -4
  57. package/docs/docs/cmd/spo/page/page-header-set.md +17 -13
  58. package/docs/docs/cmd/spo/page/page-list.md +122 -1
  59. package/docs/docs/cmd/spo/page/page-remove.md +9 -5
  60. package/docs/docs/cmd/spo/page/page-section-add.md +10 -6
  61. package/docs/docs/cmd/spo/page/page-section-get.md +36 -4
  62. package/docs/docs/cmd/spo/page/page-section-list.md +38 -3
  63. package/docs/docs/cmd/spo/page/page-set.md +10 -10
  64. package/docs/docs/cmd/spo/page/page-template-list.md +58 -1
  65. package/docs/docs/cmd/spo/page/page-text-add.md +9 -5
  66. package/docs/docs/cmd/spo/propertybag/propertybag-get.md +28 -8
  67. package/docs/docs/cmd/spo/propertybag/propertybag-list.md +35 -7
  68. package/docs/docs/cmd/spo/propertybag/propertybag-remove.md +13 -9
  69. package/docs/docs/cmd/spo/propertybag/propertybag-set.md +13 -5
  70. package/docs/docs/cmd/spo/report/report-activityfilecounts.md +34 -2
  71. package/docs/docs/cmd/spo/report/report-activitypages.md +31 -2
  72. package/docs/docs/cmd/spo/report/report-activityusercounts.md +35 -2
  73. package/docs/docs/cmd/spo/report/report-activityuserdetail.md +40 -3
  74. package/docs/docs/cmd/spo/report/report-siteusagedetail.md +43 -3
  75. package/docs/docs/cmd/spo/report/report-siteusagefilecounts.md +33 -2
  76. package/docs/docs/cmd/spo/report/report-siteusagepages.md +32 -2
  77. package/docs/docs/cmd/spo/report/report-siteusagesitecounts.md +33 -2
  78. package/docs/docs/cmd/spo/report/report-siteusagestorage.md +32 -2
  79. package/docs/docs/cmd/spo/roledefinition/roledefinition-add.md +10 -6
  80. package/docs/docs/cmd/spo/roledefinition/roledefinition-get.md +80 -2
  81. package/docs/docs/cmd/spo/roledefinition/roledefinition-list.md +76 -2
  82. package/docs/docs/cmd/spo/roledefinition/roledefinition-remove.md +9 -5
  83. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-add.md +39 -2
  84. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-list.md +32 -0
  85. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-grant-revoke.md +6 -2
  86. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-approve.md +14 -74
  87. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-deny.md +6 -2
  88. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-permissionrequest-list.md +30 -0
  89. package/docs/docs/cmd/spo/serviceprincipal/serviceprincipal-set.md +36 -2
  90. package/docs/docs/cmd/spo/site/site-appcatalog-list.md +55 -0
  91. package/docs/docs/cmd/spo/web/web-retentionlabel-list.md +74 -0
  92. package/package.json +1 -1
  93. package/docs/docs/cmd/spo/list/list-label-set.md +0 -55
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
14
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
15
  };
16
- var _SpoListLabelGetCommand_instances, _SpoListLabelGetCommand_initTelemetry, _SpoListLabelGetCommand_initOptions, _SpoListLabelGetCommand_initValidators, _SpoListLabelGetCommand_initOptionSets;
16
+ var _SpoListRetentionLabelGetCommand_instances, _SpoListRetentionLabelGetCommand_initTelemetry, _SpoListRetentionLabelGetCommand_initOptions, _SpoListRetentionLabelGetCommand_initValidators, _SpoListRetentionLabelGetCommand_initOptionSets;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const request_1 = require("../../../../request");
19
19
  const formatting_1 = require("../../../../utils/formatting");
@@ -21,23 +21,27 @@ const urlUtil_1 = require("../../../../utils/urlUtil");
21
21
  const validation_1 = require("../../../../utils/validation");
22
22
  const SpoCommand_1 = require("../../../base/SpoCommand");
23
23
  const commands_1 = require("../../commands");
24
- class SpoListLabelGetCommand extends SpoCommand_1.default {
24
+ class SpoListRetentionLabelGetCommand extends SpoCommand_1.default {
25
25
  get name() {
26
- return commands_1.default.LIST_LABEL_GET;
26
+ return commands_1.default.LIST_RETENTIONLABEL_GET;
27
+ }
28
+ alias() {
29
+ return [commands_1.default.LIST_LABEL_GET];
27
30
  }
28
31
  get description() {
29
- return 'Gets label set on the specified list';
32
+ return 'Gets the default retention label set on the specified list or library.';
30
33
  }
31
34
  constructor() {
32
35
  super();
33
- _SpoListLabelGetCommand_instances.add(this);
34
- __classPrivateFieldGet(this, _SpoListLabelGetCommand_instances, "m", _SpoListLabelGetCommand_initTelemetry).call(this);
35
- __classPrivateFieldGet(this, _SpoListLabelGetCommand_instances, "m", _SpoListLabelGetCommand_initOptions).call(this);
36
- __classPrivateFieldGet(this, _SpoListLabelGetCommand_instances, "m", _SpoListLabelGetCommand_initValidators).call(this);
37
- __classPrivateFieldGet(this, _SpoListLabelGetCommand_instances, "m", _SpoListLabelGetCommand_initOptionSets).call(this);
36
+ _SpoListRetentionLabelGetCommand_instances.add(this);
37
+ __classPrivateFieldGet(this, _SpoListRetentionLabelGetCommand_instances, "m", _SpoListRetentionLabelGetCommand_initTelemetry).call(this);
38
+ __classPrivateFieldGet(this, _SpoListRetentionLabelGetCommand_instances, "m", _SpoListRetentionLabelGetCommand_initOptions).call(this);
39
+ __classPrivateFieldGet(this, _SpoListRetentionLabelGetCommand_instances, "m", _SpoListRetentionLabelGetCommand_initValidators).call(this);
40
+ __classPrivateFieldGet(this, _SpoListRetentionLabelGetCommand_instances, "m", _SpoListRetentionLabelGetCommand_initOptionSets).call(this);
38
41
  }
39
42
  commandAction(logger, args) {
40
43
  return __awaiter(this, void 0, void 0, function* () {
44
+ this.showDeprecationWarning(logger, commands_1.default.LIST_LABEL_GET, commands_1.default.LIST_RETENTIONLABEL_GET);
41
45
  try {
42
46
  if (this.verbose) {
43
47
  logger.logToStderr(`Getting label set on the list ${args.options.listId || args.options.listTitle || args.options.listUrl} in site at ${args.options.webUrl}...`);
@@ -96,7 +100,7 @@ class SpoListLabelGetCommand extends SpoCommand_1.default {
96
100
  });
97
101
  }
98
102
  }
99
- _SpoListLabelGetCommand_instances = new WeakSet(), _SpoListLabelGetCommand_initTelemetry = function _SpoListLabelGetCommand_initTelemetry() {
103
+ _SpoListRetentionLabelGetCommand_instances = new WeakSet(), _SpoListRetentionLabelGetCommand_initTelemetry = function _SpoListRetentionLabelGetCommand_initTelemetry() {
100
104
  this.telemetry.push((args) => {
101
105
  Object.assign(this.telemetryProperties, {
102
106
  listId: (!(!args.options.listId)).toString(),
@@ -104,7 +108,7 @@ _SpoListLabelGetCommand_instances = new WeakSet(), _SpoListLabelGetCommand_initT
104
108
  listUrl: (!(!args.options.listUrl)).toString()
105
109
  });
106
110
  });
107
- }, _SpoListLabelGetCommand_initOptions = function _SpoListLabelGetCommand_initOptions() {
111
+ }, _SpoListRetentionLabelGetCommand_initOptions = function _SpoListRetentionLabelGetCommand_initOptions() {
108
112
  this.options.unshift({
109
113
  option: '-u, --webUrl <webUrl>'
110
114
  }, {
@@ -114,7 +118,7 @@ _SpoListLabelGetCommand_instances = new WeakSet(), _SpoListLabelGetCommand_initT
114
118
  }, {
115
119
  option: '--listUrl [listUrl]'
116
120
  });
117
- }, _SpoListLabelGetCommand_initValidators = function _SpoListLabelGetCommand_initValidators() {
121
+ }, _SpoListRetentionLabelGetCommand_initValidators = function _SpoListRetentionLabelGetCommand_initValidators() {
118
122
  this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
119
123
  const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
120
124
  if (isValidSharePointUrl !== true) {
@@ -127,8 +131,8 @@ _SpoListLabelGetCommand_instances = new WeakSet(), _SpoListLabelGetCommand_initT
127
131
  }
128
132
  return true;
129
133
  }));
130
- }, _SpoListLabelGetCommand_initOptionSets = function _SpoListLabelGetCommand_initOptionSets() {
134
+ }, _SpoListRetentionLabelGetCommand_initOptionSets = function _SpoListRetentionLabelGetCommand_initOptionSets() {
131
135
  this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
132
136
  };
133
- module.exports = new SpoListLabelGetCommand();
134
- //# sourceMappingURL=list-label-get.js.map
137
+ module.exports = new SpoListRetentionLabelGetCommand();
138
+ //# sourceMappingURL=list-retentionlabel-get.js.map
@@ -41,7 +41,7 @@ class SpoListItemRemoveCommand extends SpoCommand_1.default {
41
41
  return __awaiter(this, void 0, void 0, function* () {
42
42
  const removeListItem = () => __awaiter(this, void 0, void 0, function* () {
43
43
  if (this.verbose) {
44
- logger.logToStderr(`Removing list from list ${args.options.listId || args.options.listTitle || args.options.listUrl} item in site at ${args.options.webUrl}...`);
44
+ logger.logToStderr(`Removing list item ${args.options.id} from list ${args.options.listId || args.options.listTitle || args.options.listUrl} in site at ${args.options.webUrl}...`);
45
45
  }
46
46
  let requestUrl = `${args.options.webUrl}/_api/web`;
47
47
  if (args.options.listId) {
@@ -0,0 +1,143 @@
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 _SpoListItemRetentionLabelRemoveCommand_instances, _SpoListItemRetentionLabelRemoveCommand_initTelemetry, _SpoListItemRetentionLabelRemoveCommand_initOptions, _SpoListItemRetentionLabelRemoveCommand_initValidators, _SpoListItemRetentionLabelRemoveCommand_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 SpoListItemRetentionLabelRemoveCommand extends SpoCommand_1.default {
26
+ get name() {
27
+ return commands_1.default.LISTITEM_RETENTIONLABEL_REMOVE;
28
+ }
29
+ get description() {
30
+ return 'Clear the retention label from a list item';
31
+ }
32
+ constructor() {
33
+ super();
34
+ _SpoListItemRetentionLabelRemoveCommand_instances.add(this);
35
+ __classPrivateFieldGet(this, _SpoListItemRetentionLabelRemoveCommand_instances, "m", _SpoListItemRetentionLabelRemoveCommand_initTelemetry).call(this);
36
+ __classPrivateFieldGet(this, _SpoListItemRetentionLabelRemoveCommand_instances, "m", _SpoListItemRetentionLabelRemoveCommand_initOptions).call(this);
37
+ __classPrivateFieldGet(this, _SpoListItemRetentionLabelRemoveCommand_instances, "m", _SpoListItemRetentionLabelRemoveCommand_initValidators).call(this);
38
+ __classPrivateFieldGet(this, _SpoListItemRetentionLabelRemoveCommand_instances, "m", _SpoListItemRetentionLabelRemoveCommand_initOptionSets).call(this);
39
+ }
40
+ commandAction(logger, args) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ if (args.options.confirm) {
43
+ yield this.removeListItemRetentionLabel(logger, args);
44
+ }
45
+ else {
46
+ const result = yield Cli_1.Cli.prompt({
47
+ type: 'confirm',
48
+ name: 'continue',
49
+ default: false,
50
+ message: `Are you sure you want to remove the retentionlabel from list item ${args.options.listItemId} from list ${args.options.listId || args.options.listTitle || args.options.listUrl} located in site ${args.options.webUrl}?`
51
+ });
52
+ if (result.continue) {
53
+ yield this.removeListItemRetentionLabel(logger, args);
54
+ }
55
+ }
56
+ });
57
+ }
58
+ removeListItemRetentionLabel(logger, args) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (this.verbose) {
61
+ logger.logToStderr(`Removing retention label from list ${args.options.listId || args.options.listTitle || args.options.listUrl} in site at ${args.options.webUrl}...`);
62
+ }
63
+ try {
64
+ let url = `${args.options.webUrl}/_api/web`;
65
+ if (args.options.listId) {
66
+ url += `/lists(guid'${formatting_1.formatting.encodeQueryParameter(args.options.listId)}')/items(${args.options.listItemId})/SetComplianceTag()`;
67
+ }
68
+ else if (args.options.listTitle) {
69
+ url += `/lists/getByTitle('${formatting_1.formatting.encodeQueryParameter(args.options.listTitle)}')/items(${args.options.listItemId})/SetComplianceTag()`;
70
+ }
71
+ else {
72
+ const listServerRelativeUrl = urlUtil_1.urlUtil.getServerRelativePath(args.options.webUrl, args.options.listUrl);
73
+ url += `/GetList(@a1)/items(@a2)/SetComplianceTag()?@a1='${formatting_1.formatting.encodeQueryParameter(listServerRelativeUrl)}'&@a2='${args.options.listItemId}'`;
74
+ }
75
+ const requestBody = {
76
+ "complianceTag": "",
77
+ "isTagPolicyHold": false,
78
+ "isTagPolicyRecord": false,
79
+ "isEventBasedTag": false,
80
+ "isTagSuperLock": false,
81
+ "isUnlockedAsDefault": false
82
+ };
83
+ const requestOptions = {
84
+ url: url,
85
+ method: 'POST',
86
+ headers: {
87
+ 'accept': 'application/json;odata=nometadata'
88
+ },
89
+ data: requestBody,
90
+ responseType: 'json'
91
+ };
92
+ yield request_1.default.post(requestOptions);
93
+ }
94
+ catch (err) {
95
+ this.handleRejectedODataJsonPromise(err);
96
+ }
97
+ });
98
+ }
99
+ }
100
+ _SpoListItemRetentionLabelRemoveCommand_instances = new WeakSet(), _SpoListItemRetentionLabelRemoveCommand_initTelemetry = function _SpoListItemRetentionLabelRemoveCommand_initTelemetry() {
101
+ this.telemetry.push((args) => {
102
+ Object.assign(this.telemetryProperties, {
103
+ listId: typeof args.options.listId !== 'undefined',
104
+ listTitle: typeof args.options.listTitle !== 'undefined',
105
+ listUrl: typeof args.options.listUrl !== 'undefined',
106
+ confirm: !!args.options.confirm
107
+ });
108
+ });
109
+ }, _SpoListItemRetentionLabelRemoveCommand_initOptions = function _SpoListItemRetentionLabelRemoveCommand_initOptions() {
110
+ this.options.unshift({
111
+ option: '-u, --webUrl <webUrl>'
112
+ }, {
113
+ option: '-i, --listItemId <listItemId>'
114
+ }, {
115
+ option: '-l, --listId [listId]'
116
+ }, {
117
+ option: '-t, --listTitle [listTitle]'
118
+ }, {
119
+ option: '--listUrl [listUrl]'
120
+ }, {
121
+ option: '--confirm'
122
+ });
123
+ }, _SpoListItemRetentionLabelRemoveCommand_initValidators = function _SpoListItemRetentionLabelRemoveCommand_initValidators() {
124
+ this.validators.push((args) => __awaiter(this, void 0, void 0, function* () {
125
+ const id = parseInt(args.options.listItemId);
126
+ if (isNaN(id)) {
127
+ return `${args.options.listItemId} is not a valid list item ID`;
128
+ }
129
+ const isValidSharePointUrl = validation_1.validation.isValidSharePointUrl(args.options.webUrl);
130
+ if (isValidSharePointUrl !== true) {
131
+ return isValidSharePointUrl;
132
+ }
133
+ if (args.options.listId &&
134
+ !validation_1.validation.isValidGuid(args.options.listId)) {
135
+ return `${args.options.listId} is not a valid GUID`;
136
+ }
137
+ return true;
138
+ }));
139
+ }, _SpoListItemRetentionLabelRemoveCommand_initOptionSets = function _SpoListItemRetentionLabelRemoveCommand_initOptionSets() {
140
+ this.optionSets.push({ options: ['listId', 'listTitle', 'listUrl'] });
141
+ };
142
+ module.exports = new SpoListItemRetentionLabelRemoveCommand();
143
+ //# sourceMappingURL=listitem-retentionlabel-remove.js.map
@@ -24,6 +24,9 @@ const validation_1 = require("../../../../utils/validation");
24
24
  const SpoCommand_1 = require("../../../base/SpoCommand");
25
25
  const commands_1 = require("../../commands");
26
26
  const Page_1 = require("./Page");
27
+ const spoFileGetCommand = require("../file/file-get");
28
+ const spoListItemSetCommand = require("../listitem/listitem-set");
29
+ const Cli_1 = require("../../../../cli/Cli");
27
30
  class SpoPageAddCommand extends SpoCommand_1.default {
28
31
  get name() {
29
32
  return commands_1.default.PAGE_ADD;
@@ -52,12 +55,14 @@ class SpoPageAddCommand extends SpoCommand_1.default {
52
55
  const pageTitle = args.options.title ? args.options.title : (args.options.name.indexOf('.aspx') > -1 ? args.options.name.substr(0, args.options.name.indexOf('.aspx')) : args.options.name);
53
56
  let pageId = null;
54
57
  const pageDescription = args.options.description || "";
58
+ if (!pageName.endsWith('.aspx')) {
59
+ pageName += '.aspx';
60
+ }
61
+ const listServerRelativeUrl = `${urlUtil_1.urlUtil.getServerRelativeSiteUrl(args.options.webUrl)}/sitepages`;
62
+ const serverRelativeFileUrl = `${listServerRelativeUrl}/${pageName}`;
55
63
  try {
56
64
  const reqDigest = yield spo_1.spo.getRequestDigest(args.options.webUrl);
57
65
  requestDigest = reqDigest.FormDigestValue;
58
- if (!pageName.endsWith('.aspx')) {
59
- pageName += '.aspx';
60
- }
61
66
  let requestOptions = {
62
67
  url: `${args.options.webUrl}/_api/web/getfolderbyserverrelativeurl('${serverRelativeSiteUrl}/sitepages')/files/AddTemplateFile`,
63
68
  headers: {
@@ -73,32 +78,25 @@ class SpoPageAddCommand extends SpoCommand_1.default {
73
78
  };
74
79
  const template = yield request_1.default.post(requestOptions);
75
80
  itemId = template.UniqueId;
81
+ const listItemId = yield this.getFileListItemId(args.options.webUrl, serverRelativeFileUrl);
76
82
  const layoutType = args.options.layoutType || 'Article';
77
- requestOptions = {
78
- url: `${args.options.webUrl}/_api/web/getfilebyid('${itemId}')/ListItemAllFields`,
79
- headers: {
80
- 'X-RequestDigest': requestDigest,
81
- 'X-HTTP-Method': 'MERGE',
82
- 'IF-MATCH': '*',
83
- 'content-type': 'application/json;odata=nometadata',
84
- accept: 'application/json;odata=nometadata'
85
- },
86
- data: {
87
- ContentTypeId: '0x0101009D1CB255DA76424F860D91F20E6C4118',
88
- Title: pageTitle,
89
- ClientSideApplicationId: 'b6917cb1-93a0-4b97-a84d-7cf49975d4ec',
90
- PageLayoutType: layoutType
91
- },
92
- responseType: 'json'
83
+ const listItemSetOptions = {
84
+ webUrl: args.options.webUrl,
85
+ listUrl: listServerRelativeUrl,
86
+ id: listItemId,
87
+ systemUpdate: true,
88
+ ContentTypeId: '0x0101009D1CB255DA76424F860D91F20E6C4118',
89
+ Title: pageTitle,
90
+ ClientSideApplicationId: 'b6917cb1-93a0-4b97-a84d-7cf49975d4ec',
91
+ PageLayoutType: layoutType,
92
+ verbose: this.verbose,
93
+ debug: this.debug
93
94
  };
94
- if (layoutType === 'Article') {
95
- requestOptions.data.PromotedState = 0;
96
- requestOptions.data.BannerImageUrl = {
97
- Description: '/_layouts/15/images/sitepagethumbnail.png',
98
- Url: `${resource}/_layouts/15/images/sitepagethumbnail.png`
99
- };
95
+ if (args.options.layoutType === 'Article') {
96
+ listItemSetOptions.PromotedState = 0;
97
+ listItemSetOptions.BannerImageUrl = `${resource}/_layouts/15/images/sitepagethumbnail.png, /_layouts/15/images/sitepagethumbnail.png`;
100
98
  }
101
- yield request_1.default.post(requestOptions);
99
+ yield Cli_1.Cli.executeCommand(spoListItemSetCommand, { options: Object.assign(Object.assign({}, listItemSetOptions), { _: [] }) });
102
100
  const pageProps = yield Page_1.Page.checkout(pageName, args.options.webUrl, logger, this.debug, this.verbose);
103
101
  if (pageProps) {
104
102
  pageId = pageProps.Id;
@@ -123,58 +121,43 @@ class SpoPageAddCommand extends SpoCommand_1.default {
123
121
  requestOptions.data = {
124
122
  WelcomePage: `SitePages/${pageName}`
125
123
  };
124
+ yield request_1.default.post(requestOptions);
126
125
  break;
127
126
  case 'NewsPage':
128
- requestOptions.url = `${args.options.webUrl}/_api/web/getfilebyid('${itemId}')/ListItemAllFields`;
129
- requestOptions.headers = {
130
- 'X-RequestDigest': requestDigest,
131
- 'X-HTTP-Method': 'MERGE',
132
- 'IF-MATCH': '*',
133
- 'content-type': 'application/json;odata=nometadata',
134
- accept: 'application/json;odata=nometadata'
135
- };
136
- requestOptions.data = {
127
+ const listItemSetOptions = {
128
+ webUrl: args.options.webUrl,
129
+ listUrl: listServerRelativeUrl,
130
+ id: listItemId,
131
+ systemUpdate: true,
137
132
  PromotedState: 2,
138
- FirstPublishedDate: new Date().toISOString().replace('Z', '')
133
+ FirstPublishedDate: new Date().toISOString(),
134
+ verbose: this.verbose,
135
+ debug: this.debug
139
136
  };
137
+ yield Cli_1.Cli.executeCommand(spoListItemSetCommand, { options: Object.assign(Object.assign({}, listItemSetOptions), { _: [] }) });
140
138
  break;
141
139
  case 'Template':
142
- requestOptions.url = `${args.options.webUrl}/_api/web/getfilebyid('${itemId}')/ListItemAllFields`;
140
+ requestOptions.url = `${args.options.webUrl}/_api/SitePages/Pages(${listItemId})/SavePageAsTemplate`;
143
141
  requestOptions.headers = {
144
- 'X-RequestDigest': requestDigest,
145
- 'content-type': 'application/json;odata=nometadata',
146
- accept: 'application/json;odata=nometadata'
147
- };
148
- break;
149
- }
150
- const res = yield request_1.default.post(requestOptions);
151
- if (args.options.promoteAs === 'Template') {
152
- let requestOptions = {
153
- responseType: 'json',
154
- url: `${args.options.webUrl}/_api/SitePages/Pages(${res.Id})/SavePageAsTemplate`,
155
- headers: {
156
142
  'X-RequestDigest': requestDigest,
157
143
  'content-type': 'application/json;odata=nometadata',
158
144
  'X-HTTP-Method': 'POST',
159
145
  'IF-MATCH': '*',
160
146
  accept: 'application/json;odata=nometadata'
161
- }
162
- };
163
- const tmpl = yield request_1.default.post(requestOptions);
164
- bannerImageUrl = tmpl.BannerImageUrl;
165
- canvasContent1 = tmpl.CanvasContent1;
166
- layoutWebpartsContent = tmpl.LayoutWebpartsContent;
167
- pageId = tmpl.Id;
168
- requestOptions = {
169
- url: `${args.options.webUrl}/_api/web/getfilebyid('${tmpl.UniqueId}')/ListItemAllFields/SetCommentsDisabled(${!args.options.commentsEnabled})`,
170
- headers: {
147
+ };
148
+ const tmpl = yield request_1.default.post(requestOptions);
149
+ bannerImageUrl = tmpl.BannerImageUrl;
150
+ canvasContent1 = tmpl.CanvasContent1;
151
+ layoutWebpartsContent = tmpl.LayoutWebpartsContent;
152
+ pageId = tmpl.Id;
153
+ requestOptions.url = `${args.options.webUrl}/_api/web/getfilebyid('${tmpl.UniqueId}')/ListItemAllFields/SetCommentsDisabled(${!args.options.commentsEnabled})`;
154
+ requestOptions.headers = {
171
155
  'X-RequestDigest': requestDigest,
172
156
  'content-type': 'application/json;odata=nometadata',
173
157
  accept: 'application/json;odata=nometadata'
174
- },
175
- responseType: 'json'
176
- };
177
- yield request_1.default.post(requestOptions);
158
+ };
159
+ yield request_1.default.post(requestOptions);
160
+ break;
178
161
  }
179
162
  }
180
163
  requestOptions = {
@@ -263,6 +246,20 @@ class SpoPageAddCommand extends SpoCommand_1.default {
263
246
  }
264
247
  });
265
248
  }
249
+ getFileListItemId(webUrl, serverRelativeFileUrl) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ const fileGetOptions = {
252
+ webUrl: webUrl,
253
+ url: serverRelativeFileUrl,
254
+ asListItem: true,
255
+ verbose: this.verbose,
256
+ debug: this.debug
257
+ };
258
+ const fileGetOutput = yield Cli_1.Cli.executeCommandWithOutput(spoFileGetCommand, { options: Object.assign(Object.assign({}, fileGetOptions), { _: [] }) });
259
+ const fileGetOutputJson = JSON.parse(fileGetOutput.stdout);
260
+ return fileGetOutputJson.Id;
261
+ });
262
+ }
266
263
  }
267
264
  _SpoPageAddCommand_instances = new WeakSet(), _SpoPageAddCommand_initTelemetry = function _SpoPageAddCommand_initTelemetry() {
268
265
  this.telemetry.push((args) => {
@@ -77,28 +77,21 @@ class SpoPageSetCommand extends SpoCommand_1.default {
77
77
  authorByline = page.AuthorByline;
78
78
  }
79
79
  if (args.options.layoutType) {
80
- const requestOptions = {
81
- url: `${args.options.webUrl}/_api/web/getfilebyserverrelativeurl('${serverRelativeFileUrl}')/ListItemAllFields`,
82
- headers: {
83
- 'X-RequestDigest': requestDigest,
84
- 'content-type': 'application/json;odata=nometadata',
85
- 'X-HTTP-Method': 'MERGE',
86
- 'IF-MATCH': '*',
87
- accept: 'application/json;odata=nometadata'
88
- },
89
- data: {
90
- PageLayoutType: args.options.layoutType
91
- },
92
- responseType: 'json'
80
+ const itemId = yield this.getFileListItemId(args.options.webUrl, serverRelativeFileUrl);
81
+ const listItemSetOptions = {
82
+ webUrl: args.options.webUrl,
83
+ listUrl: listServerRelativeUrl,
84
+ id: itemId,
85
+ systemUpdate: true,
86
+ PageLayoutType: args.options.layoutType,
87
+ verbose: this.verbose,
88
+ debug: this.debug
93
89
  };
94
90
  if (args.options.layoutType === 'Article') {
95
- requestOptions.data.PromotedState = 0;
96
- requestOptions.data.BannerImageUrl = {
97
- Description: '/_layouts/15/images/sitepagethumbnail.png',
98
- Url: `${resource}/_layouts/15/images/sitepagethumbnail.png`
99
- };
91
+ listItemSetOptions.PromotedState = 0;
92
+ listItemSetOptions.BannerImageUrl = `${resource}/_layouts/15/images/sitepagethumbnail.png, /_layouts/15/images/sitepagethumbnail.png`;
100
93
  }
101
- yield request_1.default.post(requestOptions);
94
+ yield Cli_1.Cli.executeCommand(spoListItemSetCommand, { options: Object.assign(Object.assign({}, listItemSetOptions), { _: [] }) });
102
95
  }
103
96
  if (args.options.promoteAs) {
104
97
  const requestOptions = {
@@ -117,60 +110,50 @@ class SpoPageSetCommand extends SpoCommand_1.default {
117
110
  requestOptions.data = {
118
111
  WelcomePage: `SitePages/${pageName}`
119
112
  };
113
+ yield request_1.default.post(requestOptions);
120
114
  break;
121
115
  case 'NewsPage':
122
- requestOptions.url = `${args.options.webUrl}/_api/web/getfilebyserverrelativeurl('${serverRelativeFileUrl}')/ListItemAllFields`;
123
- requestOptions.headers = {
124
- 'X-RequestDigest': requestDigest,
125
- 'X-HTTP-Method': 'MERGE',
126
- 'IF-MATCH': '*',
127
- 'content-type': 'application/json;odata=nometadata',
128
- accept: 'application/json;odata=nometadata'
129
- };
130
- requestOptions.data = {
116
+ const newsPageItemId = yield this.getFileListItemId(args.options.webUrl, serverRelativeFileUrl);
117
+ const listItemSetOptions = {
118
+ webUrl: args.options.webUrl,
119
+ listUrl: listServerRelativeUrl,
120
+ id: newsPageItemId,
121
+ systemUpdate: true,
131
122
  PromotedState: 2,
132
- FirstPublishedDate: new Date().toISOString().replace('Z', '')
123
+ FirstPublishedDate: new Date().toISOString(),
124
+ verbose: this.verbose,
125
+ debug: this.debug
133
126
  };
127
+ yield Cli_1.Cli.executeCommand(spoListItemSetCommand, { options: Object.assign(Object.assign({}, listItemSetOptions), { _: [] }) });
134
128
  break;
135
129
  case 'Template':
136
- requestOptions.url = `${args.options.webUrl}/_api/web/getfilebyserverrelativeurl('${serverRelativeFileUrl}')/ListItemAllFields`;
130
+ const templateItemId = yield this.getFileListItemId(args.options.webUrl, serverRelativeFileUrl);
137
131
  requestOptions.headers = {
138
- 'X-RequestDigest': requestDigest,
139
- 'content-type': 'application/json;odata=nometadata',
140
- accept: 'application/json;odata=nometadata'
141
- };
142
- break;
143
- }
144
- const pageRes = yield request_1.default.post(requestOptions);
145
- if (args.options.promoteAs === 'Template') {
146
- const requestOptions = {
147
- responseType: 'json',
148
- url: `${args.options.webUrl}/_api/SitePages/Pages(${pageRes.Id})/SavePageAsTemplate`,
149
- headers: {
150
132
  'X-RequestDigest': requestDigest,
151
133
  'content-type': 'application/json;odata=nometadata',
152
134
  'X-HTTP-Method': 'POST',
153
135
  'IF-MATCH': '*',
154
136
  accept: 'application/json;odata=nometadata'
137
+ };
138
+ requestOptions.url = `${args.options.webUrl}/_api/SitePages/Pages(${templateItemId})/SavePageAsTemplate`;
139
+ const res = yield request_1.default.post(requestOptions);
140
+ if (fileNameWithoutExtension) {
141
+ pageData.Title = fileNameWithoutExtension;
142
+ }
143
+ if (pageDescription) {
144
+ pageData.Description = pageDescription;
155
145
  }
156
- };
157
- const res = yield request_1.default.post(requestOptions);
158
- if (fileNameWithoutExtension) {
159
- pageData.Title = fileNameWithoutExtension;
160
- }
161
- if (pageDescription) {
162
- pageData.Description = pageDescription;
163
- }
164
- if (res.BannerImageUrl) {
165
- pageData.BannerImageUrl = res.BannerImageUrl;
166
- }
167
- if (res.LayoutWebpartsContent) {
168
- pageData.LayoutWebpartsContent = res.LayoutWebpartsContent;
169
- }
170
- if (res.CanvasContent1) {
171
- pageData.CanvasContent1 = res.CanvasContent1;
172
- }
173
- pageId = res.Id;
146
+ if (res.BannerImageUrl) {
147
+ pageData.BannerImageUrl = res.BannerImageUrl;
148
+ }
149
+ if (res.LayoutWebpartsContent) {
150
+ pageData.LayoutWebpartsContent = res.LayoutWebpartsContent;
151
+ }
152
+ if (res.CanvasContent1) {
153
+ pageData.CanvasContent1 = res.CanvasContent1;
154
+ }
155
+ pageId = res.Id;
156
+ break;
174
157
  }
175
158
  }
176
159
  if (args.options.promoteAs !== 'Template') {
@@ -239,19 +222,11 @@ class SpoPageSetCommand extends SpoCommand_1.default {
239
222
  yield request_1.default.post(requestOptions);
240
223
  }
241
224
  if (args.options.demoteFrom === 'NewsPage') {
242
- const fileGetOptions = {
243
- webUrl: args.options.webUrl,
244
- url: serverRelativeFileUrl,
245
- asListItem: true,
246
- verbose: this.verbose,
247
- debug: this.debug
248
- };
249
- const fileGetOutput = yield Cli_1.Cli.executeCommandWithOutput(spoFileGetCommand, { options: Object.assign(Object.assign({}, fileGetOptions), { _: [] }) });
250
- const fileGetOutputJson = JSON.parse(fileGetOutput.stdout);
225
+ const fileId = yield this.getFileListItemId(args.options.webUrl, serverRelativeFileUrl);
251
226
  const listItemSetOptions = {
252
227
  webUrl: args.options.webUrl,
253
228
  listUrl: listServerRelativeUrl,
254
- id: fileGetOutputJson.Id,
229
+ id: fileId,
255
230
  systemUpdate: true,
256
231
  PromotedState: 0,
257
232
  verbose: this.verbose,
@@ -292,6 +267,20 @@ class SpoPageSetCommand extends SpoCommand_1.default {
292
267
  }
293
268
  });
294
269
  }
270
+ getFileListItemId(webUrl, serverRelativeFileUrl) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ const fileGetOptions = {
273
+ webUrl: webUrl,
274
+ url: serverRelativeFileUrl,
275
+ asListItem: true,
276
+ verbose: this.verbose,
277
+ debug: this.debug
278
+ };
279
+ const fileGetOutput = yield Cli_1.Cli.executeCommandWithOutput(spoFileGetCommand, { options: Object.assign(Object.assign({}, fileGetOptions), { _: [] }) });
280
+ const fileGetOutputJson = JSON.parse(fileGetOutput.stdout);
281
+ return fileGetOutputJson.Id;
282
+ });
283
+ }
295
284
  }
296
285
  _SpoPageSetCommand_instances = new WeakSet(), _SpoPageSetCommand_initTelemetry = function _SpoPageSetCommand_initTelemetry() {
297
286
  this.telemetry.push((args) => {
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const odata_1 = require("../../../../utils/odata");
13
+ const spo_1 = require("../../../../utils/spo");
14
+ const SpoCommand_1 = require("../../../base/SpoCommand");
15
+ const commands_1 = require("../../commands");
16
+ class SpoSiteAppCatalogListCommand extends SpoCommand_1.default {
17
+ get name() {
18
+ return commands_1.default.SITE_APPCATALOG_LIST;
19
+ }
20
+ get description() {
21
+ return 'List all site collection app catalogs within the tenant';
22
+ }
23
+ defaultProperties() {
24
+ return ['AbsoluteUrl', 'SiteID'];
25
+ }
26
+ commandAction(logger) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ try {
29
+ if (this.verbose) {
30
+ logger.logToStderr('Retrieving site collection app catalogs...');
31
+ }
32
+ const spoUrl = yield spo_1.spo.getSpoUrl(logger, this.debug);
33
+ const appCatalogs = yield odata_1.odata.getAllItems(`${spoUrl}/_api/Web/TenantAppCatalog/SiteCollectionAppCatalogsSites`);
34
+ logger.log(appCatalogs);
35
+ }
36
+ catch (err) {
37
+ this.handleRejectedODataJsonPromise(err);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ module.exports = new SpoSiteAppCatalogListCommand();
43
+ //# sourceMappingURL=site-appcatalog-list.js.map