@pnp/cli-microsoft365 11.1.0-beta.8311bbf → 11.1.0-beta.871ff4d

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 (190) hide show
  1. package/.devproxy/api-specs/sharepoint.yaml +41 -0
  2. package/allCommands.json +1 -1
  3. package/allCommandsFull.json +1 -1
  4. package/dist/Auth.js +10 -7
  5. package/dist/Command.js +2 -2
  6. package/dist/auth/msalCachePlugin.js +6 -2
  7. package/dist/autocomplete.js +6 -2
  8. package/dist/chili/chili.js +2 -1
  9. package/dist/cli/cli.js +4 -2
  10. package/dist/config.js +0 -1
  11. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +2 -2
  12. package/dist/m365/app/commands/permission/permission-list.js +4 -2
  13. package/dist/m365/commands/setup.js +6 -3
  14. package/dist/m365/entra/commands/app/app-role-add.js +1 -1
  15. package/dist/m365/entra/commands/group/group-add.js +1 -1
  16. package/dist/m365/entra/commands/group/group-set.js +1 -1
  17. package/dist/m365/entra/commands/license/license-list.js +5 -0
  18. package/dist/m365/entra/commands/m365group/m365group-add.js +0 -1
  19. package/dist/m365/file/commands/convert/convert-pdf.js +1 -6
  20. package/dist/m365/flow/commands/flow-export.js +8 -5
  21. package/dist/m365/flow/commands/run/run-get.js +3 -3
  22. package/dist/m365/graph/commands/schemaextension/schemaextension-set.js +1 -1
  23. package/dist/m365/pa/commands/app/app-export.js +1 -1
  24. package/dist/m365/pa/commands/app/app-get.js +1 -1
  25. package/dist/m365/planner/commands/tenant/tenant-settings-list.js +5 -0
  26. package/dist/m365/pp/commands/solution/solution-publisher-get.js +1 -1
  27. package/dist/m365/purview/commands/retentioneventtype/retentioneventtype-list.js +5 -0
  28. package/dist/m365/purview/commands/retentionlabel/retentionlabel-list.js +5 -0
  29. package/dist/m365/spfx/commands/package/package-generate.js +3 -1
  30. package/dist/m365/spfx/commands/project/base-project-command.js +13 -5
  31. package/dist/m365/spfx/commands/project/project-doctor/rules/FN021007_PKG_only_one_rush_stack_compiler_installed.js +1 -1
  32. package/dist/m365/spfx/commands/project/project-externalize/rules/PnPJsRule.js +6 -4
  33. package/dist/m365/spfx/commands/project/project-model/ScssFile.js +3 -1
  34. package/dist/m365/spfx/commands/project/project-model/TsFile.js +6 -2
  35. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.15.2.js +1 -1
  36. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.16.0.js +2 -0
  37. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.17.0.js +2 -0
  38. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.18.0.js +2 -0
  39. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.19.0.js +2 -0
  40. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.20.0.js +2 -0
  41. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.21.0.js +2 -0
  42. package/dist/m365/spfx/commands/spfx-doctor.js +5 -5
  43. package/dist/m365/spo/commands/file/file-add.js +4 -2
  44. package/dist/m365/spo/commands/file/file-rename.js +3 -4
  45. package/dist/m365/spo/commands/hubsite/hubsite-list.js +1 -1
  46. package/dist/m365/spo/commands/listitem/listitem-attachment-add.js +1 -1
  47. package/dist/m365/spo/commands/listitem/listitem-batch-set.js +9 -5
  48. package/dist/m365/spo/commands/page/clientsidepages.js +12 -12
  49. package/dist/m365/spo/commands/page/page-add.js +4 -2
  50. package/dist/m365/spo/commands/page/page-clientsidewebpart-add.js +1 -0
  51. package/dist/m365/spo/commands/page/page-set.js +4 -2
  52. package/dist/m365/spo/commands/page/page-text-add.js +1 -0
  53. package/dist/m365/spo/commands/propertybag/propertybag-base.js +34 -54
  54. package/dist/m365/spo/commands/theme/theme-apply.js +1 -1
  55. package/dist/m365/spo/commands/web/web-alert-list.js +107 -0
  56. package/dist/m365/spo/commands/web/web-alert-remove.js +59 -0
  57. package/dist/m365/spo/commands/web/web-reindex.js +17 -27
  58. package/dist/m365/spo/commands.js +2 -0
  59. package/dist/m365/teams/commands/tab/tab-add.js +9 -3
  60. package/dist/m365/viva/commands/connections/connections-app-create.js +1 -1
  61. package/dist/m365/viva/commands/engage/engage-community-user-add.js +1 -1
  62. package/dist/m365/viva/commands/engage/engage-community-user-remove.js +1 -1
  63. package/dist/telemetry.js +3 -1
  64. package/dist/utils/accessToken.js +4 -0
  65. package/dist/utils/cache.js +3 -2
  66. package/dist/utils/customAppScope.js +1 -1
  67. package/dist/utils/directoryExtension.js +1 -1
  68. package/dist/utils/entraAdministrativeUnit.js +1 -1
  69. package/dist/utils/entraApp.js +2 -2
  70. package/dist/utils/entraDevice.js +1 -1
  71. package/dist/utils/entraServicePrincipal.js +2 -2
  72. package/dist/utils/formatting.js +1 -1
  73. package/dist/utils/md.js +2 -2
  74. package/dist/utils/odata.js +2 -0
  75. package/dist/utils/planner.js +1 -1
  76. package/dist/utils/powerPlatform.js +2 -2
  77. package/dist/utils/roleDefinition.js +2 -2
  78. package/dist/utils/spo.js +10 -11
  79. package/dist/utils/urlUtil.js +1 -1
  80. package/dist/utils/validation.js +1 -1
  81. package/dist/utils/vivaEngage.js +3 -3
  82. package/docs/docs/cmd/booking/business/business-get.mdx +18 -1
  83. package/docs/docs/cmd/booking/business/business-list.mdx +18 -1
  84. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-add.mdx +19 -0
  85. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-get.mdx +19 -0
  86. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-list.mdx +19 -0
  87. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-add.mdx +21 -0
  88. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-get.mdx +19 -0
  89. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-list.mdx +19 -0
  90. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-member-remove.mdx +21 -0
  91. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-remove.mdx +21 -0
  92. package/docs/docs/cmd/entra/administrativeunit/administrativeunit-roleassignment-add.mdx +19 -0
  93. package/docs/docs/cmd/entra/app/app-add.mdx +18 -0
  94. package/docs/docs/cmd/entra/app/app-get.mdx +19 -1
  95. package/docs/docs/cmd/entra/app/app-list.mdx +18 -1
  96. package/docs/docs/cmd/entra/app/app-remove.mdx +20 -0
  97. package/docs/docs/cmd/entra/app/app-set.mdx +20 -0
  98. package/docs/docs/cmd/entra/approleassignment/approleassignment-add.mdx +18 -0
  99. package/docs/docs/cmd/entra/approleassignment/approleassignment-list.mdx +18 -0
  100. package/docs/docs/cmd/entra/approleassignment/approleassignment-remove.mdx +20 -0
  101. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-add.mdx +14 -0
  102. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-get.mdx +15 -0
  103. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-list.mdx +14 -0
  104. package/docs/docs/cmd/entra/enterpriseapp/enterpriseapp-remove.mdx +14 -0
  105. package/docs/docs/cmd/entra/group/group-add.mdx +18 -0
  106. package/docs/docs/cmd/entra/group/group-get.mdx +18 -0
  107. package/docs/docs/cmd/entra/group/group-list.mdx +18 -0
  108. package/docs/docs/cmd/entra/group/group-member-add.mdx +20 -0
  109. package/docs/docs/cmd/entra/group/group-member-list.mdx +18 -0
  110. package/docs/docs/cmd/entra/group/group-member-remove.mdx +20 -0
  111. package/docs/docs/cmd/entra/group/group-member-set.mdx +20 -0
  112. package/docs/docs/cmd/entra/group/group-remove.mdx +20 -0
  113. package/docs/docs/cmd/entra/group/group-set.mdx +20 -0
  114. package/docs/docs/cmd/entra/groupsetting/groupsetting-add.mdx +19 -0
  115. package/docs/docs/cmd/entra/groupsetting/groupsetting-get.mdx +19 -0
  116. package/docs/docs/cmd/entra/groupsetting/groupsetting-list.mdx +19 -0
  117. package/docs/docs/cmd/entra/groupsetting/groupsetting-remove.mdx +21 -0
  118. package/docs/docs/cmd/entra/groupsetting/groupsetting-set.mdx +21 -0
  119. package/docs/docs/cmd/entra/m365group/m365group-add.mdx +19 -0
  120. package/docs/docs/cmd/entra/m365group/m365group-get.mdx +19 -0
  121. package/docs/docs/cmd/entra/m365group/m365group-list.mdx +19 -0
  122. package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-clear.mdx +14 -0
  123. package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-list.mdx +19 -0
  124. package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-remove.mdx +14 -0
  125. package/docs/docs/cmd/entra/m365group/m365group-recyclebinitem-restore.mdx +21 -0
  126. package/docs/docs/cmd/entra/m365group/m365group-remove.mdx +21 -0
  127. package/docs/docs/cmd/entra/m365group/m365group-renew.mdx +21 -0
  128. package/docs/docs/cmd/entra/m365group/m365group-report-activitycounts.mdx +18 -0
  129. package/docs/docs/cmd/entra/m365group/m365group-report-activitydetail.mdx +18 -0
  130. package/docs/docs/cmd/entra/m365group/m365group-report-activityfilecounts.mdx +18 -0
  131. package/docs/docs/cmd/entra/m365group/m365group-report-activitygroupcounts.mdx +18 -0
  132. package/docs/docs/cmd/entra/m365group/m365group-report-activitystorage.mdx +18 -0
  133. package/docs/docs/cmd/entra/m365group/m365group-set.mdx +21 -0
  134. package/docs/docs/cmd/entra/m365group/m365group-teamify.mdx +19 -0
  135. package/docs/docs/cmd/entra/multitenant/multitenant-add.mdx +18 -0
  136. package/docs/docs/cmd/entra/multitenant/multitenant-get.mdx +18 -1
  137. package/docs/docs/cmd/entra/multitenant/multitenant-remove.mdx +20 -0
  138. package/docs/docs/cmd/entra/multitenant/multitenant-set.mdx +20 -0
  139. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-add.mdx +20 -0
  140. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-list.mdx +17 -0
  141. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-remove.mdx +20 -0
  142. package/docs/docs/cmd/entra/oauth2grant/oauth2grant-set.mdx +20 -0
  143. package/docs/docs/cmd/entra/organization/organization-list.mdx +19 -2
  144. package/docs/docs/cmd/entra/pim/pim-role-assignment-add.mdx +18 -0
  145. package/docs/docs/cmd/entra/pim/pim-role-assignment-eligibility-list.mdx +18 -0
  146. package/docs/docs/cmd/entra/pim/pim-role-assignment-list.mdx +18 -0
  147. package/docs/docs/cmd/entra/pim/pim-role-assignment-remove.mdx +18 -0
  148. package/docs/docs/cmd/entra/pim/pim-role-request-list.mdx +18 -0
  149. package/docs/docs/cmd/graph/directoryextension/directoryextension-add.mdx +18 -0
  150. package/docs/docs/cmd/graph/directoryextension/directoryextension-get.mdx +18 -0
  151. package/docs/docs/cmd/graph/directoryextension/directoryextension-list.mdx +18 -0
  152. package/docs/docs/cmd/graph/directoryextension/directoryextension-remove.mdx +20 -0
  153. package/docs/docs/cmd/graph/schemaextension/schemaextension-add.mdx +18 -1
  154. package/docs/docs/cmd/graph/schemaextension/schemaextension-get.mdx +18 -1
  155. package/docs/docs/cmd/graph/schemaextension/schemaextension-list.mdx +19 -1
  156. package/docs/docs/cmd/graph/schemaextension/schemaextension-remove.mdx +20 -0
  157. package/docs/docs/cmd/graph/schemaextension/schemaextension-set.mdx +23 -3
  158. package/docs/docs/cmd/graph/subscription/subscription-add.mdx +27 -6
  159. package/docs/docs/cmd/outlook/mail/mail-send.mdx +21 -0
  160. package/docs/docs/cmd/outlook/mailbox/mailbox-settings-get.mdx +20 -1
  161. package/docs/docs/cmd/outlook/mailbox/mailbox-settings-set.mdx +20 -1
  162. package/docs/docs/cmd/outlook/room/room-list.mdx +19 -0
  163. package/docs/docs/cmd/outlook/roomlist/roomlist-list.mdx +19 -0
  164. package/docs/docs/cmd/purview/retentionevent/retentionevent-add.mdx +18 -0
  165. package/docs/docs/cmd/purview/retentionevent/retentionevent-get.mdx +18 -0
  166. package/docs/docs/cmd/purview/retentionevent/retentionevent-list.mdx +18 -0
  167. package/docs/docs/cmd/purview/retentionevent/retentionevent-remove.mdx +20 -0
  168. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-add.mdx +18 -0
  169. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-get.mdx +18 -0
  170. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-list.mdx +18 -0
  171. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-remove.mdx +21 -1
  172. package/docs/docs/cmd/purview/retentioneventtype/retentioneventtype-set.mdx +21 -1
  173. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-add.mdx +11 -0
  174. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-get.mdx +12 -1
  175. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-list.mdx +12 -1
  176. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-remove.mdx +14 -1
  177. package/docs/docs/cmd/purview/retentionlabel/retentionlabel-set.mdx +13 -0
  178. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-get.mdx +18 -0
  179. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-list.mdx +18 -0
  180. package/docs/docs/cmd/purview/sensitivitylabel/sensitivitylabel-policysettings-list.mdx +18 -0
  181. package/docs/docs/cmd/purview/threatassessment/threatassessment-add.mdx +12 -0
  182. package/docs/docs/cmd/purview/threatassessment/threatassessment-get.mdx +19 -0
  183. package/docs/docs/cmd/purview/threatassessment/threatassessment-list.mdx +19 -0
  184. package/docs/docs/cmd/spo/web/web-alert-list.mdx +187 -0
  185. package/docs/docs/cmd/spo/web/web-alert-remove.mdx +65 -0
  186. package/eslint-rules/lib/rules/correct-command-class-name.js +18 -2
  187. package/eslint.config.mjs +270 -0
  188. package/npm-shrinkwrap.json +562 -445
  189. package/package.json +9 -7
  190. package/.eslintrc.cjs +0 -289
