@pnp/cli-microsoft365 10.5.0-beta.d99742c → 10.6.0-beta.195c8d5

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 (133) hide show
  1. package/.eslintrc.cjs +3 -1
  2. package/allCommands.json +1 -1
  3. package/allCommandsFull.json +1 -1
  4. package/dist/Auth.js +60 -3
  5. package/dist/Command.js +14 -26
  6. package/dist/auth/MsalNetworkClient.js +32 -0
  7. package/dist/config.js +2 -0
  8. package/dist/m365/adaptivecard/commands/adaptivecard-send.js +2 -1
  9. package/dist/m365/app/commands/app-get.js +3 -13
  10. package/dist/m365/app/commands/permission/permission-list.js +4 -14
  11. package/dist/m365/base/SpoCommand.js +2 -1
  12. package/dist/m365/booking/commands/business/business-get.js +0 -3
  13. package/dist/m365/commands/login.js +3 -0
  14. package/dist/m365/commands/request.js +3 -12
  15. package/dist/m365/commands/setup.js +2 -0
  16. package/dist/m365/entra/commands/administrativeunit/administrativeunit-add.js +10 -5
  17. package/dist/m365/entra/commands/app/app-add.js +5 -0
  18. package/dist/m365/entra/commands/app/app-get.js +27 -21
  19. package/dist/m365/entra/commands/app/app-permission-list.js +28 -22
  20. package/dist/m365/entra/commands/app/app-remove.js +22 -19
  21. package/dist/m365/entra/commands/app/app-role-add.js +22 -19
  22. package/dist/m365/entra/commands/app/app-role-list.js +22 -19
  23. package/dist/m365/entra/commands/app/app-role-remove.js +39 -36
  24. package/dist/m365/entra/commands/app/app-set.js +45 -19
  25. package/dist/m365/entra/commands/group/group-add.js +1 -0
  26. package/dist/m365/entra/commands/group/group-set.js +12 -6
  27. package/dist/m365/entra/commands/policy/policy-list.js +46 -3
  28. package/dist/m365/entra/commands/user/user-add.js +1 -0
  29. package/dist/m365/entra/commands/user/user-guest-add.js +0 -3
  30. package/dist/m365/entra/commands/user/user-list.js +2 -1
  31. package/dist/m365/external/commands/item/item-add.js +2 -1
  32. package/dist/m365/flow/commands/environment/environment-get.js +0 -3
  33. package/dist/m365/flow/commands/flow-get.js +0 -3
  34. package/dist/m365/flow/commands/flow-list.js +1 -1
  35. package/dist/m365/flow/commands/run/run-get.js +0 -3
  36. package/dist/m365/graph/commands/openextension/openextension-add.js +73 -0
  37. package/dist/m365/graph/commands/openextension/openextension-get.js +57 -0
  38. package/dist/m365/graph/commands/openextension/openextension-list.js +62 -0
  39. package/dist/m365/graph/commands/openextension/openextension-remove.js +68 -0
  40. package/dist/m365/graph/commands.js +4 -0
  41. package/dist/m365/pa/commands/app/app-get.js +0 -3
  42. package/dist/m365/pa/commands/environment/environment-get.js +0 -3
  43. package/dist/m365/planner/commands/bucket/bucket-add.js +0 -3
  44. package/dist/m365/planner/commands/plan/plan-add.js +0 -3
  45. package/dist/m365/planner/commands/plan/plan-get.js +0 -3
  46. package/dist/m365/planner/commands/plan/plan-set.js +0 -3
  47. package/dist/m365/planner/commands/task/task-checklistitem-add.js +0 -3
  48. package/dist/m365/pp/commands/aibuildermodel/aibuildermodel-get.js +0 -3
  49. package/dist/m365/pp/commands/card/card-clone.js +12 -16
  50. package/dist/m365/pp/commands/card/card-get.js +13 -22
  51. package/dist/m365/pp/commands/card/card-remove.js +13 -16
  52. package/dist/m365/pp/commands/copilot/copilot-get.js +0 -3
  53. package/dist/m365/pp/commands/dataverse/dataverse-table-get.js +0 -3
  54. package/dist/m365/pp/commands/environment/environment-get.js +0 -3
  55. package/dist/m365/pp/commands/solution/solution-get.js +5 -14
  56. package/dist/m365/pp/commands/solution/solution-publish.js +6 -16
  57. package/dist/m365/pp/commands/solution/solution-publisher-get.js +0 -3
  58. package/dist/m365/pp/commands/solution/solution-remove.js +4 -13
  59. package/dist/m365/pp/commands/website/website-get.js +0 -3
  60. package/dist/m365/spfx/commands/project/project-doctor/doctor-1.21.0.js +25 -0
  61. package/dist/m365/spfx/commands/project/project-doctor.js +2 -1
  62. package/dist/m365/spfx/commands/project/project-upgrade/rules/FN002029_DEVDEP_microsoft_rush_stack_compiler_5_3.js +13 -0
  63. package/dist/m365/spfx/commands/project/project-upgrade/upgrade-1.21.0.js +63 -0
  64. package/dist/m365/spfx/commands/project/project-upgrade.js +2 -1
  65. package/dist/m365/spfx/commands/spfx-doctor.js +15 -0
  66. package/dist/m365/spo/commands/folder/folder-roleassignment-add.js +12 -47
  67. package/dist/m365/spo/commands/folder/folder-roleassignment-remove.js +13 -31
  68. package/dist/m365/spo/commands/group/group-member-add.js +0 -3
  69. package/dist/m365/spo/commands/homesite/homesite-add.js +66 -0
  70. package/dist/m365/spo/commands/listitem/listitem-roleassignment-add.js +12 -43
  71. package/dist/m365/spo/commands/listitem/listitem-roleassignment-remove.js +8 -27
  72. package/dist/m365/spo/commands/page/page-copy.js +0 -3
  73. package/dist/m365/spo/commands/page/page-get.js +0 -3
  74. package/dist/m365/spo/commands/sitedesign/sitedesign-run-status-get.js +0 -3
  75. package/dist/m365/spo/commands/web/web-roleassignment-add.js +22 -47
  76. package/dist/m365/spo/commands/web/web-roleassignment-remove.js +17 -32
  77. package/dist/m365/spo/commands.js +1 -0
  78. package/dist/m365/tenant/commands/people/people-profilecardproperty-add.js +4 -3
  79. package/dist/m365/tenant/commands/people/people-profilecardproperty-set.js +4 -3
  80. package/dist/m365/tenant/commands/serviceannouncement/serviceannouncement-health-get.js +0 -3
  81. package/dist/m365/todo/commands/list/list-get.js +0 -3
  82. package/dist/m365/todo/commands/list/list-remove.js +1 -1
  83. package/dist/m365/todo/commands/task/task-get.js +0 -3
  84. package/dist/m365/util/commands/accesstoken/accesstoken-get.js +13 -3
  85. package/dist/m365/viva/commands/engage/engage-message-add.js +0 -3
  86. package/dist/m365/viva/commands/engage/engage-message-get.js +0 -3
  87. package/dist/m365/viva/commands/engage/engage-user-get.js +0 -3
  88. package/dist/utils/accessToken.js +8 -0
  89. package/dist/utils/entraApp.js +3 -1
  90. package/dist/utils/optionsUtils.js +28 -0
  91. package/dist/utils/powerPlatform.js +51 -1
  92. package/dist/utils/prompt.js +9 -2
  93. package/dist/utils/spo.js +32 -3
  94. package/docs/docs/cmd/booking/business/business-get.mdx +13 -0
  95. package/docs/docs/cmd/entra/policy/policy-list.mdx +1 -1
  96. package/docs/docs/cmd/entra/user/user-guest-add.mdx +11 -0
  97. package/docs/docs/cmd/flow/environment/environment-get.mdx +2 -0
  98. package/docs/docs/cmd/flow/flow-get.mdx +2 -0
  99. package/docs/docs/cmd/flow/run/run-get.mdx +17 -13
  100. package/docs/docs/cmd/graph/directoryextension/directoryextension-get.mdx +2 -3
  101. package/docs/docs/cmd/graph/openextension/openextension-add.mdx +120 -0
  102. package/docs/docs/cmd/graph/openextension/openextension-get.mdx +111 -0
  103. package/docs/docs/cmd/graph/openextension/openextension-list.mdx +129 -0
  104. package/docs/docs/cmd/graph/openextension/openextension-remove.mdx +59 -0
  105. package/docs/docs/cmd/login.mdx +9 -1
  106. package/docs/docs/cmd/pa/app/app-get.mdx +8 -2
  107. package/docs/docs/cmd/pa/environment/environment-get.mdx +5 -3
  108. package/docs/docs/cmd/planner/plan/plan-add.mdx +2 -0
  109. package/docs/docs/cmd/planner/plan/plan-get.mdx +8 -4
  110. package/docs/docs/cmd/planner/plan/plan-set.mdx +2 -0
  111. package/docs/docs/cmd/planner/task/task-checklistitem-add.mdx +6 -3
  112. package/docs/docs/cmd/pp/aibuildermodel/aibuildermodel-get.mdx +12 -3
  113. package/docs/docs/cmd/pp/card/card-get.mdx +36 -5
  114. package/docs/docs/cmd/pp/copilot/copilot-get.mdx +41 -5
  115. package/docs/docs/cmd/pp/dataverse/dataverse-table-get.mdx +19 -4
  116. package/docs/docs/cmd/pp/environment/environment-get.mdx +5 -2
  117. package/docs/docs/cmd/pp/solution/solution-get.mdx +12 -7
  118. package/docs/docs/cmd/pp/solution/solution-publisher-get.mdx +12 -7
  119. package/docs/docs/cmd/pp/website/website-get.mdx +22 -4
  120. package/docs/docs/cmd/spfx/project/project-upgrade.mdx +1 -4
  121. package/docs/docs/cmd/spo/group/group-member-add.mdx +12 -3
  122. package/docs/docs/cmd/spo/homesite/homesite-add.mdx +124 -0
  123. package/docs/docs/cmd/spo/page/page-copy.mdx +30 -4
  124. package/docs/docs/cmd/spo/page/page-get.mdx +44 -5
  125. package/docs/docs/cmd/spo/sitedesign/sitedesign-run-status-get.mdx +7 -0
  126. package/docs/docs/cmd/todo/list/list-get.mdx +7 -4
  127. package/docs/docs/cmd/todo/task/task-get.mdx +7 -2
  128. package/docs/docs/cmd/util/accesstoken/accesstoken-get.mdx +72 -0
  129. package/docs/docs/cmd/viva/engage/engage-message-add.mdx +37 -12
  130. package/docs/docs/cmd/viva/engage/engage-message-get.mdx +27 -13
  131. package/docs/docs/cmd/viva/engage/engage-user-get.mdx +50 -8
  132. package/npm-shrinkwrap.json +517 -481
  133. package/package.json +14 -14
