@pnp/cli-microsoft365 12.0.0-beta.1752794 → 12.0.0-beta.235caf5
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.
- package/allCommands.json +1 -1
- package/allCommandsFull.json +1 -1
- package/dist/Auth.js +19 -2
- package/dist/cli/cli.js +3 -0
- package/dist/config.js +1 -0
- package/dist/m365/cli/commands/cli-consent.js +9 -2
- package/dist/m365/entra/commands/agent/agent-blueprint-list.js +52 -0
- package/dist/m365/entra/commands/m365group/m365group-add.js +52 -97
- package/dist/m365/entra/commands/m365group/m365group-conversation-list.js +20 -33
- package/dist/m365/entra/commands/m365group/m365group-conversation-post-list.js +20 -39
- package/dist/m365/entra/commands/m365group/m365group-get.js +20 -41
- package/dist/m365/entra/commands/m365group/m365group-list.js +11 -31
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-clear.js +8 -22
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-list.js +9 -25
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-remove.js +21 -43
- package/dist/m365/entra/commands/m365group/m365group-recyclebinitem-restore.js +21 -41
- package/dist/m365/entra/commands/m365group/m365group-remove.js +25 -46
- package/dist/m365/entra/commands/m365group/m365group-renew.js +19 -32
- package/dist/m365/entra/commands/m365group/m365group-set.js +86 -141
- package/dist/m365/entra/commands/m365group/m365group-teamify.js +20 -43
- package/dist/m365/entra/commands/m365group/m365group-user-add.js +44 -77
- package/dist/m365/entra/commands/m365group/m365group-user-list.js +28 -55
- package/dist/m365/entra/commands/m365group/m365group-user-remove.js +37 -74
- package/dist/m365/entra/commands/m365group/m365group-user-set.js +45 -77
- package/dist/m365/entra/commands.js +1 -0
- package/dist/m365/graph/commands/schemaextension/schemaextension-list.js +14 -16
- package/dist/m365/outlook/commands/calendargroup/calendargroup-add.js +97 -0
- package/dist/m365/outlook/commands/event/event-add.js +324 -0
- package/dist/m365/outlook/commands.js +2 -0
- package/dist/m365/spe/commands/container/container-permission-add.js +114 -0
- package/dist/m365/spe/commands/container/container-permission-remove.js +94 -0
- package/dist/m365/spe/commands/container/container-permission-set.js +90 -0
- package/dist/m365/spe/commands.js +3 -0
- package/dist/m365/spfx/commands/SpfxCompatibilityMatrix.js +15 -0
- package/dist/m365/spfx/commands/project/project-doctor/doctor-1.24.0.js +19 -0
- package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN012021_TSC_excludeDirectories.js +43 -0
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027002_OVERRIDES_qs.js +33 -0
- package/dist/m365/spfx/commands/project/project-upgrade/rules/FN027003_OVERRIDES_uuid.js +33 -0
- package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.24.0.js +77 -0
- package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
- package/dist/m365/spo/commands/commandset/commandset-add.js +17 -59
- package/dist/m365/spo/commands/commandset/commandset-get.js +24 -62
- package/dist/m365/spo/commands/commandset/commandset-list.js +11 -34
- package/dist/m365/spo/commands/commandset/commandset-remove.js +21 -54
- package/dist/m365/spo/commands/commandset/commandset-set.js +30 -83
- package/dist/m365/spo/commands/contenttype/contenttype-add.js +22 -51
- package/dist/m365/spo/commands/contenttype/contenttype-field-list.js +38 -62
- package/dist/m365/spo/commands/contenttype/contenttype-field-remove.js +25 -54
- package/dist/m365/spo/commands/contenttype/contenttype-field-set.js +20 -43
- package/dist/m365/spo/commands/contenttype/contenttype-get.js +29 -54
- package/dist/m365/spo/commands/contenttype/contenttype-list.js +13 -30
- package/dist/m365/spo/commands/contenttype/contenttype-remove.js +24 -39
- package/dist/m365/spo/commands/contenttype/contenttype-set.js +42 -63
- package/dist/m365/spo/commands/contenttype/contenttype-sync.js +37 -59
- package/dist/m365/spo/commands/contenttypehub/contenttypehub-get.js +5 -0
- package/dist/m365/spo/commands/customaction/customaction-add.js +124 -145
- package/dist/m365/spo/commands/customaction/customaction-clear.js +12 -43
- package/dist/m365/spo/commands/customaction/customaction-get.js +28 -59
- package/dist/m365/spo/commands/customaction/customaction-list.js +12 -42
- package/dist/m365/spo/commands/customaction/customaction-remove.js +26 -54
- package/dist/m365/spo/commands/customaction/customaction-set.js +75 -132
- package/dist/m365/spo/commands/externaluser/externaluser-list.js +5 -14
- package/dist/m365/spo/commands/knowledgehub/knowledgehub-get.js +5 -0
- package/dist/m365/spo/commands/knowledgehub/knowledgehub-remove.js +8 -22
- package/dist/m365/spo/commands/knowledgehub/knowledgehub-set.js +10 -18
- package/dist/m365/spo/commands/listitem/listitem-add.js +27 -55
- package/dist/m365/spo/commands/listitem/listitem-attachment-add.js +30 -58
- package/dist/m365/spo/commands/listitem/listitem-attachment-get.js +27 -52
- package/dist/m365/spo/commands/listitem/listitem-attachment-list.js +26 -50
- package/dist/m365/spo/commands/listitem/listitem-attachment-remove.js +28 -55
- package/dist/m365/spo/commands/listitem/listitem-attachment-set.js +30 -57
- package/dist/m365/spo/commands/listitem/listitem-batch-add.js +36 -58
- package/dist/m365/spo/commands/listitem/listitem-batch-remove.js +68 -92
- package/dist/m365/spo/commands/listitem/listitem-batch-set.js +37 -57
- package/dist/m365/spo/commands/listitem/listitem-get.js +45 -68
- package/dist/m365/spo/commands/listitem/listitem-isrecord.js +31 -55
- package/dist/m365/spo/commands/listitem/listitem-list.js +47 -81
- package/dist/m365/spo/commands/listitem/listitem-record-declare.js +37 -60
- package/dist/m365/spo/commands/listitem/listitem-record-lock.js +30 -52
- package/dist/m365/spo/commands/listitem/listitem-record-undeclare.js +31 -52
- package/dist/m365/spo/commands/listitem/listitem-record-unlock.js +30 -52
- package/dist/m365/spo/commands/listitem/listitem-remove.js +33 -61
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-ensure.js +46 -67
- package/dist/m365/spo/commands/listitem/listitem-retentionlabel-remove.js +33 -56
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +55 -98
- package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +48 -74
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-break.js +33 -56
- package/dist/m365/spo/commands/listitem/listitem-roleinheritance-reset.js +31 -53
- package/dist/m365/spo/commands/listitem/listitem-set.js +33 -58
- package/dist/m365/spo/commands/navigation/navigation-node-add.js +74 -120
- package/dist/m365/spo/commands/navigation/navigation-node-get.js +4 -13
- package/dist/m365/spo/commands/navigation/navigation-node-list.js +1 -1
- package/dist/m365/spo/commands/navigation/navigation-node-remove.js +13 -47
- package/dist/m365/spo/commands/navigation/navigation-node-set.js +53 -114
- package/dist/m365/spo/commands/orgassetslibrary/orgassetslibrary-list.js +1 -1
- package/dist/m365/spo/commands/page/page-column-list.js +7 -8
- package/dist/m365/spo/commands/page/page-section-list.js +15 -17
- package/dist/m365/spo/commands/page/page-unpublish.js +53 -0
- package/dist/m365/spo/commands/sitescript/sitescript-add.js +22 -37
- package/dist/m365/spo/commands/sitescript/sitescript-get.js +9 -26
- package/dist/m365/spo/commands/sitescript/sitescript-list.js +5 -0
- package/dist/m365/spo/commands/sitescript/sitescript-remove.js +9 -33
- package/dist/m365/spo/commands/sitescript/sitescript-set.js +29 -56
- package/dist/m365/spo/commands/spo-search.js +43 -116
- package/dist/m365/spo/commands/tenant/tenant-applicationcustomizer-add.js +8 -1
- package/dist/m365/spo/commands/tenant/tenant-commandset-add.js +8 -1
- package/dist/m365/spo/commands/term/term-group-list.js +7 -8
- package/dist/m365/spo/commands/term/term-set-list.js +6 -9
- package/dist/m365/spo/commands.js +1 -0
- package/dist/m365/spp/commands/contentcenter/contentcenter-list.js +5 -0
- package/dist/m365/spp/commands/model/model-get.js +25 -45
- package/dist/m365/spp/commands/model/model-list.js +12 -23
- package/dist/m365/spp/commands/model/model-remove.js +25 -45
- package/dist/m365/teams/commands/app/app-install.js +35 -44
- package/dist/m365/teams/commands/app/app-list.js +8 -33
- package/dist/m365/teams/commands/app/app-publish.js +21 -27
- package/dist/m365/teams/commands/app/app-remove.js +22 -39
- package/dist/m365/teams/commands/app/app-uninstall.js +12 -34
- package/dist/m365/teams/commands/app/app-update.js +35 -45
- package/dist/m365/teams/commands/funsettings/funsettings-list.js +12 -23
- package/dist/m365/teams/commands/funsettings/funsettings-set.js +18 -54
- package/dist/m365/teams/commands/guestsettings/guestsettings-list.js +12 -23
- package/dist/m365/teams/commands/guestsettings/guestsettings-set.js +15 -40
- package/dist/m365/teams/commands/meeting/meeting-add.js +57 -68
- package/dist/m365/teams/commands/meeting/meeting-attendancereport-get.js +33 -58
- package/dist/m365/teams/commands/meeting/meeting-attendancereport-list.js +14 -38
- package/dist/m365/teams/commands/meeting/meeting-get.js +14 -38
- package/dist/m365/teams/commands/meeting/meeting-list.js +34 -59
- package/dist/m365/teams/commands/meeting/meeting-transcript-get.js +34 -58
- package/dist/m365/teams/commands/meeting/meeting-transcript-list.js +29 -50
- package/dist/m365/teams/commands/membersettings/membersettings-list.js +12 -23
- package/dist/m365/teams/commands/membersettings/membersettings-set.js +18 -49
- package/dist/m365/teams/commands/message/message-get.js +19 -30
- package/dist/m365/teams/commands/message/message-list.js +26 -43
- package/dist/m365/teams/commands/message/message-remove.js +43 -58
- package/dist/m365/teams/commands/message/message-reply-list.js +19 -30
- package/dist/m365/teams/commands/message/message-restore.js +40 -50
- package/dist/m365/teams/commands/message/message-send.js +19 -30
- package/dist/m365/teams/commands/messagingsettings/messagingsettings-list.js +12 -23
- package/dist/m365/teams/commands/messagingsettings/messagingsettings-set.js +18 -60
- package/dist/m365/teams/commands/report/report-deviceusagedistributionusercounts.js +10 -0
- package/dist/m365/teams/commands/report/report-deviceusageusercounts.js +10 -0
- package/dist/m365/teams/commands/report/report-deviceusageuserdetail.js +22 -0
- package/dist/m365/teams/commands/report/report-directroutingcalls.js +19 -39
- package/dist/m365/teams/commands/report/report-pstncalls.js +19 -39
- package/dist/m365/teams/commands/report/report-useractivitycounts.js +10 -0
- package/dist/m365/teams/commands/report/report-useractivityusercounts.js +10 -0
- package/dist/m365/teams/commands/report/report-useractivityuserdetail.js +22 -0
- package/dist/m365/teams/commands/tab/tab-add.js +23 -49
- package/dist/m365/teams/commands/tab/tab-get.js +55 -56
- package/dist/m365/teams/commands/tab/tab-list.js +17 -28
- package/dist/m365/teams/commands/tab/tab-remove.js +23 -42
- package/dist/m365/teams/commands/team/team-add.js +76 -114
- package/dist/m365/teams/commands/team/team-app-list.js +23 -36
- package/dist/m365/teams/commands/team/team-archive.js +24 -39
- package/dist/m365/teams/commands/team/team-clone.js +28 -62
- package/dist/m365/teams/commands/team/team-get.js +23 -36
- package/dist/m365/teams/commands/team/team-list.js +43 -57
- package/dist/m365/teams/commands/team/team-remove.js +24 -37
- package/dist/m365/teams/commands/team/team-set.js +23 -52
- package/dist/m365/teams/commands/team/team-unarchive.js +23 -28
- package/dist/m365/teams/commands/user/user-app-add.js +40 -49
- package/dist/m365/teams/commands/user/user-app-list.js +26 -39
- package/dist/m365/teams/commands/user/user-app-remove.js +37 -49
- package/dist/m365/teams/commands/user/user-app-upgrade.js +36 -52
- package/dist/m365/teams/commands/user/user-list.js +17 -39
- package/dist/m365/tenant/commands/report/report-activeusercounts.js +2 -1
- package/dist/m365/tenant/commands/report/report-activeuserdetail.js +2 -1
- package/dist/m365/tenant/commands/report/report-office365activationcounts.js +9 -0
- package/dist/m365/tenant/commands/report/report-office365activationsusercounts.js +9 -0
- package/dist/m365/tenant/commands/report/report-office365activationsuserdetail.js +9 -0
- package/dist/m365/tenant/commands/report/report-servicesusercounts.js +2 -1
- package/dist/m365/tenant/commands/report/report-settings-get.js +5 -0
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +9 -20
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-list.js +8 -20
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-get.js +8 -15
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-healthissue-list.js +8 -15
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-get.js +12 -26
- package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-message-list.js +8 -22
- package/dist/utils/calendar.js +1 -1
- package/dist/utils/formatting.js +16 -0
- package/dist/utils/pid.js +7 -16
- package/dist/utils/spe.js +1 -1
- package/dist/utils/spo.js +39 -0
- package/dist/utils/validation.js +24 -0
- package/dist/utils/zod.js +17 -7
- package/docs/docs/cmd/entra/agent/agent-blueprint-list.mdx +175 -0
- package/docs/docs/cmd/login.mdx +15 -2
- package/docs/docs/cmd/outlook/calendargroup/calendargroup-add.mdx +126 -0
- package/docs/docs/cmd/outlook/event/event-add.mdx +390 -0
- package/docs/docs/cmd/spe/container/container-add.mdx +0 -8
- package/docs/docs/cmd/spe/container/container-list.mdx +0 -8
- package/docs/docs/cmd/spe/container/container-permission-add.mdx +140 -0
- package/docs/docs/cmd/spe/container/container-permission-remove.mdx +78 -0
- package/docs/docs/cmd/spe/container/container-permission-set.mdx +78 -0
- package/docs/docs/cmd/spe/container/container-recyclebinitem-list.mdx +0 -8
- package/docs/docs/cmd/spe/container/container-recyclebinitem-restore.mdx +0 -8
- package/docs/docs/cmd/spe/container/container-remove.mdx +0 -8
- package/docs/docs/cmd/spe/containertype/containertype-add.mdx +1 -1
- package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -1
- package/docs/docs/cmd/spo/externaluser/externaluser-list.mdx +17 -30
- package/docs/docs/cmd/spo/navigation/navigation-node-add.mdx +45 -30
- package/docs/docs/cmd/spo/navigation/navigation-node-get.mdx +64 -42
- package/docs/docs/cmd/spo/navigation/navigation-node-set.mdx +10 -8
- package/docs/docs/cmd/spo/orgassetslibrary/orgassetslibrary-list.mdx +0 -21
- package/docs/docs/cmd/spo/page/page-unpublish.mdx +63 -0
- package/docs/docs/cmd/teams/tab/tab-add.mdx +19 -0
- package/docs/docs/cmd/teams/tab/tab-get.mdx +19 -0
- package/docs/docs/cmd/teams/tab/tab-list.mdx +19 -0
- package/docs/docs/cmd/teams/tab/tab-remove.mdx +21 -0
- package/docs/docs/cmd/viva/engage/engage-message-add.mdx +17 -0
- package/docs/docs/cmd/viva/engage/engage-message-get.mdx +17 -0
- package/docs/docs/cmd/viva/engage/engage-message-list.mdx +17 -0
- package/docs/docs/cmd/viva/engage/engage-message-remove.mdx +19 -0
- package/package.json +4 -6
|
@@ -1,14 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
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");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoCustomActionAddCommand_instances, _SpoCustomActionAddCommand_initTelemetry, _SpoCustomActionAddCommand_initOptions, _SpoCustomActionAddCommand_initValidators;
|
|
1
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
7
2
|
import request from '../../../../request.js';
|
|
8
3
|
import { validation } from '../../../../utils/validation.js';
|
|
4
|
+
import { zod } from '../../../../utils/zod.js';
|
|
9
5
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
10
6
|
import { BasePermissions, PermissionKind } from '../../base-permissions.js';
|
|
11
7
|
import commands from '../../commands.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
const permissionKinds = Object.entries(PermissionKind)
|
|
10
|
+
.filter(([, value]) => typeof value === 'number')
|
|
11
|
+
.map(([key]) => key);
|
|
12
|
+
const permissionKindSet = new Set(permissionKinds);
|
|
13
|
+
const registrationTypes = {
|
|
14
|
+
None: 'None',
|
|
15
|
+
List: 'List',
|
|
16
|
+
ContentType: 'ContentType',
|
|
17
|
+
ProgId: 'ProgId',
|
|
18
|
+
FileType: 'FileType'
|
|
19
|
+
};
|
|
20
|
+
const registrationTypeValues = Object.values(registrationTypes);
|
|
21
|
+
export const options = z.strictObject({
|
|
22
|
+
...globalOptionsZod.shape,
|
|
23
|
+
webUrl: z.string().refine(val => validation.isValidSharePointUrl(val) === true, {
|
|
24
|
+
error: e => `${e.input} is not a valid SharePoint Online site URL.`
|
|
25
|
+
}).alias('u'),
|
|
26
|
+
name: z.string().alias('n'),
|
|
27
|
+
title: z.string().alias('t'),
|
|
28
|
+
location: z.string().alias('l'),
|
|
29
|
+
group: z.string().optional().alias('g'),
|
|
30
|
+
description: z.string().optional().alias('d'),
|
|
31
|
+
sequence: z.coerce.number().refine(val => val >= 0 && val <= 65536, {
|
|
32
|
+
message: 'Invalid option sequence. Expected value in range from 0 to 65536'
|
|
33
|
+
}).optional(),
|
|
34
|
+
actionUrl: z.string().optional(),
|
|
35
|
+
imageUrl: z.string().optional(),
|
|
36
|
+
commandUIExtension: z.string().optional().alias('e'),
|
|
37
|
+
registrationId: z.string().optional(),
|
|
38
|
+
registrationType: zod.coercedEnum(registrationTypes)
|
|
39
|
+
.optional()
|
|
40
|
+
.autocomplete(registrationTypeValues),
|
|
41
|
+
rights: z.string().refine(val => {
|
|
42
|
+
const items = val.split(',').map(item => item.trim());
|
|
43
|
+
return items.every(item => permissionKindSet.has(item));
|
|
44
|
+
}, {
|
|
45
|
+
error: e => {
|
|
46
|
+
const items = e.input.split(',').map(item => item.trim());
|
|
47
|
+
const invalid = items.find(item => !permissionKindSet.has(item));
|
|
48
|
+
return `Rights option '${invalid}' is not recognized as valid PermissionKind choice. Please note it is case sensitive`;
|
|
49
|
+
}
|
|
50
|
+
}).optional().autocomplete(permissionKinds),
|
|
51
|
+
scriptSrc: z.string().optional(),
|
|
52
|
+
scriptBlock: z.string().optional(),
|
|
53
|
+
scope: z.enum(['Site', 'Web']).optional().alias('s'),
|
|
54
|
+
clientSideComponentId: z.string().refine(val => validation.isValidGuid(val), {
|
|
55
|
+
error: e => `ClientSideComponentId ${e.input} is not a valid GUID`
|
|
56
|
+
}).optional().alias('c'),
|
|
57
|
+
clientSideComponentProperties: z.string().optional().alias('p')
|
|
58
|
+
});
|
|
12
59
|
class SpoCustomActionAddCommand extends SpoCommand {
|
|
13
60
|
get name() {
|
|
14
61
|
return commands.CUSTOMACTION_ADD;
|
|
@@ -16,25 +63,78 @@ class SpoCustomActionAddCommand extends SpoCommand {
|
|
|
16
63
|
get description() {
|
|
17
64
|
return 'Adds a user custom action for site or site collection';
|
|
18
65
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_SpoCustomActionAddCommand_instances.add(this);
|
|
22
|
-
__classPrivateFieldGet(this, _SpoCustomActionAddCommand_instances, "m", _SpoCustomActionAddCommand_initTelemetry).call(this);
|
|
23
|
-
__classPrivateFieldGet(this, _SpoCustomActionAddCommand_instances, "m", _SpoCustomActionAddCommand_initOptions).call(this);
|
|
24
|
-
__classPrivateFieldGet(this, _SpoCustomActionAddCommand_instances, "m", _SpoCustomActionAddCommand_initValidators).call(this);
|
|
66
|
+
get schema() {
|
|
67
|
+
return options;
|
|
25
68
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
69
|
+
getRefinedSchema(schema) {
|
|
70
|
+
return schema
|
|
71
|
+
.refine(opts => !opts.registrationId || opts.registrationType, {
|
|
72
|
+
message: 'Option registrationId is specified, but registrationType is missing',
|
|
73
|
+
path: ['registrationType'],
|
|
74
|
+
params: { customCode: 'required' }
|
|
75
|
+
})
|
|
76
|
+
.refine(opts => !opts.registrationType || opts.registrationId, {
|
|
77
|
+
message: 'Option registrationType is specified, but registrationId is missing',
|
|
78
|
+
path: ['registrationId'],
|
|
79
|
+
params: { customCode: 'required' }
|
|
80
|
+
})
|
|
81
|
+
.refine(opts => {
|
|
82
|
+
if (!opts.location) {
|
|
83
|
+
return true;
|
|
35
84
|
}
|
|
36
|
-
|
|
37
|
-
|
|
85
|
+
const location = opts.location.toLowerCase();
|
|
86
|
+
const locationsRequireGroup = [
|
|
87
|
+
'microsoft.sharepoint.standardmenu', 'microsoft.sharepoint.contenttypesettings',
|
|
88
|
+
'microsoft.sharepoint.contenttypetemplatesettings', 'microsoft.sharepoint.create',
|
|
89
|
+
'microsoft.sharepoint.groupspage', 'microsoft.sharepoint.listedit',
|
|
90
|
+
'microsoft.sharepoint.listedit.documentlibrary', 'microsoft.sharepoint.peoplepage',
|
|
91
|
+
'microsoft.sharepoint.sitesettings'
|
|
92
|
+
];
|
|
93
|
+
return !locationsRequireGroup.includes(location) || !!opts.group;
|
|
94
|
+
}, {
|
|
95
|
+
message: 'The location specified requires the group option to be specified as well',
|
|
96
|
+
path: ['group'],
|
|
97
|
+
params: { customCode: 'required' }
|
|
98
|
+
})
|
|
99
|
+
.refine(opts => {
|
|
100
|
+
if (!opts.location) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
const location = opts.location.toLowerCase();
|
|
104
|
+
if (location === 'scriptlink') {
|
|
105
|
+
return !!opts.scriptSrc || !!opts.scriptBlock;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
}, {
|
|
109
|
+
message: 'Option scriptSrc or scriptBlock is required when the location is set to ScriptLink',
|
|
110
|
+
params: {
|
|
111
|
+
customCode: 'optionSet',
|
|
112
|
+
options: ['scriptSrc', 'scriptBlock']
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
.refine(opts => {
|
|
116
|
+
if (!opts.location) {
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
const location = opts.location.toLowerCase();
|
|
120
|
+
if ((opts.scriptSrc || opts.scriptBlock) && location !== 'scriptlink') {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
return true;
|
|
124
|
+
}, {
|
|
125
|
+
message: 'Option scriptSrc or scriptBlock is specified, but the location option is different than ScriptLink. Please use --actionUrl, if the location should be different than ScriptLink'
|
|
126
|
+
})
|
|
127
|
+
.refine(opts => !(opts.scriptSrc && opts.scriptBlock), {
|
|
128
|
+
message: 'Either option scriptSrc or scriptBlock can be specified, but not both'
|
|
129
|
+
})
|
|
130
|
+
.refine(opts => !opts.clientSideComponentProperties || opts.clientSideComponentId, {
|
|
131
|
+
message: 'Option clientSideComponentProperties is specified, but the clientSideComponentId option is missing',
|
|
132
|
+
path: ['clientSideComponentId'],
|
|
133
|
+
params: { customCode: 'required' }
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
get permissionsKindMap() {
|
|
137
|
+
return permissionKinds;
|
|
38
138
|
}
|
|
39
139
|
async commandAction(logger, args) {
|
|
40
140
|
try {
|
|
@@ -91,7 +191,7 @@ class SpoCustomActionAddCommand extends SpoCommand {
|
|
|
91
191
|
if (options.description) {
|
|
92
192
|
requestBody.Description = options.description;
|
|
93
193
|
}
|
|
94
|
-
if (options.sequence) {
|
|
194
|
+
if (options.sequence !== undefined) {
|
|
95
195
|
requestBody.Sequence = options.sequence;
|
|
96
196
|
}
|
|
97
197
|
if (options.registrationType) {
|
|
@@ -149,126 +249,5 @@ class SpoCustomActionAddCommand extends SpoCommand {
|
|
|
149
249
|
return 0; // None
|
|
150
250
|
}
|
|
151
251
|
}
|
|
152
|
-
_SpoCustomActionAddCommand_instances = new WeakSet(), _SpoCustomActionAddCommand_initTelemetry = function _SpoCustomActionAddCommand_initTelemetry() {
|
|
153
|
-
this.telemetry.push((args) => {
|
|
154
|
-
Object.assign(this.telemetryProperties, {
|
|
155
|
-
location: args.options.location,
|
|
156
|
-
scope: args.options.scope || 'Web',
|
|
157
|
-
group: (!(!args.options.group)).toString(),
|
|
158
|
-
description: (!(!args.options.description)).toString(),
|
|
159
|
-
sequence: (!(!args.options.sequence)).toString(),
|
|
160
|
-
actionUrl: (!(!args.options.actionUrl)).toString(),
|
|
161
|
-
imageUrl: (!(!args.options.imageUrl)).toString(),
|
|
162
|
-
commandUIExtension: (!(!args.options.commandUIExtension)).toString(),
|
|
163
|
-
registrationId: args.options.registrationId,
|
|
164
|
-
registrationType: args.options.registrationType,
|
|
165
|
-
rights: args.options.rights,
|
|
166
|
-
scriptSrc: (!(!args.options.scriptSrc)).toString(),
|
|
167
|
-
scriptBlock: (!(!args.options.scriptBlock)).toString(),
|
|
168
|
-
clientSideComponentId: (!(!args.options.clientSideComponentId)).toString(),
|
|
169
|
-
clientSideComponentProperties: (!(!args.options.clientSideComponentProperties)).toString()
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
}, _SpoCustomActionAddCommand_initOptions = function _SpoCustomActionAddCommand_initOptions() {
|
|
173
|
-
this.options.unshift({
|
|
174
|
-
option: '-u, --webUrl <webUrl>'
|
|
175
|
-
}, {
|
|
176
|
-
option: '-n, --name <name>'
|
|
177
|
-
}, {
|
|
178
|
-
option: '-t, --title <title>'
|
|
179
|
-
}, {
|
|
180
|
-
option: '-l, --location <location>'
|
|
181
|
-
}, {
|
|
182
|
-
option: '-g, --group [group]'
|
|
183
|
-
}, {
|
|
184
|
-
option: '-d, --description [description]'
|
|
185
|
-
}, {
|
|
186
|
-
option: '--sequence [sequence]'
|
|
187
|
-
}, {
|
|
188
|
-
option: '--actionUrl [actionUrl]'
|
|
189
|
-
}, {
|
|
190
|
-
option: '--imageUrl [imageUrl]'
|
|
191
|
-
}, {
|
|
192
|
-
option: '-e, --commandUIExtension [commandUIExtension]'
|
|
193
|
-
}, {
|
|
194
|
-
option: '--registrationId [registrationId]'
|
|
195
|
-
}, {
|
|
196
|
-
option: '--registrationType [registrationType]',
|
|
197
|
-
autocomplete: ['None', 'List', 'ContentType', 'ProgId', 'FileType']
|
|
198
|
-
}, {
|
|
199
|
-
option: '--rights [rights]',
|
|
200
|
-
autocomplete: this.permissionsKindMap
|
|
201
|
-
}, {
|
|
202
|
-
option: '-s, --scope [scope]',
|
|
203
|
-
autocomplete: ['Site', 'Web']
|
|
204
|
-
}, {
|
|
205
|
-
option: '--scriptBlock [scriptBlock]'
|
|
206
|
-
}, {
|
|
207
|
-
option: '--scriptSrc [scriptSrc]'
|
|
208
|
-
}, {
|
|
209
|
-
option: '-c, --clientSideComponentId [clientSideComponentId]'
|
|
210
|
-
}, {
|
|
211
|
-
option: '-p, --clientSideComponentProperties [clientSideComponentProperties]'
|
|
212
|
-
});
|
|
213
|
-
}, _SpoCustomActionAddCommand_initValidators = function _SpoCustomActionAddCommand_initValidators() {
|
|
214
|
-
this.validators.push(async (args) => {
|
|
215
|
-
const isValidSharePointUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
216
|
-
if (isValidSharePointUrl !== true) {
|
|
217
|
-
return isValidSharePointUrl;
|
|
218
|
-
}
|
|
219
|
-
if (args.options.registrationId && !args.options.registrationType) {
|
|
220
|
-
return 'Option registrationId is specified, but registrationType is missing';
|
|
221
|
-
}
|
|
222
|
-
if (args.options.registrationType && !args.options.registrationId) {
|
|
223
|
-
return 'Option registrationType is specified, but registrationId is missing';
|
|
224
|
-
}
|
|
225
|
-
const location = args.options.location.toLowerCase();
|
|
226
|
-
const locationsRequireGroup = [
|
|
227
|
-
'microsoft.sharepoint.standardmenu', 'microsoft.sharepoint.contenttypesettings',
|
|
228
|
-
'microsoft.sharepoint.contenttypetemplatesettings', 'microsoft.sharepoint.create',
|
|
229
|
-
'microsoft.sharepoint.groupspage', 'microsoft.sharepoint.listedit',
|
|
230
|
-
'microsoft.sharepoint.listedit.documentlibrary', 'microsoft.sharepoint.peoplepage',
|
|
231
|
-
'microsoft.sharepoint.sitesettings'
|
|
232
|
-
];
|
|
233
|
-
if (locationsRequireGroup.indexOf(location) > -1 && !args.options.group) {
|
|
234
|
-
return `The location specified requires the group option to be specified as well`;
|
|
235
|
-
}
|
|
236
|
-
if (location === 'scriptlink' &&
|
|
237
|
-
!args.options.scriptSrc &&
|
|
238
|
-
!args.options.scriptBlock) {
|
|
239
|
-
return 'Option scriptSrc or scriptBlock is required when the location is set to ScriptLink';
|
|
240
|
-
}
|
|
241
|
-
if ((args.options.scriptSrc || args.options.scriptBlock) && location !== 'scriptlink') {
|
|
242
|
-
return 'Option scriptSrc or scriptBlock is specified, but the location option is different than ScriptLink. Please use --actionUrl, if the location should be different than ScriptLink';
|
|
243
|
-
}
|
|
244
|
-
if (args.options.scriptSrc && args.options.scriptBlock) {
|
|
245
|
-
return 'Either option scriptSrc or scriptBlock can be specified, but not both';
|
|
246
|
-
}
|
|
247
|
-
if (args.options.sequence && (args.options.sequence < 0 || args.options.sequence > 65536)) {
|
|
248
|
-
return 'Invalid option sequence. Expected value in range from 0 to 65536';
|
|
249
|
-
}
|
|
250
|
-
if (args.options.clientSideComponentId && validation.isValidGuid(args.options.clientSideComponentId) === false) {
|
|
251
|
-
return `ClientSideComponentId ${args.options.clientSideComponentId} is not a valid GUID`;
|
|
252
|
-
}
|
|
253
|
-
if (args.options.clientSideComponentProperties && !args.options.clientSideComponentId) {
|
|
254
|
-
return `Option clientSideComponentProperties is specified, but the clientSideComponentId option is missing`;
|
|
255
|
-
}
|
|
256
|
-
if (args.options.scope &&
|
|
257
|
-
args.options.scope !== 'Site' &&
|
|
258
|
-
args.options.scope !== 'Web') {
|
|
259
|
-
return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web`;
|
|
260
|
-
}
|
|
261
|
-
if (args.options.rights) {
|
|
262
|
-
const rights = args.options.rights.split(',');
|
|
263
|
-
for (const item of rights) {
|
|
264
|
-
const kind = PermissionKind[item.trim()];
|
|
265
|
-
if (!kind) {
|
|
266
|
-
return `Rights option '${item}' is not recognized as valid PermissionKind choice. Please note it is case sensitive`;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return true;
|
|
271
|
-
});
|
|
272
|
-
};
|
|
273
252
|
export default new SpoCustomActionAddCommand();
|
|
274
253
|
//# sourceMappingURL=customaction-add.js.map
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
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");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoCustomActionClearCommand_instances, _SpoCustomActionClearCommand_initTelemetry, _SpoCustomActionClearCommand_initOptions, _SpoCustomActionClearCommand_initValidators;
|
|
7
1
|
import chalk from 'chalk';
|
|
8
2
|
import { cli } from '../../../../cli/cli.js';
|
|
3
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
9
4
|
import request from '../../../../request.js';
|
|
10
5
|
import { validation } from '../../../../utils/validation.js';
|
|
11
6
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
12
7
|
import commands from '../../commands.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export const options = z.strictObject({
|
|
10
|
+
...globalOptionsZod.shape,
|
|
11
|
+
webUrl: z.string().refine(val => validation.isValidSharePointUrl(val) === true, {
|
|
12
|
+
error: e => `${e.input} is not a valid SharePoint Online site URL.`
|
|
13
|
+
}).alias('u'),
|
|
14
|
+
scope: z.enum(['Site', 'Web', 'All']).optional().alias('s'),
|
|
15
|
+
force: z.boolean().optional().alias('f')
|
|
16
|
+
});
|
|
13
17
|
class SpoCustomActionClearCommand extends SpoCommand {
|
|
14
18
|
get name() {
|
|
15
19
|
return commands.CUSTOMACTION_CLEAR;
|
|
@@ -17,12 +21,8 @@ class SpoCustomActionClearCommand extends SpoCommand {
|
|
|
17
21
|
get description() {
|
|
18
22
|
return 'Deletes all custom actions in the collection';
|
|
19
23
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
_SpoCustomActionClearCommand_instances.add(this);
|
|
23
|
-
__classPrivateFieldGet(this, _SpoCustomActionClearCommand_instances, "m", _SpoCustomActionClearCommand_initTelemetry).call(this);
|
|
24
|
-
__classPrivateFieldGet(this, _SpoCustomActionClearCommand_instances, "m", _SpoCustomActionClearCommand_initOptions).call(this);
|
|
25
|
-
__classPrivateFieldGet(this, _SpoCustomActionClearCommand_instances, "m", _SpoCustomActionClearCommand_initValidators).call(this);
|
|
24
|
+
get schema() {
|
|
25
|
+
return options;
|
|
26
26
|
}
|
|
27
27
|
async commandAction(logger, args) {
|
|
28
28
|
const clearCustomActions = async () => {
|
|
@@ -69,36 +69,5 @@ class SpoCustomActionClearCommand extends SpoCommand {
|
|
|
69
69
|
await this.clearScopedCustomActions(options);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
_SpoCustomActionClearCommand_instances = new WeakSet(), _SpoCustomActionClearCommand_initTelemetry = function _SpoCustomActionClearCommand_initTelemetry() {
|
|
73
|
-
this.telemetry.push((args) => {
|
|
74
|
-
Object.assign(this.telemetryProperties, {
|
|
75
|
-
scope: args.options.scope || 'All',
|
|
76
|
-
force: (!(!args.options.force)).toString()
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
}, _SpoCustomActionClearCommand_initOptions = function _SpoCustomActionClearCommand_initOptions() {
|
|
80
|
-
this.options.unshift({
|
|
81
|
-
option: '-u, --webUrl <webUrl>'
|
|
82
|
-
}, {
|
|
83
|
-
option: '-s, --scope [scope]',
|
|
84
|
-
autocomplete: ['Site', 'Web', 'All']
|
|
85
|
-
}, {
|
|
86
|
-
option: '-f, --force'
|
|
87
|
-
});
|
|
88
|
-
}, _SpoCustomActionClearCommand_initValidators = function _SpoCustomActionClearCommand_initValidators() {
|
|
89
|
-
this.validators.push(async (args) => {
|
|
90
|
-
const isValidUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
91
|
-
if (typeof isValidUrl === 'string') {
|
|
92
|
-
return isValidUrl;
|
|
93
|
-
}
|
|
94
|
-
if (args.options.scope &&
|
|
95
|
-
args.options.scope !== 'Site' &&
|
|
96
|
-
args.options.scope !== 'Web' &&
|
|
97
|
-
args.options.scope !== 'All') {
|
|
98
|
-
return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web|All`;
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
72
|
export default new SpoCustomActionClearCommand();
|
|
104
73
|
//# sourceMappingURL=customaction-clear.js.map
|
|
@@ -1,15 +1,25 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
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");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoCustomActionGetCommand_instances, _SpoCustomActionGetCommand_initTelemetry, _SpoCustomActionGetCommand_initOptions, _SpoCustomActionGetCommand_initValidators, _SpoCustomActionGetCommand_initOptionSets;
|
|
7
1
|
import { cli } from '../../../../cli/cli.js';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
8
3
|
import { formatting } from '../../../../utils/formatting.js';
|
|
9
4
|
import { spo } from '../../../../utils/spo.js';
|
|
10
5
|
import { validation } from '../../../../utils/validation.js';
|
|
11
6
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
12
7
|
import commands from '../../commands.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export const options = z.strictObject({
|
|
10
|
+
...globalOptionsZod.shape,
|
|
11
|
+
id: z.string().refine(val => validation.isValidGuid(val), {
|
|
12
|
+
error: e => `${e.input} is not valid. Custom action id (Guid) expected.`
|
|
13
|
+
}).optional().alias('i'),
|
|
14
|
+
title: z.string().optional().alias('t'),
|
|
15
|
+
clientSideComponentId: z.string().refine(val => validation.isValidGuid(val), {
|
|
16
|
+
error: e => `${e.input} is not a valid GUID.`
|
|
17
|
+
}).optional().alias('c'),
|
|
18
|
+
webUrl: z.string().refine(val => validation.isValidSharePointUrl(val) === true, {
|
|
19
|
+
error: e => `${e.input} is not a valid SharePoint Online site URL.`
|
|
20
|
+
}).alias('u'),
|
|
21
|
+
scope: z.enum(['Site', 'Web', 'All']).optional().alias('s')
|
|
22
|
+
});
|
|
13
23
|
class SpoCustomActionGetCommand extends SpoCommand {
|
|
14
24
|
get name() {
|
|
15
25
|
return commands.CUSTOMACTION_GET;
|
|
@@ -17,13 +27,18 @@ class SpoCustomActionGetCommand extends SpoCommand {
|
|
|
17
27
|
get description() {
|
|
18
28
|
return 'Gets details for the specified custom action';
|
|
19
29
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
get schema() {
|
|
31
|
+
return options;
|
|
32
|
+
}
|
|
33
|
+
getRefinedSchema(schema) {
|
|
34
|
+
return schema
|
|
35
|
+
.refine(opts => [opts.id, opts.title, opts.clientSideComponentId].filter(x => x !== undefined).length === 1, {
|
|
36
|
+
message: 'Specify one of id, title or clientSideComponentId',
|
|
37
|
+
params: {
|
|
38
|
+
customCode: 'optionSet',
|
|
39
|
+
options: ['id', 'title', 'clientSideComponentId']
|
|
40
|
+
}
|
|
41
|
+
});
|
|
27
42
|
}
|
|
28
43
|
async commandAction(logger, args) {
|
|
29
44
|
try {
|
|
@@ -97,51 +112,5 @@ class SpoCustomActionGetCommand extends SpoCommand {
|
|
|
97
112
|
return `${scope}`;
|
|
98
113
|
}
|
|
99
114
|
}
|
|
100
|
-
_SpoCustomActionGetCommand_instances = new WeakSet(), _SpoCustomActionGetCommand_initTelemetry = function _SpoCustomActionGetCommand_initTelemetry() {
|
|
101
|
-
this.telemetry.push((args) => {
|
|
102
|
-
Object.assign(this.telemetryProperties, {
|
|
103
|
-
id: typeof args.options.id !== 'undefined',
|
|
104
|
-
title: typeof args.options.title !== 'undefined',
|
|
105
|
-
clientSideComponentId: typeof args.options.clientSideComponentId !== 'undefined',
|
|
106
|
-
scope: args.options.scope || 'All'
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
}, _SpoCustomActionGetCommand_initOptions = function _SpoCustomActionGetCommand_initOptions() {
|
|
110
|
-
this.options.unshift({
|
|
111
|
-
option: '-i, --id [id]'
|
|
112
|
-
}, {
|
|
113
|
-
option: '-t, --title [title]'
|
|
114
|
-
}, {
|
|
115
|
-
option: '-c, --clientSideComponentId [clientSideComponentId]'
|
|
116
|
-
}, {
|
|
117
|
-
option: '-u, --webUrl <webUrl>'
|
|
118
|
-
}, {
|
|
119
|
-
option: '-s, --scope [scope]',
|
|
120
|
-
autocomplete: ['Site', 'Web', 'All']
|
|
121
|
-
});
|
|
122
|
-
}, _SpoCustomActionGetCommand_initValidators = function _SpoCustomActionGetCommand_initValidators() {
|
|
123
|
-
this.validators.push(async (args) => {
|
|
124
|
-
if (args.options.id && validation.isValidGuid(args.options.id) === false) {
|
|
125
|
-
return `${args.options.id} is not valid. Custom action id (Guid) expected.`;
|
|
126
|
-
}
|
|
127
|
-
const isValidUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
128
|
-
if (typeof isValidUrl === 'string') {
|
|
129
|
-
return isValidUrl;
|
|
130
|
-
}
|
|
131
|
-
if (args.options.scope) {
|
|
132
|
-
if (args.options.scope !== 'Site' &&
|
|
133
|
-
args.options.scope !== 'Web' &&
|
|
134
|
-
args.options.scope !== 'All') {
|
|
135
|
-
return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web|All`;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (args.options.clientSideComponentId && validation.isValidGuid(args.options.clientSideComponentId) === false) {
|
|
139
|
-
return `${args.options.clientSideComponentId} is not a valid GUID.`;
|
|
140
|
-
}
|
|
141
|
-
return true;
|
|
142
|
-
});
|
|
143
|
-
}, _SpoCustomActionGetCommand_initOptionSets = function _SpoCustomActionGetCommand_initOptionSets() {
|
|
144
|
-
this.optionSets.push({ options: ['id', 'title', 'clientSideComponentId'] });
|
|
145
|
-
};
|
|
146
115
|
export default new SpoCustomActionGetCommand();
|
|
147
116
|
//# sourceMappingURL=customaction-get.js.map
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
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");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoCustomActionListCommand_instances, _SpoCustomActionListCommand_initTelemetry, _SpoCustomActionListCommand_initOptions, _SpoCustomActionListCommand_initValidators;
|
|
1
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
7
2
|
import { spo } from '../../../../utils/spo.js';
|
|
8
3
|
import { validation } from '../../../../utils/validation.js';
|
|
9
4
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
10
5
|
import commands from '../../commands.js';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export const options = z.strictObject({
|
|
8
|
+
...globalOptionsZod.shape,
|
|
9
|
+
webUrl: z.string().refine(val => validation.isValidSharePointUrl(val) === true, {
|
|
10
|
+
error: e => `${e.input} is not a valid SharePoint Online site URL.`
|
|
11
|
+
}).alias('u'),
|
|
12
|
+
scope: z.enum(['Site', 'Web', 'All']).optional().alias('s')
|
|
13
|
+
});
|
|
11
14
|
class SpoCustomActionListCommand extends SpoCommand {
|
|
12
15
|
get name() {
|
|
13
16
|
return commands.CUSTOMACTION_LIST;
|
|
@@ -15,16 +18,12 @@ class SpoCustomActionListCommand extends SpoCommand {
|
|
|
15
18
|
get description() {
|
|
16
19
|
return 'Lists all user custom actions at the given scope';
|
|
17
20
|
}
|
|
21
|
+
get schema() {
|
|
22
|
+
return options;
|
|
23
|
+
}
|
|
18
24
|
defaultProperties() {
|
|
19
25
|
return ['Name', 'Location', 'Scope', 'Id'];
|
|
20
26
|
}
|
|
21
|
-
constructor() {
|
|
22
|
-
super();
|
|
23
|
-
_SpoCustomActionListCommand_instances.add(this);
|
|
24
|
-
__classPrivateFieldGet(this, _SpoCustomActionListCommand_instances, "m", _SpoCustomActionListCommand_initTelemetry).call(this);
|
|
25
|
-
__classPrivateFieldGet(this, _SpoCustomActionListCommand_instances, "m", _SpoCustomActionListCommand_initOptions).call(this);
|
|
26
|
-
__classPrivateFieldGet(this, _SpoCustomActionListCommand_instances, "m", _SpoCustomActionListCommand_initValidators).call(this);
|
|
27
|
-
}
|
|
28
27
|
async commandAction(logger, args) {
|
|
29
28
|
try {
|
|
30
29
|
const scope = args.options.scope ? args.options.scope : 'All';
|
|
@@ -52,34 +51,5 @@ class SpoCustomActionListCommand extends SpoCommand {
|
|
|
52
51
|
return `${scope}`;
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
|
-
_SpoCustomActionListCommand_instances = new WeakSet(), _SpoCustomActionListCommand_initTelemetry = function _SpoCustomActionListCommand_initTelemetry() {
|
|
56
|
-
this.telemetry.push((args) => {
|
|
57
|
-
Object.assign(this.telemetryProperties, {
|
|
58
|
-
scope: args.options.scope || 'All'
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}, _SpoCustomActionListCommand_initOptions = function _SpoCustomActionListCommand_initOptions() {
|
|
62
|
-
this.options.unshift({
|
|
63
|
-
option: '-u, --webUrl <webUrl>'
|
|
64
|
-
}, {
|
|
65
|
-
option: '-s, --scope [scope]',
|
|
66
|
-
autocomplete: ['Site', 'Web', 'All']
|
|
67
|
-
});
|
|
68
|
-
}, _SpoCustomActionListCommand_initValidators = function _SpoCustomActionListCommand_initValidators() {
|
|
69
|
-
this.validators.push(async (args) => {
|
|
70
|
-
const isValidUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
71
|
-
if (typeof isValidUrl === 'string') {
|
|
72
|
-
return isValidUrl;
|
|
73
|
-
}
|
|
74
|
-
if (args.options.scope) {
|
|
75
|
-
if (args.options.scope !== 'Site' &&
|
|
76
|
-
args.options.scope !== 'Web' &&
|
|
77
|
-
args.options.scope !== 'All') {
|
|
78
|
-
return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web|All`;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return true;
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
54
|
export default new SpoCustomActionListCommand();
|
|
85
55
|
//# sourceMappingURL=customaction-list.js.map
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
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");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var _SpoCustomActionRemoveCommand_instances, _SpoCustomActionRemoveCommand_initTelemetry, _SpoCustomActionRemoveCommand_initOptions, _SpoCustomActionRemoveCommand_initValidators, _SpoCustomActionRemoveCommand_initOptionSets;
|
|
7
1
|
import { cli } from '../../../../cli/cli.js';
|
|
2
|
+
import { globalOptionsZod } from '../../../../Command.js';
|
|
8
3
|
import request from '../../../../request.js';
|
|
9
4
|
import { formatting } from '../../../../utils/formatting.js';
|
|
10
5
|
import { spo } from '../../../../utils/spo.js';
|
|
11
6
|
import { validation } from '../../../../utils/validation.js';
|
|
12
7
|
import SpoCommand from '../../../base/SpoCommand.js';
|
|
13
8
|
import commands from '../../commands.js';
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
export const options = z.strictObject({
|
|
11
|
+
...globalOptionsZod.shape,
|
|
12
|
+
id: z.string().refine(val => validation.isValidGuid(val), {
|
|
13
|
+
error: e => `${e.input} is not valid. Custom action Id (GUID) expected.`
|
|
14
|
+
}).optional().alias('i'),
|
|
15
|
+
title: z.string().optional().alias('t'),
|
|
16
|
+
webUrl: z.string().refine(val => validation.isValidSharePointUrl(val) === true, {
|
|
17
|
+
error: e => `${e.input} is not a valid SharePoint Online site URL.`
|
|
18
|
+
}).alias('u'),
|
|
19
|
+
scope: z.enum(['Site', 'Web', 'All']).optional().alias('s'),
|
|
20
|
+
force: z.boolean().optional().alias('f')
|
|
21
|
+
});
|
|
14
22
|
class SpoCustomActionRemoveCommand extends SpoCommand {
|
|
15
23
|
get name() {
|
|
16
24
|
return commands.CUSTOMACTION_REMOVE;
|
|
@@ -18,13 +26,18 @@ class SpoCustomActionRemoveCommand extends SpoCommand {
|
|
|
18
26
|
get description() {
|
|
19
27
|
return 'Removes the specified custom action';
|
|
20
28
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
get schema() {
|
|
30
|
+
return options;
|
|
31
|
+
}
|
|
32
|
+
getRefinedSchema(schema) {
|
|
33
|
+
return schema
|
|
34
|
+
.refine(opts => [opts.id, opts.title].filter(x => x !== undefined).length === 1, {
|
|
35
|
+
message: 'Specify one of id or title',
|
|
36
|
+
params: {
|
|
37
|
+
customCode: 'optionSet',
|
|
38
|
+
options: ['id', 'title']
|
|
39
|
+
}
|
|
40
|
+
});
|
|
28
41
|
}
|
|
29
42
|
async commandAction(logger, args) {
|
|
30
43
|
const removeCustomAction = async () => {
|
|
@@ -99,46 +112,5 @@ class SpoCustomActionRemoveCommand extends SpoCommand {
|
|
|
99
112
|
return siteResult;
|
|
100
113
|
}
|
|
101
114
|
}
|
|
102
|
-
_SpoCustomActionRemoveCommand_instances = new WeakSet(), _SpoCustomActionRemoveCommand_initTelemetry = function _SpoCustomActionRemoveCommand_initTelemetry() {
|
|
103
|
-
this.telemetry.push((args) => {
|
|
104
|
-
Object.assign(this.telemetryProperties, {
|
|
105
|
-
scope: args.options.scope || 'All',
|
|
106
|
-
force: (!(!args.options.force)).toString()
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
}, _SpoCustomActionRemoveCommand_initOptions = function _SpoCustomActionRemoveCommand_initOptions() {
|
|
110
|
-
this.options.unshift({
|
|
111
|
-
option: '-i, --id [id]'
|
|
112
|
-
}, {
|
|
113
|
-
option: '-t, --title [title]'
|
|
114
|
-
}, {
|
|
115
|
-
option: '-u, --webUrl <webUrl>'
|
|
116
|
-
}, {
|
|
117
|
-
option: '-s, --scope [scope]',
|
|
118
|
-
autocomplete: ['Site', 'Web', 'All']
|
|
119
|
-
}, {
|
|
120
|
-
option: '-f, --force'
|
|
121
|
-
});
|
|
122
|
-
}, _SpoCustomActionRemoveCommand_initValidators = function _SpoCustomActionRemoveCommand_initValidators() {
|
|
123
|
-
this.validators.push(async (args) => {
|
|
124
|
-
if (args.options.id && validation.isValidGuid(args.options.id) === false) {
|
|
125
|
-
return `${args.options.id} is not valid. Custom action Id (GUID) expected.`;
|
|
126
|
-
}
|
|
127
|
-
const isValidUrl = validation.isValidSharePointUrl(args.options.webUrl);
|
|
128
|
-
if (typeof isValidUrl === 'string') {
|
|
129
|
-
return isValidUrl;
|
|
130
|
-
}
|
|
131
|
-
if (args.options.scope) {
|
|
132
|
-
if (args.options.scope !== 'Site' &&
|
|
133
|
-
args.options.scope !== 'Web' &&
|
|
134
|
-
args.options.scope !== 'All') {
|
|
135
|
-
return `${args.options.scope} is not a valid custom action scope. Allowed values are Site|Web|All`;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return true;
|
|
139
|
-
});
|
|
140
|
-
}, _SpoCustomActionRemoveCommand_initOptionSets = function _SpoCustomActionRemoveCommand_initOptionSets() {
|
|
141
|
-
this.optionSets.push({ options: ['id', 'title'] });
|
|
142
|
-
};
|
|
143
115
|
export default new SpoCustomActionRemoveCommand();
|
|
144
116
|
//# sourceMappingURL=customaction-remove.js.map
|