@@ -38,6 +38,24 @@ When operating in app-only mode, you have the option to use either the `userName
38
38
 
39
39
  :::
40
40
 
41
+ ## Permissions
42
+ <Tabs>
43
+ <TabItem value="Delegated">
44
+
45
+ | Resource | Permissions |
46
+ |-----------------|----------------------------------|
47
+ | Microsoft Graph | InformationProtectionPolicy.Read |
48
+
49
+ </TabItem>
50
+ <TabItem value="Application">
51
+
52
+ | Resource | Permissions |
53
+ |-----------------|--------------------------------------|
54
+ | Microsoft Graph | InformationProtectionPolicy.Read.All |
55
+
56
+ </TabItem>
57
+ </Tabs>
58
+
41
59
  ## Examples
42
60
 
43
61
  Get a list of sensitivity labels.
@@ -38,6 +38,24 @@ When operating in app-only mode, you have the option to use either the `userName
38
38
 
39
39
  :::
40
40
 
41
+ ## Permissions
42
+ <Tabs>
43
+ <TabItem value="Delegated">
44
+
45
+ | Resource | Permissions |
46
+ |-----------------|----------------------------------|
47
+ | Microsoft Graph | InformationProtectionPolicy.Read |
48
+
49
+ </TabItem>
50
+ <TabItem value="Application">
51
+
52
+ | Resource | Permissions |
53
+ |-----------------|--------------------------------------|
54
+ | Microsoft Graph | InformationProtectionPolicy.Read.All |
55
+
56
+ </TabItem>
57
+ </Tabs>
58
+
41
59
  ## Examples