@@ -16,9 +16,6 @@ class FlowRunGetCommand extends PowerAutomateCommand {
16
16
  get description() {
17
17
  return 'Gets information about a specific run of the specified Microsoft Flow';
18
18
  }
19
- defaultProperties() {
20
- return ['name', 'startTime', 'endTime', 'status', 'triggerName'];
21
- }
22
19
  constructor() {
23
20
  super();
24
21
  _FlowRunGetCommand_instances.add(this);
@@ -0,0 +1,73 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { zod } from '../../../../utils/zod.js';
4
+ import { validation } from '../../../../utils/validation.js';
5
+ import GraphCommand from '../../../base/GraphCommand.js';
6
+ import commands from '../../commands.js';
7
+ import request from '../../../../request.js';
8
+ import { optionsUtils } from '../../../../utils/optionsUtils.js';
9
+ const options = globalOptionsZod
10
+ .extend({
11
+ name: zod.alias('n', z.string()),
12
+ resourceId: zod.alias('i', z.string()),
13
+ resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization']))
14
+ })
15
+ .and(z.any());
16
+ class GraphOpenExtensionAddCommand extends GraphCommand {
17
+ get name() {
18
+ return commands.OPENEXTENSION_ADD;
19
+ }
20
+ get description() {
21
+ return 'Adds an open extension to a resource';
22
+ }
23
+ get schema() {
24
+ return options;
25
+ }
26
+ getRefinedSchema(schema) {
27
+ return schema
28
+ .refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' || (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
29
+ message: `The '${options.resourceId}' must be a valid GUID`,
30
+ path: ['resourceId']
31
+ }))
32
+ .refine(options => options.resourceType !== 'user' || (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
33
+ message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
34
+ path: ['resourceId']
35
+ }));
36
+ }
37
+ async commandAction(logger, args) {
38
+ try {
39
+ const requestBody = {};
40
+ requestBody["extensionName"] = args.options.name;
41
+ const unknownOptions = optionsUtils.getUnknownOptions(args.options, this.options);
42
+ const unknownOptionsNames = Object.getOwnPropertyNames(unknownOptions);
43
+ unknownOptionsNames.forEach(async (o) => {
44
+ try {
45
+ const jsonObject = JSON.parse(unknownOptions[o]);
46
+ requestBody[o] = jsonObject;
47
+ }
48
+ catch {
49
+ requestBody[o] = unknownOptions[o];
50
+ }
51
+ });
52
+ const requestOptions = {
53
+ url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions`,
54
+ headers: {
55
+ accept: 'application/json;odata.metadata=none',
56
+ 'content-type': 'application/json'
57
+ },
58
+ data: requestBody,
59
+ responseType: 'json'
60
+ };
61
+ if (args.options.verbose) {
62
+ await logger.logToStderr(`Adding open extension to the ${args.options.resourceType} with id '${args.options.resourceId}'...`);
63
+ }
64
+ const res = await request.post(requestOptions);
65
+ await logger.log(res);
66
+ }
67
+ catch (err) {
68
+ this.handleRejectedODataJsonPromise(err);
69
+ }
70
+ }
71
+ }
72
+ export default new GraphOpenExtensionAddCommand();
73
+ //# sourceMappingURL=openextension-add.js.map
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { zod } from '../../../../utils/zod.js';
4
+ import { validation } from '../../../../utils/validation.js';
5
+ import GraphCommand from '../../../base/GraphCommand.js';
6
+ import commands from '../../commands.js';
7
+ import request from '../../../../request.js';
8
+ const options = globalOptionsZod
9
+ .extend({
10
+ resourceId: zod.alias('i', z.string()),
11
+ resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization'])),
12
+ name: zod.alias('n', z.string())
13
+ })
14
+ .strict();
15
+ class GraphOpenExtensionGetCommand extends GraphCommand {
16
+ get name() {
17
+ return commands.OPENEXTENSION_GET;
18
+ }
19
+ get description() {
20
+ return 'Retrieves a specific open extension for a resource';
21
+ }
22
+ get schema() {
23
+ return options;
24
+ }
25
+ getRefinedSchema(schema) {
26
+ return schema
27
+ .refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' || (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
28
+ message: `The '${options.resourceId}' must be a valid GUID`,
29
+ path: ['resourceId']
30
+ }))
31
+ .refine(options => options.resourceType !== 'user' || (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
32
+ message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
33
+ path: ['resourceId']
34
+ }));
35
+ }
36
+ async commandAction(logger, args) {
37
+ try {
38
+ if (this.verbose) {
39
+ await logger.logToStderr(`Retrieving open extension for resource ${args.options.resourceId}...`);
40
+ }
41
+ const requestOptions = {
42
+ url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions/${args.options.name}`,
43
+ headers: {
44
+ accept: 'application/json;odata.metadata=none'
45
+ },
46
+ responseType: 'json'
47
+ };
48
+ const res = await request.get(requestOptions);
49
+ await logger.log(res);
50
+ }
51
+ catch (err) {
52
+ this.handleRejectedODataJsonPromise(err);
53
+ }
54
+ }
55
+ }
56
+ export default new GraphOpenExtensionGetCommand();
57
+ //# sourceMappingURL=openextension-get.js.map
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { zod } from '../../../../utils/zod.js';
4
+ import { validation } from '../../../../utils/validation.js';
5
+ import GraphCommand from '../../../base/GraphCommand.js';
6
+ import commands from '../../commands.js';
7
+ import { odata } from '../../../../utils/odata.js';
8
+ const options = globalOptionsZod
9
+ .extend({
10
+ resourceId: zod.alias('i', z.string()),
11
+ resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization']))
12
+ })
13
+ .strict();
14
+ class GraphOpenExtensionListCommand extends GraphCommand {
15
+ get name() {
16
+ return commands.OPENEXTENSION_LIST;
17
+ }
18
+ get description() {
19
+ return 'Retrieves all open extensions for a resource';
20
+ }
21
+ defaultProperties() {
22
+ return ['id', 'extensionName'];
23
+ }
24
+ get schema() {
25
+ return options;
26
+ }
27
+ getRefinedSchema(schema) {
28
+ return schema
29
+ .refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' ||
30
+ (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
31
+ message: `The '${options.resourceId}' must be a valid GUID`,
32
+ path: ['resourceId']
33
+ }))
34
+ .refine(options => options.resourceType !== 'user' ||
35
+ (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
36
+ message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
37
+ path: ['resourceId']
38
+ }));
39
+ }
40
+ async commandAction(logger, args) {
41
+ try {
42
+ const requestOptions = {
43
+ url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions`,
44
+ headers: {
45
+ accept: 'application/json;odata.metadata=none',
46
+ 'content-type': 'application/json'
47
+ },
48
+ responseType: 'json'
49
+ };
50
+ if (args.options.verbose) {
51
+ await logger.logToStderr(`Retrieving open extensions for the ${args.options.resourceType} with id '${args.options.resourceId}'...`);
52
+ }
53
+ const res = await odata.getAllItems(requestOptions);
54
+ await logger.log(res);
55
+ }
56
+ catch (err) {
57
+ this.handleRejectedODataJsonPromise(err);
58
+ }
59
+ }
60
+ }
61
+ export default new GraphOpenExtensionListCommand();
62
+ //# sourceMappingURL=openextension-list.js.map
@@ -0,0 +1,68 @@
1
+ import { z } from 'zod';
2
+ import { globalOptionsZod } from '../../../../Command.js';
3
+ import { zod } from '../../../../utils/zod.js';
4
+ import { validation } from '../../../../utils/validation.js';
5
+ import GraphCommand from '../../../base/GraphCommand.js';
6
+ import commands from '../../commands.js';
7
+ import { cli } from '../../../../cli/cli.js';
8
+ import request from '../../../../request.js';
9
+ const options = globalOptionsZod
10
+ .extend({
11
+ resourceId: zod.alias('i', z.string()),
12
+ resourceType: zod.alias('t', z.enum(['user', 'group', 'device', 'organization'])),
13
+ name: zod.alias('n', z.string()),
14
+ force: zod.alias('f', z.boolean().optional())
15
+ })
16
+ .strict();
17
+ class GraphOpenExtensionRemoveCommand extends GraphCommand {
18
+ get name() {
19
+ return commands.OPENEXTENSION_REMOVE;
20
+ }
21
+ get description() {
22
+ return 'Removes a specific open extension for a resource';
23
+ }
24
+ get schema() {
25
+ return options;
26
+ }
27
+ getRefinedSchema(schema) {
28
+ return schema
29
+ .refine(options => options.resourceType !== 'group' && options.resourceType !== 'device' && options.resourceType !== 'organization' || (options.resourceId && validation.isValidGuid(options.resourceId)), options => ({
30
+ message: `The '${options.resourceId}' must be a valid GUID`,
31
+ path: ['resourceId']
32
+ }))
33
+ .refine(options => options.resourceType !== 'user' || (options.resourceId && (validation.isValidGuid(options.resourceId) || validation.isValidUserPrincipalName(options.resourceId))), options => ({
34
+ message: `The '${options.resourceId}' must be a valid GUID or user principal name`,
35
+ path: ['resourceId']
36
+ }));
37
+ }
38
+ async commandAction(logger, args) {
39
+ const removeOpenExtension = async () => {
40
+ try {
41
+ if (this.verbose) {
42
+ await logger.logToStderr(`Removing open extension for resource ${args.options.resourceId}...`);
43
+ }
44
+ const requestOptions = {
45
+ url: `${this.resource}/v1.0/${args.options.resourceType}${args.options.resourceType === 'organization' ? '' : 's'}/${args.options.resourceId}/extensions/${args.options.name}`,
46
+ headers: {
47
+ accept: 'application/json;odata.metadata=none'
48
+ }
49
+ };
50
+ await request.delete(requestOptions);
51
+ }
52
+ catch (err) {
53
+ this.handleRejectedODataJsonPromise(err);
54
+ }
55
+ };
56
+ if (args.options.force) {
57
+ await removeOpenExtension();
58
+ }
59
+ else {
60
+ const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove open extension '${args.options.name}' from resource '${args.options.resourceId}' of type '${args.options.resourceType}'?` });
61
+ if (result) {
62
+ await removeOpenExtension();
63
+ }
64
+ }
65
+ }
66
+ }
67
+ export default new GraphOpenExtensionRemoveCommand();
68
+ //# sourceMappingURL=openextension-remove.js.map
@@ -4,6 +4,10 @@ export default {
4
4
  DIRECTORYEXTENSION_ADD: `${prefix} directoryextension add`,
5
5
  DIRECTORYEXTENSION_GET: `${prefix} directoryextension get`,
6
6
  DIRECTORYEXTENSION_REMOVE: `${prefix} directoryextension remove`,
7
+ OPENEXTENSION_ADD: `${prefix} openextension add`,
8
+ OPENEXTENSION_GET: `${prefix} openextension get`,
9
+ OPENEXTENSION_LIST: `${prefix} openextension list`,
10
+ OPENEXTENSION_REMOVE: `${prefix} openextension remove`,
7
11
  SCHEMAEXTENSION_ADD: `${prefix} schemaextension add`,
8
12
  SCHEMAEXTENSION_GET: `${prefix} schemaextension get`,
9
13
  SCHEMAEXTENSION_LIST: `${prefix} schemaextension list`,
@@ -18,9 +18,6 @@ class PaAppGetCommand extends PowerAppsCommand {
18
18
  get description() {
19
19
  return 'Gets information about the specified Microsoft Power App';
20
20
  }
21
- defaultProperties() {
22
- return ['name', 'displayName', 'description', 'appVersion', 'owner'];
23
- }
24
21
  constructor() {
25
22
  super();
26
23
  _PaAppGetCommand_instances.add(this);
@@ -15,9 +15,6 @@ class PaEnvironmentGetCommand extends PowerAppsCommand {
15
15
  get description() {
16
16
  return 'Gets information about the specified Microsoft Power Apps environment';
17
17
  }
18
- defaultProperties() {
19
- return ['name', 'id', 'location', 'displayName', 'provisioningState', 'environmentSku', 'azureRegionHint', 'isDefault'];
20
- }
21
18
  constructor() {
22
19
  super();
23
20
  _PaEnvironmentGetCommand_instances.add(this);
@@ -17,9 +17,6 @@ class PlannerBucketAddCommand extends GraphCommand {
17
17
  get description() {
18
18
  return 'Adds a new Microsoft Planner bucket';
19
19
  }
20
- defaultProperties() {
21
- return ['id', 'name', 'planId', 'orderHint'];
22
- }
23
20
  constructor() {
24
21
  super();
25
22
  _PlannerBucketAddCommand_instances.add(this);
@@ -18,9 +18,6 @@ class PlannerPlanAddCommand extends GraphCommand {
18
18
  get description() {
19
19
  return 'Adds a new Microsoft Planner plan';
20
20
  }
21
- defaultProperties() {
22
- return ['id', 'title', 'createdDateTime', 'owner'];
23
- }
24
21
  constructor() {
25
22
  super();
26
23
  _PlannerPlanAddCommand_instances.add(this);
@@ -17,9 +17,6 @@ class PlannerPlanGetCommand extends GraphCommand {
17
17
  get description() {
18
18
  return 'Get a Microsoft Planner plan';
19
19
  }
20
- defaultProperties() {
21
- return ['id', 'title', 'createdDateTime', 'owner', '@odata.etag'];
22
- }
23
20
  constructor() {
24
21
  super();
25
22
  _PlannerPlanGetCommand_instances.add(this);
@@ -18,9 +18,6 @@ class PlannerPlanSetCommand extends GraphCommand {
18
18
  get description() {
19
19
  return 'Updates a Microsoft Planner plan';
20
20
  }
21
- defaultProperties() {
22
- return ['id', 'title', 'createdDateTime', 'owner'];
23
- }
24
21
  constructor() {
25
22
  super();
26
23
  _PlannerPlanSetCommand_instances.add(this);
@@ -17,9 +17,6 @@ class PlannerTaskChecklistItemAddCommand extends GraphCommand {
17
17
  get description() {
18
18
  return 'Adds a new checklist item to a Planner task.';
19
19
  }
20
- defaultProperties() {
21
- return ['id', 'title', 'isChecked'];
22
- }
23
20
  constructor() {
24
21
  super();
25
22
  _PlannerTaskChecklistItemAddCommand_instances.add(this);
@@ -18,9 +18,6 @@ class PpAiBuilderModelGetCommand extends PowerPlatformCommand {
18
18
  get description() {
19
19
  return 'Get an AI builder model in the specified Power Platform environment.';
20
20
  }
21
- defaultProperties() {
22
- return ['msdyn_name', 'msdyn_aimodelid', 'createdon', 'modifiedon'];
23
- }
24
21
  constructor() {
25
22
  super();
26
23
  _PpAiBuilderModelGetCommand_instances.add(this);
@@ -4,13 +4,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _PpCardCloneCommand_instances, _PpCardCloneCommand_initTelemetry, _PpCardCloneCommand_initOptions, _PpCardCloneCommand_initOptionSets, _PpCardCloneCommand_initValidators;
7
- import { cli } from '../../../../cli/cli.js';
8
7
  import request from '../../../../request.js';
9
8
  import { powerPlatform } from '../../../../utils/powerPlatform.js';
10
9
  import { validation } from '../../../../utils/validation.js';
11
10
  import PowerPlatformCommand from '../../../base/PowerPlatformCommand.js';
12
11
  import commands from '../../commands.js';
13
- import ppCardGetCommand from './card-get.js';
14
12
  class PpCardCloneCommand extends PowerPlatformCommand {
15
13
  get name() {
16
14
  return commands.CARD_CLONE;
@@ -30,28 +28,26 @@ class PpCardCloneCommand extends PowerPlatformCommand {
30
28
  if (this.verbose) {
31
29
  await logger.logToStderr(`Cloning a card from '${args.options.id || args.options.name}'...`);
32
30
  }
33
- const res = await this.cloneCard(args);
31
+ const res = await this.cloneCard(args, logger);
34
32
  await logger.log(res);
35
33
  }
36
- async getCardId(args) {
34
+ async getCardId(args, dynamicsApiUrl, logger) {
37
35
  if (args.options.id) {
38
36
  return args.options.id;
39
37
  }
40
- const options = {
41
- environmentName: args.options.environmentName,
42
- name: args.options.name,
43
- output: 'json',
44
- debug: this.debug,
45
- verbose: this.verbose
46
- };
47
- const output = await cli.executeCommandWithOutput(ppCardGetCommand, { options: { ...options, _: [] } });
48
- const getCardOutput = JSON.parse(output.stdout);
49
- return getCardOutput.cardid;
38
+ if (this.verbose) {
39
+ await logger.logToStderr(`Retrieving the card Id for card '${args.options.name}'`);
40
+ }
41
+ const card = await powerPlatform.getCardByName(dynamicsApiUrl, args.options.name);
42
+ return card.cardid;
50
43
  }
51
- async cloneCard(args) {
44
+ async cloneCard(args, logger) {
52
45
  try {
53
46
  const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environmentName, args.options.asAdmin);
54
- const cardId = await this.getCardId(args);
47
+ const cardId = await this.getCardId(args, dynamicsApiUrl, logger);
48
+ if (this.verbose) {
49
+ await logger.logToStderr(`Cloning the card with id '${cardId}'`);
50
+ }
55
51
  const requestOptions = {
56
52
  url: `${dynamicsApiUrl}/api/data/v9.1/CardCreateClone`,
57
53
  headers: {
@@ -4,13 +4,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
4
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
6
  var _PpCardGetCommand_instances, _PpCardGetCommand_initTelemetry, _PpCardGetCommand_initOptions, _PpCardGetCommand_initOptionSets, _PpCardGetCommand_initValidators;
7
- import { cli } from '../../../../cli/cli.js';
8
7
  import request from '../../../../request.js';
9
8
  import { powerPlatform } from '../../../../utils/powerPlatform.js';
10
9
  import { validation } from '../../../../utils/validation.js';
11
10
  import PowerPlatformCommand from '../../../base/PowerPlatformCommand.js';
12
11
  import commands from '../../commands.js';
13
- import { formatting } from '../../../../utils/formatting.js';
14
12
  class PpCardGetCommand extends PowerPlatformCommand {
15
13
  get name() {
16
14
  return commands.CARD_GET;
@@ -18,9 +16,6 @@ class PpCardGetCommand extends PowerPlatformCommand {
18
16
  get description() {
19
17
  return 'Get specific Microsoft Power Platform card in the specified Power Platform environment.';
20
18
  }
21
- defaultProperties() {
22
- return ['name', 'cardid', 'publishdate', 'createdon', 'modifiedon'];
23
- }
24
19
  constructor() {
25
20
  super();
26
21
  _PpCardGetCommand_instances.add(this);
@@ -35,35 +30,31 @@ class PpCardGetCommand extends PowerPlatformCommand {
35
30
  }
36
31
  try {
37
32
  const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environmentName, args.options.asAdmin);
38
- const res = await this.getCard(dynamicsApiUrl, args.options);
33
+ const res = await this.getCard(dynamicsApiUrl, args.options, logger);
39
34
  await logger.log(res);
40
35
  }
41
36
  catch (err) {
42
37
  this.handleRejectedODataJsonPromise(err);
43
38
  }
44
39
  }
45
- async getCard(dynamicsApiUrl, options) {
40
+ async getCard(dynamicsApiUrl, options, logger) {
41
+ if (options.name) {
42
+ if (this.verbose) {
43
+ await logger.logToStderr(`Retrieving the card with name '${options.name}'`);
44
+ }
45
+ return await powerPlatform.getCardByName(dynamicsApiUrl, options.name);
46
+ }
47
+ if (this.verbose) {
48
+ await logger.logToStderr(`Retrieving the card with id '${options.id}'`);
49
+ }
46
50
  const requestOptions = {
51
+ url: `${dynamicsApiUrl}/api/data/v9.1/cards(${options.id})`,
47
52
  headers: {
48
53
  accept: 'application/json;odata.metadata=none'
49
54
  },
50
55
  responseType: 'json'
51
56
  };
52
- if (options.id) {
53
- requestOptions.url = `${dynamicsApiUrl}/api/data/v9.1/cards(${options.id})`;
54
- const result = await request.get(requestOptions);
55
- return result;
56
- }
57
- requestOptions.url = `${dynamicsApiUrl}/api/data/v9.1/cards?$filter=name eq '${options.name}'`;
58
- const result = await request.get(requestOptions);
59
- if (result.value.length === 0) {
60
- throw `The specified card '${options.name}' does not exist.`;
61
- }
62
- if (result.value.length > 1) {
63
- const resultAsKeyValuePair = formatting.convertArrayToHashTable('cardid', result.value);
64
- return cli.handleMultipleResultsFound(`Multiple cards with name '${options.name}' found`, resultAsKeyValuePair);
65
- }
66
- return result.value[0];
57
+ return await request.get(requestOptions);
67
58
  }
68
59
  }
69
60
  _PpCardGetCommand_instances = new WeakSet(), _PpCardGetCommand_initTelemetry = function _PpCardGetCommand_initTelemetry() {
@@ -10,7 +10,6 @@ import { powerPlatform } from '../../../../utils/powerPlatform.js';
10
10
  import { validation } from '../../../../utils/validation.js';
11
11
  import PowerPlatformCommand from '../../../base/PowerPlatformCommand.js';
12
12
  import commands from '../../commands.js';
13
- import ppCardGetCommand from './card-get.js';
14
13
  class PpCardRemoveCommand extends PowerPlatformCommand {
15
14
  get name() {
16
15
  return commands.CARD_REMOVE;
@@ -31,34 +30,32 @@ class PpCardRemoveCommand extends PowerPlatformCommand {
31
30
  await logger.logToStderr(`Removing card '${args.options.id || args.options.name}'...`);
32
31
  }
33
32
  if (args.options.force) {
34
- await this.deleteCard(args);
33
+ await this.deleteCard(args, logger);
35
34
  }
36
35
  else {
37
36
  const result = await cli.promptForConfirmation({ message: `Are you sure you want to remove card '${args.options.id || args.options.name}'?` });
38
37
  if (result) {
39
- await this.deleteCard(args);
38
+ await this.deleteCard(args, logger);
40
39
  }
41
40
  }
42
41
  }
43
- async getCardId(args) {
42
+ async getCardId(args, dynamicsApiUrl, logger) {
44
43
  if (args.options.id) {
45
44
  return args.options.id;
46
45
  }
47
- const options = {
48
- environmentName: args.options.environmentName,
49
- name: args.options.name,
50
- output: 'json',
51
- debug: this.debug,
52
- verbose: this.verbose
53
- };
54
- const output = await cli.executeCommandWithOutput(ppCardGetCommand, { options: { ...options, _: [] } });
55
- const getCardOutput = JSON.parse(output.stdout);
56
- return getCardOutput.cardid;
46
+ if (this.verbose) {
47
+ await logger.logToStderr(`Retrieving the card with name '${args.options.name}'`);
48
+ }
49
+ const card = await powerPlatform.getCardByName(dynamicsApiUrl, args.options.name);
50
+ return card.cardid;
57
51
  }
58
- async deleteCard(args) {
52
+ async deleteCard(args, logger) {
59
53
  try {
60
54
  const dynamicsApiUrl = await powerPlatform.getDynamicsInstanceApiUrl(args.options.environmentName, args.options.asAdmin);
61
- const cardId = await this.getCardId(args);
55
+ const cardId = await this.getCardId(args, dynamicsApiUrl, logger);
56
+ if (this.verbose) {
57
+ await logger.logToStderr(`Deleting card with Id '${cardId}'`);
58
+ }
62
59
  const requestOptions = {
63
60
  url: `${dynamicsApiUrl}/api/data/v9.1/cards(${cardId})`,
64
61
  headers: {
@@ -21,9 +21,6 @@ class PpCopilotGetCommand extends PowerPlatformCommand {
21
21
  alias() {
22
22
  return [commands.CHATBOT_GET];
23
23
  }
24
- defaultProperties() {
25
- return ['name', 'botid', 'publishedon', 'createdon', 'modifiedon'];
26
- }
27
24
  constructor() {
28
25
  super();
29
26
  _PpCopilotGetCommand_instances.add(this);
@@ -15,9 +15,6 @@ class PpDataverseTableGetCommand extends PowerPlatformCommand {
15
15
  get description() {
16
16
  return 'Gets a dataverse table in a given environment';
17
17
  }
18
- defaultProperties() {
19
- return ['SchemaName', 'EntitySetName', 'LogicalName', 'IsManaged'];
20
- }
21
18
  constructor() {
22
19
  super();
23
20
  _PpDataverseTableGetCommand_instances.add(this);
@@ -15,9 +15,6 @@ class PpEnvironmentGetCommand extends PowerPlatformCommand {
15
15
  get description() {
16
16
  return 'Gets information about the specified Power Platform environment';
17
17
  }
18
- defaultProperties() {
19
- return ['name', 'id'];
20
- }
21
18
  constructor() {
22
19
  super();
23
20
  _PpEnvironmentGetCommand_instances.add(this);
@@ -17,9 +17,6 @@ class PpSolutionGetCommand extends PowerPlatformCommand {
17
17
  get description() {
18
18
  return 'Gets a specific solution in a given environment.';
19
19
  }
20
- defaultProperties() {
21
- return ['uniquename', 'version', 'publisher'];
22
- }
23
20
  constructor() {
24
21
  super();
25
22
  _PpSolutionGetCommand_instances.add(this);
@@ -52,23 +49,17 @@ class PpSolutionGetCommand extends PowerPlatformCommand {
52
49
  }
53
50
  }
54
51
  async getSolution(dynamicsApiUrl, options) {
52
+ if (options.name) {
53
+ return powerPlatform.getSolutionByName(dynamicsApiUrl, options.name);
54
+ }
55
55
  const requestOptions = {
56
56
  headers: {
57
57
  accept: 'application/json;odata.metadata=none'
58
58
  },
59
59
  responseType: 'json'
60
60
  };
61
- if (options.id) {
62
- requestOptions.url = `${dynamicsApiUrl}/api/data/v9.0/solutions(${options.id})?$expand=publisherid($select=friendlyname)&$select=solutionid,uniquename,version,publisherid,installedon,solutionpackageversion,friendlyname,versionnumber&api-version=9.1`;
63
- const result = await request.get(requestOptions);
64
- return result;
65
- }
66
- requestOptions.url = `${dynamicsApiUrl}/api/data/v9.0/solutions?$filter=isvisible eq true and uniquename eq \'${options.name}\'&$expand=publisherid($select=friendlyname)&$select=solutionid,uniquename,version,publisherid,installedon,solutionpackageversion,friendlyname,versionnumber&api-version=9.1`;
67
- const result = await request.get(requestOptions);
68
- if (result.value.length === 0) {
69
- throw `The specified solution '${options.name}' does not exist.`;
70
- }
71
- return result.value[0];
61
+ requestOptions.url = `${dynamicsApiUrl}/api/data/v9.0/solutions(${options.id})?$expand=publisherid($select=friendlyname)&$select=solutionid,uniquename,version,publisherid,installedon,solutionpackageversion,friendlyname,versionnumber&api-version=9.1`;
62
+ return request.get(requestOptions);
72
63
  }
73
64
  }
74
65
  _PpSolutionGetCommand_instances = new WeakSet(), _PpSolutionGetCommand_initTelemetry = function _PpSolutionGetCommand_initTelemetry() {