42
60
 
43
61
  Get a list of policy settings for a sensitivity label.
@@ -33,6 +33,18 @@ m365 purview threatassessment add [options]
33
33
 
34
34
  <Global />
35
35
 
36
+ ## Permissions
37
+
38
+ <Tabs>
39
+ <TabItem value="Delegated">
40
+
41
+ | Resource | Permissions |
42
+ |-----------------|--------------------------------|
43
+ | Microsoft Graph | ThreatAssessment.ReadWrite.All |
44
+
45
+ </TabItem>
46
+ </Tabs>
47
+
36
48
  ## Remarks
37
49
 
38
50
  :::info
@@ -24,6 +24,25 @@ m365 purview threatassessment get [options]
24
24
 
25
25
  <Global />
26
26
 
27
+ ## Permissions
28
+
29
+ <Tabs>
30
+ <TabItem value="Delegated">
31
+
32
+ | Resource | Permissions |
33
+ |-----------------|--------------------------------|
34
+ | Microsoft Graph | ThreatAssessment.ReadWrite.All |
35
+
36
+ </TabItem>
37
+ <TabItem value="Application">
38
+
39
+ | Resource | Permissions |
40
+ |-----------------|--------------------------------|
41
+ | Microsoft Graph | ThreatAssessment.Read.All |
42
+
43
+ </TabItem>
44
+ </Tabs>
45
+
27
46
  ## Examples
28
47
 
29
48
  Get a threat assessment.
@@ -21,6 +21,25 @@ m365 purview threatassessment list [options]
21
21
 
22
22
  <Global />
23
23
 
24
+ ## Permissions
25
+
26
+ <Tabs>
27
+ <TabItem value="Delegated">
28
+
29
+ | Resource | Permissions |
30
+ |-----------------|--------------------------------|
31
+ | Microsoft Graph | ThreatAssessment.ReadWrite.All |
32
+
33
+ </TabItem>
34
+ <TabItem value="Application">
35
+
36
+ | Resource | Permissions |
37
+ |-----------------|--------------------------------|
38
+ | Microsoft Graph | ThreatAssessment.Read.All |
39
+
40
+ </TabItem>
41
+ </Tabs>
42
+
24
43
  ## Examples
25
44
 
26
45
  Get a list of threat assessments
@@ -0,0 +1,187 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+ import Tabs from '@theme/Tabs';
3
+ import TabItem from '@theme/TabItem';
4
+
5
+ # spo web alert list
6
+
7
+ Lists all SharePoint list alerts
8
+
9
+ ## Usage
10
+
11
+ ```sh
12
+ m365 spo web alert list [options]
13
+ ```
14
+
15
+ ## Options
16
+
17
+ ```md definition-list
18
+ `-u, --webUrl <webUrl>`
19
+ : The URL of the SharePoint site.
20
+
21
+ `--listId [listId]`
22
+ : The ID of the SharePoint list. Specify either `listId`, `listUrl`, or `listTitle`, but not more than one.
23
+
24
+ `--listUrl [listUrl]`
25
+ : The URL of the SharePoint list. Specify either `listId`, `listUrl`, or `listTitle`, but not more than one.
26
+
27
+ `--listTitle [listTitle]`
28
+ : The title of the SharePoint list. Specify either `listId`, `listUrl`, or `listTitle`, but not more than one.
29
+
30
+ `--userName [userName]`
31
+ : The user name to filter alerts for. Specify either `userName` or `userId`, but not both.
32
+
33
+ `--userId [userId]`
34
+ : The user ID to filter alerts for. Specify either `userName` or `userId`, but not both.
35
+ ```
36
+
37
+ <Global />
38
+
39
+ ## Permissions
40
+
41
+ <Tabs>
42
+ <TabItem value="Delegated">
43
+
44
+ | Resource | Permissions |
45
+ |------------|----------------------|
46
+ | SharePoint | AllSites.FullControl |
47
+
48
+ </TabItem>
49
+ <TabItem value="Application">
50
+
51
+ | Resource | Permissions |
52
+ |------------|-----------------------|
53
+ | SharePoint | Sites.FullControl.All |
54
+
55
+ </TabItem>
56
+ </Tabs>
57
+
58
+ ## Examples
59
+
60
+ List all alerts for a SharePoint site:
61
+
62
+ ```sh
63
+ m365 spo web alert list --webUrl https://contoso.sharepoint.com/sites/Marketing
64
+ ```
65
+
66
+ List alerts for a SharePoint list by listUrl:
67
+
68
+ ```sh
69
+ m365 spo web alert list --webUrl https://contoso.sharepoint.com/sites/Marketing --listUrl /sites/Marketing/lists/Tasks
70
+ ```
71
+
72
+ List alerts for a specific user by userId:
73
+
74
+ ```sh
75
+ m365 spo web alert list --webUrl https://contoso.sharepoint.com/sites/Marketing --userId 7cbb4c8d-8e4d-4d2e-9c6f-3f1d8b2e6a0e
76
+ ```
77
+
78
+ List alerts for a specific list by title and user by username:
79
+
80
+ ```sh
81
+ m365 spo web alert list --webUrl https://contoso.sharepoint.com/sites/Marketing --listTitle "Tasks" --userName jane.doe@contoso.com
82
+ ```
83
+
84
+ ## Response
85
+
86
+ <Tabs>
87
+ <TabItem value="JSON">
88
+
89
+ ```json
90
+ [
91
+ {
92
+ "AlertFrequency": 0,
93
+ "AlertTemplateName": "SPAlertTemplateType.DocumentLibrary",
94
+ "AlertType": 1,
95
+ "AlwaysNotify": false,
96
+ "DeliveryChannels": 1,
97
+ "EventType": -1,
98
+ "Filter": "",
99
+ "ID": "c52b4bf0-add0-4323-b670-f765bb46337b",
100
+ "Properties": [
101
+ {
102
+ "Key": "dispformurl",
103
+ "Value": "Shared Documents/Forms/DispForm.aspx",
104
+ "ValueType": "Edm.String"
105
+ }
106
+ ],
107
+ "Status": 0,
108
+ "Title": "Documents: ProjectPlan.docx",
109
+ "UserId": 9,
110
+ "Item": {
111
+ "Id": 37326,
112
+ "FileRef": "/sites/marketing/Shared Documents/ProjectPlan.docx",
113
+ "GUID": "ef5cc60b-71c0-4357-a291-14274234efde"
114
+ },
115
+ "List": {
116
+ "Id": "6b4f195c-02da-47f4-8237-065b96258cf3",
117
+ "Title": "Documents",
118
+ "RootFolder": {
119
+ "ServerRelativeUrl": "/sites/marketing/Shared Documents"
120
+ }
121
+ },
122
+ "User": {
123
+ "Id": 9,
124
+ "IsHiddenInUI": false,
125
+ "LoginName": "i:0#.f|membership|jane.doe@contoso.onmicrosoft.com",
126
+ "Title": "Jane Doe",
127
+ "PrincipalType": 1,
128
+ "Email": "jane.doe@contoso.onmicrosoft.com",
129
+ "Expiration": "",
130
+ "IsEmailAuthenticationGuestUser": false,
131
+ "IsShareByEmailGuestUser": false,
132
+ "IsSiteAdmin": false,
133
+ "UserId": {
134
+ "NameId": "10037ffeaed549a5",
135
+ "NameIdIssuer": "urn:federation:microsoftonline"
136
+ },
137
+ "UserPrincipalName": "jane.doe@contoso.onmicrosoft.com"
138
+ }
139
+ }
140
+ ]
141
+ ```
142
+
143
+ </TabItem>
144
+ <TabItem value="Text">
145
+
146
+ ```txt
147
+ ID Title UserPrincipalName
148
+ ------------------------------------ --------------------------- --------------------
149
+ fa5115ee-0c72-4d17-9fda-ee2451ba1c6d Documents: ProjectPlan.docx jane.doe@contoso.com
150
+ ```
151
+
152
+ </TabItem>
153
+ <TabItem value="CSV">
154
+
155
+ ```csv
156
+ AlertFrequency,AlertTemplateName,AlertType,AlwaysNotify,DeliveryChannels,EventType,Filter,ID,Status,Title,UserId,UserPrincipalName
157
+ 0,SPAlertTemplateType.DocumentLibrary,1,0,1,-1,,fa5115ee-0c72-4d17-9fda-ee2451ba1c6d,0,Documents: ProjectPlan.docx,6,jane.doe@contoso.com
158
+ ```
159
+
160
+ </TabItem>
161
+ <TabItem value="Markdown">
162
+
163
+ ```md
164
+ # spo web alert list --webUrl "https://contoso.sharepoint.com/sites/marketing" --listUrl "/sites/marketing/Shared Documents"
165
+
166
+ Date: 10/6/2025
167
+
168
+ ## Documents: ProjectPlan.docx (c52b4bf0-add0-4323-b670-f765bb46337b)
169
+
170
+ Property | Value
171
+ ---------|-------
172
+ AlertFrequency | 0
173
+ AlertTemplateName | SPAlertTemplateType.DocumentLibrary
174
+ AlertType | 1
175
+ AlwaysNotify | false
176
+ DeliveryChannels | 1
177
+ EventType | -1
178
+ Filter |
179
+ ID | c52b4bf0-add0-4323-b670-f765bb46337b
180
+ Status | 0
181
+ Title | Documents: ProjectPlan.docx
182
+ UserId | 9
183
+ UserPrincipalName | jane.doe@contoso.com
184
+ ```
185
+
186
+ </TabItem>
187
+ </Tabs>
@@ -0,0 +1,65 @@
1
+ import Global from '/docs/cmd/_global.mdx';
2
+ import Tabs from '@theme/Tabs';
3
+ import TabItem from '@theme/TabItem';
4
+
5
+ # spo web alert remove
6
+
7
+ Removes an alert from a SharePoint list
8
+
9
+ ## Usage
10
+
11
+ ```sh
12
+ m365 spo web alert remove [options]
13
+ ```
14
+
15
+ ## Options
16
+
17
+ ```md definition-list
18
+ `-u, --webUrl <webUrl>`
19
+ : The URL of the SharePoint site.
20
+
21
+ `--id <id>`
22
+ : The ID of the alert.
23
+
24
+ `-f, --force`
25
+ : Don't prompt for confirmation.
26
+ ```
27
+
28
+ <Global />
29
+
30
+ ## Permissions
31
+
32
+ <Tabs>
33
+ <TabItem value="Delegated">
34
+
35
+ | Resource | Permissions |
36
+ |------------|----------------------|
37
+ | SharePoint | AllSites.FullControl |
38
+
39
+ </TabItem>
40
+ <TabItem value="Application">
41
+
42
+ | Resource | Permissions |
43
+ |------------|-----------------------|
44
+ | SharePoint | Sites.FullControl.All |
45
+
46
+ </TabItem>
47
+ </Tabs>
48
+
49
+ ## Examples
50
+
51
+ Remove an alert by ID
52
+
53
+ ```sh
54
+ m365 spo web alert remove --webUrl https://contoso.sharepoint.com/sites/Marketing --id 7cbb4c8d-8e4d-4d2e-9c6f-3f1d8b2e6a0e
55
+ ```
56
+
57
+ Remove another alert without confirmation
58
+
59
+ ```sh
60
+ m365 spo web alert remove --webUrl https://contoso.sharepoint.com/sites/Marketing --id 2b6f1c8a-3e6a-4c7e-b8c0-7bf4c8e6d7f1 --force
61
+ ```
62
+
63
+ ## Response
64
+
65
+ The command won't return a response on success.
@@ -42,7 +42,7 @@ function capitalizeWord(word, capitalized) {
42
42
  return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase();
43
43
  }
44
44
 
45
- function breakWords(longWord, dictionary) {
45
+ function breakWords(longWord, dictionary) {
46
46
  const words = [];
47
47
  for (let i = 0; i < dictionary.length; i++) {
48
48
  if (longWord.indexOf(dictionary[i]) === 0) {
@@ -72,7 +72,23 @@ module.exports = {
72
72
  fixable: 'code',
73
73
  messages: {
74
74
  invalidName: "'{{ actualClassName }}' is not a valid command class name. Expected '{{ expectedClassName }}'"
75
- }
75
+ },
76
+ schema: [
77
+ {
78
+ type: 'array',
79
+ items: { type: 'string' },
80
+ uniqueItems: true,
81
+ title: 'dictionary',
82
+ description: 'List of known word parts used to break long command names into words.'
83
+ },
84
+ {
85
+ type: 'array',
86
+ items: { type: 'string' },
87
+ uniqueItems: true,
88
+ title: 'capitalized',
89
+ description: 'List of known word parts that should be capitalized.'
90
+ }
91
+ ]
76
92
  },
77
93
  create: context => {
78
94
  return {
@@ -0,0 +1,270 @@
1
+ import globals from 'globals';
2
+ import js from '@eslint/js';
3
+ import parser from '@typescript-eslint/parser';
4
+ import tsPlugin from '@typescript-eslint/eslint-plugin';
5
+ import mocha from 'eslint-plugin-mocha';
6
+ import stylistic from '@stylistic/eslint-plugin';
7
+ import cliM365 from './eslint-rules/lib/index.js';
8
+
9
+ // List of words used in command names used for word breaking
10
+ // Sorted alphabetically for easy maintenance
11
+ const dictionary = [
12
+ 'access',
13
+ 'activation',
14
+ 'activations',
15
+ 'adaptive',
16
+ 'administrative',
17
+ 'ai',
18
+ 'app',
19
+ 'application',
20
+ 'apply',
21
+ 'approve',
22
+ 'assessment',
23
+ 'assets',
24
+ 'assignment',
25
+ 'audit',
26
+ 'azure',
27
+ 'bin',
28
+ 'builder',
29
+ 'call',
30
+ 'card',
31
+ 'catalog',
32
+ 'checklist',
33
+ 'client',
34
+ 'comm',
35
+ 'command',
36
+ 'community',
37
+ 'container',
38
+ 'content',
39
+ 'conversation',
40
+ 'custom',
41
+ 'customizer',
42
+ 'dataverse',
43
+ 'default',
44
+ 'definition',
45
+ 'dev',
46
+ 'details',
47
+ 'directory',
48
+ 'eligibility',
49
+ 'enterprise',
50
+ 'entra',
51
+ 'event',
52
+ 'eventreceiver',
53
+ 'external',
54
+ 'externalize',
55
+ 'folder',
56
+ 'fun',
57
+ 'group',
58
+ 'groupify',
59
+ 'groupmembership',
60
+ 'guest',
61
+ 'health',
62
+ 'hide',
63
+ 'historical',
64
+ 'home',
65
+ 'hub',
66
+ 'in',
67
+ 'info',
68
+ 'inheritance',
69
+ 'init',
70
+ 'install',
71
+ 'installed',
72
+ 'is',
73
+ 'issue',
74
+ 'item',
75
+ 'label',
76
+ 'list',
77
+ 'link',
78
+ 'log',
79
+ 'login',
80
+ 'logout',
81
+ 'mailbox',
82
+ 'management',
83
+ 'member',
84
+ 'membership',
85
+ 'messaging',
86
+ 'model',
87
+ 'multitenant',
88
+ 'm365',
89
+ 'news',
90
+ 'oauth2',
91
+ 'office365',
92
+ 'one',
93
+ 'open',
94
+ 'ops',
95
+ 'org',
96
+ 'organization',
97
+ 'owner',
98
+ 'permission',
99
+ 'pim',
100
+ 'place',
101
+ 'policy',
102
+ 'profile',
103
+ 'pronouns',
104
+ 'property',
105
+ 'record',
106
+ 'records',
107
+ 'recycle',
108
+ 'registration',
109
+ 'request',
110
+ 'resolver',
111
+ 'retention',
112
+ 'revoke',
113
+ 'role',
114
+ 'room',
115
+ 'schema',
116
+ 'search',
117
+ 'sensitivity',
118
+ 'service',
119
+ 'session',
120
+ 'set',
121
+ 'setting',
122
+ 'settings',
123
+ 'setup',
124
+ 'sharing',
125
+ 'side',
126
+ 'site',
127
+ 'status',
128
+ 'storage',
129
+ 'table',
130
+ 'teams',
131
+ 'threat',
132
+ 'to',
133
+ 'todo',
134
+ 'token',
135
+ 'type',
136
+ 'unit',
137
+ 'url',
138
+ 'user',
139
+ 'value',
140
+ 'web',
141
+ 'webhook'
142
+ ];
143
+
144
+ // List of words that should be capitalized in a specific way
145
+ const capitalized = [
146
+ 'OAuth2'
147
+ ];
148
+
149
+ // Sort dictionary to put the longest words first
150
+ const sortedDictionary = dictionary.sort((a, b) => b.length - a.length);
151
+
152
+ export default [
153
+ // Ignored files
154
+ {
155
+ ignores: [
156
+ "**/package-generate/assets/**",
157
+ "**/test-projects/**",
158
+ "clientsidepages.ts",
159
+ "**/*.d.ts",
160
+ "**/*.js",
161
+ "**/*.cjs"
162
+ ]
163
+ },
164
+ // JS recommendations
165
+ js.configs.recommended,
166
+ {
167
+ plugins: { '@typescript-eslint': tsPlugin },
168
+ rules: tsPlugin.configs.recommended.rules
169
+ },
170
+ {
171
+ languageOptions: {
172
+ ecmaVersion: 2015,
173
+ sourceType: 'module',
174
+ parser: parser,
175
+ parserOptions: {
176
+ ecmaVersion: 2015,
177
+ sourceType: 'module',
178
+ project: './tsconfig.json'
179
+ },
180
+ globals: {
181
+ ...globals.node,
182
+ ...globals.commonjs,
183
+ ...globals.es2021,
184
+ ...globals.mocha,
185
+ NodeJS: 'readonly'
186
+ }
187
+ },
188
+ plugins: {
189
+ '@typescript-eslint': tsPlugin,
190
+ 'cli-microsoft365': cliM365,
191
+ '@stylistic': stylistic,
192
+ mocha
193
+ },
194
+ rules: {
195
+ 'cli-microsoft365/correct-command-class-name': ['error', sortedDictionary, capitalized],
196
+ 'cli-microsoft365/correct-command-name': 'error',
197
+ 'cli-microsoft365/no-by-server-relative-url-usage': 'error',
198
+ '@stylistic/indent': ['error', 2],
199
+ '@stylistic/semi': ['error'],
200
+ '@stylistic/comma-dangle': ['error', 'never'],
201
+ '@stylistic/brace-style': [
202
+ 'error',
203
+ 'stroustrup',
204
+ { allowSingleLine: true }
205
+ ],
206
+ '@typescript-eslint/no-explicit-any': 'off',
207
+ '@typescript-eslint/no-var-requires': 'off',
208
+ '@typescript-eslint/no-inferrable-types': 'off',
209
+ '@typescript-eslint/no-non-null-assertion': 'off',
210
+ '@typescript-eslint/explicit-module-boundary-types': [
211
+ 'error',
212
+ { allowArgumentsExplicitlyTypedAsAny: true }
213
+ ],
214
+ '@typescript-eslint/no-unused-vars': [
215
+ 'error',
216
+ { argsIgnorePattern: '^_' }
217
+ ],
218
+ camelcase: ['error', {
219
+ allow: [
220
+ 'child_process',
221
+ 'error_description',
222
+ '_Child_Items_',
223
+ '_Object_Type_',
224
+ 'FN\\d+',
225
+ 'OData__.*',
226
+ 'vti_.*',
227
+ 'Query.*',
228
+ 'app_displayname',
229
+ 'access_token',
230
+ 'expires_on',
231
+ 'extension_*'
232
+ ]
233
+ }],
234
+ curly: ['error', 'all'],
235
+ eqeqeq: ['error', 'always'],
236
+ '@typescript-eslint/naming-convention': [
237
+ 'error',
238
+ {
239
+ selector: ['method'],
240
+ format: ['camelCase']
241
+ }
242
+ ],
243
+ '@typescript-eslint/explicit-function-return-type': ['error', { allowExpressions: true }],
244
+ 'mocha/no-identical-title': 'error',
245
+ '@typescript-eslint/no-floating-promises': 'error',
246
+ '@typescript-eslint/no-empty-function': 'error'
247
+ }
248
+ },
249
+ {
250
+ files: ['**/*.spec.ts'],
251
+ rules: {
252
+ 'no-console': 'error',
253
+ '@typescript-eslint/no-empty-function': 'off',
254
+ 'cli-microsoft365/correct-command-class-name': 'off',
255
+ 'cli-microsoft365/correct-command-name': 'off'
256
+ }
257
+ },
258
+ {
259
+ files: ['**/viva/commands/engage/**'],
260
+ rules: {
261
+ camelcase: 'off'
262
+ }
263
+ },
264
+ {
265
+ files: ['**/*.mjs'],
266
+ rules: {
267
+ '@typescript-eslint/explicit-function-return-type': 'off'
268
+ }
269
+ }
270
+ ];