@camunda8/cli 2.7.0-alpha.1 → 2.7.0-alpha.10

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 (144) hide show
  1. package/README.md +80 -1
  2. package/dist/command-dispatch.d.ts +16 -0
  3. package/dist/command-dispatch.d.ts.map +1 -0
  4. package/dist/command-dispatch.js +129 -0
  5. package/dist/command-dispatch.js.map +1 -0
  6. package/dist/command-framework.d.ts +248 -0
  7. package/dist/command-framework.d.ts.map +1 -0
  8. package/dist/command-framework.js +229 -0
  9. package/dist/command-framework.js.map +1 -0
  10. package/dist/command-registry.d.ts +2014 -14
  11. package/dist/command-registry.d.ts.map +1 -1
  12. package/dist/command-registry.js +653 -66
  13. package/dist/command-registry.js.map +1 -1
  14. package/dist/command-validation.d.ts +30 -4
  15. package/dist/command-validation.d.ts.map +1 -1
  16. package/dist/command-validation.js +90 -4
  17. package/dist/command-validation.js.map +1 -1
  18. package/dist/commands/completion.d.ts +25 -1
  19. package/dist/commands/completion.d.ts.map +1 -1
  20. package/dist/commands/completion.js +590 -1223
  21. package/dist/commands/completion.js.map +1 -1
  22. package/dist/commands/deployments.d.ts +2 -0
  23. package/dist/commands/deployments.d.ts.map +1 -1
  24. package/dist/commands/deployments.js +13 -2
  25. package/dist/commands/deployments.js.map +1 -1
  26. package/dist/commands/forms.d.ts +2 -20
  27. package/dist/commands/forms.d.ts.map +1 -1
  28. package/dist/commands/forms.js +76 -79
  29. package/dist/commands/forms.js.map +1 -1
  30. package/dist/commands/help.d.ts +4 -88
  31. package/dist/commands/help.d.ts.map +1 -1
  32. package/dist/commands/help.js +574 -1948
  33. package/dist/commands/help.js.map +1 -1
  34. package/dist/commands/identity-authorizations.d.ts +5 -24
  35. package/dist/commands/identity-authorizations.d.ts.map +1 -1
  36. package/dist/commands/identity-authorizations.js +113 -137
  37. package/dist/commands/identity-authorizations.js.map +1 -1
  38. package/dist/commands/identity-groups.d.ts +5 -26
  39. package/dist/commands/identity-groups.d.ts.map +1 -1
  40. package/dist/commands/identity-groups.js +91 -124
  41. package/dist/commands/identity-groups.js.map +1 -1
  42. package/dist/commands/identity-mapping-rules.d.ts +5 -30
  43. package/dist/commands/identity-mapping-rules.d.ts.map +1 -1
  44. package/dist/commands/identity-mapping-rules.js +106 -136
  45. package/dist/commands/identity-mapping-rules.js.map +1 -1
  46. package/dist/commands/identity-roles.d.ts +5 -26
  47. package/dist/commands/identity-roles.d.ts.map +1 -1
  48. package/dist/commands/identity-roles.js +91 -124
  49. package/dist/commands/identity-roles.js.map +1 -1
  50. package/dist/commands/identity-tenants.d.ts +5 -26
  51. package/dist/commands/identity-tenants.d.ts.map +1 -1
  52. package/dist/commands/identity-tenants.js +92 -126
  53. package/dist/commands/identity-tenants.js.map +1 -1
  54. package/dist/commands/identity-users.d.ts +5 -29
  55. package/dist/commands/identity-users.d.ts.map +1 -1
  56. package/dist/commands/identity-users.js +95 -129
  57. package/dist/commands/identity-users.js.map +1 -1
  58. package/dist/commands/identity.d.ts +6 -6
  59. package/dist/commands/identity.d.ts.map +1 -1
  60. package/dist/commands/identity.js +6 -7
  61. package/dist/commands/identity.js.map +1 -1
  62. package/dist/commands/incidents.d.ts +3 -16
  63. package/dist/commands/incidents.d.ts.map +1 -1
  64. package/dist/commands/incidents.js +71 -98
  65. package/dist/commands/incidents.js.map +1 -1
  66. package/dist/commands/jobs.d.ts +4 -26
  67. package/dist/commands/jobs.d.ts.map +1 -1
  68. package/dist/commands/jobs.js +143 -159
  69. package/dist/commands/jobs.js.map +1 -1
  70. package/dist/commands/mcp-proxy.d.ts +1 -0
  71. package/dist/commands/mcp-proxy.d.ts.map +1 -1
  72. package/dist/commands/mcp-proxy.js +10 -2
  73. package/dist/commands/mcp-proxy.js.map +1 -1
  74. package/dist/commands/messages.d.ts +2 -12
  75. package/dist/commands/messages.d.ts.map +1 -1
  76. package/dist/commands/messages.js +87 -81
  77. package/dist/commands/messages.js.map +1 -1
  78. package/dist/commands/open.d.ts +4 -0
  79. package/dist/commands/open.d.ts.map +1 -1
  80. package/dist/commands/open.js +18 -0
  81. package/dist/commands/open.js.map +1 -1
  82. package/dist/commands/plugins.d.ts +7 -9
  83. package/dist/commands/plugins.d.ts.map +1 -1
  84. package/dist/commands/plugins.js +32 -25
  85. package/dist/commands/plugins.js.map +1 -1
  86. package/dist/commands/process-definitions.d.ts +2 -14
  87. package/dist/commands/process-definitions.d.ts.map +1 -1
  88. package/dist/commands/process-definitions.js +57 -80
  89. package/dist/commands/process-definitions.js.map +1 -1
  90. package/dist/commands/process-instances.d.ts +8 -37
  91. package/dist/commands/process-instances.d.ts.map +1 -1
  92. package/dist/commands/process-instances.js +242 -193
  93. package/dist/commands/process-instances.js.map +1 -1
  94. package/dist/commands/profiles.d.ts +4 -0
  95. package/dist/commands/profiles.d.ts.map +1 -1
  96. package/dist/commands/profiles.js +29 -0
  97. package/dist/commands/profiles.js.map +1 -1
  98. package/dist/commands/run.d.ts +2 -0
  99. package/dist/commands/run.d.ts.map +1 -1
  100. package/dist/commands/run.js +10 -0
  101. package/dist/commands/run.js.map +1 -1
  102. package/dist/commands/search.d.ts +7 -100
  103. package/dist/commands/search.d.ts.map +1 -1
  104. package/dist/commands/search.js +530 -694
  105. package/dist/commands/search.js.map +1 -1
  106. package/dist/commands/session.d.ts +3 -0
  107. package/dist/commands/session.d.ts.map +1 -1
  108. package/dist/commands/session.js +30 -0
  109. package/dist/commands/session.js.map +1 -1
  110. package/dist/commands/topology.d.ts +1 -3
  111. package/dist/commands/topology.d.ts.map +1 -1
  112. package/dist/commands/topology.js +11 -18
  113. package/dist/commands/topology.js.map +1 -1
  114. package/dist/commands/user-tasks.d.ts +2 -16
  115. package/dist/commands/user-tasks.d.ts.map +1 -1
  116. package/dist/commands/user-tasks.js +73 -101
  117. package/dist/commands/user-tasks.js.map +1 -1
  118. package/dist/commands/watch.d.ts +1 -0
  119. package/dist/commands/watch.d.ts.map +1 -1
  120. package/dist/commands/watch.js +15 -0
  121. package/dist/commands/watch.js.map +1 -1
  122. package/dist/config.d.ts.map +1 -1
  123. package/dist/config.js +5 -0
  124. package/dist/config.js.map +1 -1
  125. package/dist/default-plugins/cluster/README.md +1 -1
  126. package/dist/default-plugins/cluster/c8ctl-plugin.js +281 -59
  127. package/dist/index.d.ts +0 -4
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +102 -979
  130. package/dist/index.js.map +1 -1
  131. package/dist/logger.d.ts +5 -0
  132. package/dist/logger.d.ts.map +1 -1
  133. package/dist/logger.js +7 -1
  134. package/dist/logger.js.map +1 -1
  135. package/dist/plugin-loader.d.ts +5 -0
  136. package/dist/plugin-loader.d.ts.map +1 -1
  137. package/dist/plugin-loader.js +1 -0
  138. package/dist/plugin-loader.js.map +1 -1
  139. package/dist/update-check.d.ts +67 -0
  140. package/dist/update-check.d.ts.map +1 -0
  141. package/dist/update-check.js +284 -0
  142. package/dist/update-check.js.map +1 -0
  143. package/package.json +3 -2
  144. /package/dist/templates/{tsconfig.json → tsconfig.json.template} +0 -0
@@ -1,160 +1,127 @@
1
1
  /**
2
2
  * Identity group commands
3
3
  */
4
- import { createClient, emitDryRun, fetchAllPages } from "../client.js";
5
- import { resolveClusterConfig } from "../config.js";
6
- import { handleCommandError } from "../errors.js";
4
+ import { fetchAllPages } from "../client.js";
5
+ import { defineCommand, dryRun } from "../command-framework.js";
7
6
  import { getLogger, sortTableData } from "../logger.js";
8
- import { c8ctl } from "../runtime.js";
9
7
  import { toStringFilter } from "./search.js";
10
8
  /**
11
9
  * List all groups
12
10
  */
13
- export async function listGroups(options) {
14
- const logger = getLogger();
15
- const client = createClient(options.profile);
16
- if (emitDryRun({
11
+ export const listGroupsCommand = defineCommand("list", "group", async (ctx) => {
12
+ const { client, profile, limit } = ctx;
13
+ const dr = dryRun({
17
14
  command: "list groups",
18
15
  method: "POST",
19
16
  endpoint: "/groups/search",
20
- profile: options.profile,
17
+ profile,
21
18
  body: {},
22
- }))
23
- return;
24
- try {
25
- const items = await fetchAllPages((filter, opts) => client.searchGroups(filter, opts), {}, undefined, options.limit);
26
- if (items.length === 0) {
27
- logger.info("No groups found");
28
- return;
29
- }
30
- let tableData = items.map((g) => ({
19
+ });
20
+ if (dr)
21
+ return dr;
22
+ const items = await fetchAllPages((filter, opts) => client.searchGroups(filter, opts), {}, undefined, limit);
23
+ return {
24
+ kind: "list",
25
+ items: items.map((g) => ({
31
26
  "Group ID": g.groupId ?? "",
32
27
  Name: g.name ?? "",
33
28
  Description: g.description ?? "",
34
- }));
35
- tableData = sortTableData(tableData, options.sortBy, logger, options.sortOrder);
36
- logger.table(tableData);
37
- }
38
- catch (error) {
39
- handleCommandError(logger, "Failed to list groups", error);
40
- }
41
- }
29
+ })),
30
+ emptyMessage: "No groups found",
31
+ };
32
+ });
42
33
  /**
43
34
  * Search groups with filters
44
35
  */
45
- export async function searchIdentityGroups(options) {
46
- const logger = getLogger();
47
- const client = createClient(options.profile);
48
- try {
49
- const filter = {};
50
- if (options.groupId)
51
- filter.groupId = toStringFilter(options.groupId);
52
- if (options.name)
53
- filter.name = options.name;
54
- const searchFilter = Object.keys(filter).length > 0 ? { filter } : {};
55
- if (emitDryRun({
56
- command: "search groups",
57
- method: "POST",
58
- endpoint: "/groups/search",
59
- profile: options.profile,
60
- body: searchFilter,
61
- }))
62
- return;
63
- const items = await fetchAllPages((f, opts) => client.searchGroups(f, opts), searchFilter, undefined, options.limit);
64
- if (items.length === 0) {
65
- logger.info("No groups found");
66
- return;
67
- }
68
- let tableData = items.map((g) => ({
69
- "Group ID": g.groupId ?? "",
70
- Name: g.name ?? "",
71
- Description: g.description ?? "",
72
- }));
73
- tableData = sortTableData(tableData, options.sortBy, logger, options.sortOrder);
74
- logger.table(tableData);
75
- }
76
- catch (error) {
77
- handleCommandError(logger, "Failed to search groups", error);
36
+ export const searchIdentityGroupsCommand = defineCommand("search", "group", async (ctx, flags, _args) => {
37
+ const { client, logger, profile, limit, sortBy, sortOrder } = ctx;
38
+ const filter = {};
39
+ if (flags.groupId)
40
+ filter.groupId = toStringFilter(String(flags.groupId));
41
+ if (flags.name)
42
+ filter.name = flags.name;
43
+ const searchFilter = Object.keys(filter).length > 0 ? { filter } : {};
44
+ const dr = dryRun({
45
+ command: "search groups",
46
+ method: "POST",
47
+ endpoint: "/groups/search",
48
+ profile,
49
+ body: searchFilter,
50
+ });
51
+ if (dr)
52
+ return dr;
53
+ const items = await fetchAllPages((f, opts) => client.searchGroups(f, opts), searchFilter, undefined, limit);
54
+ if (items.length === 0) {
55
+ logger.info("No groups found");
56
+ return;
78
57
  }
79
- }
58
+ let tableData = items.map((g) => ({
59
+ "Group ID": g.groupId ?? "",
60
+ Name: g.name ?? "",
61
+ Description: g.description ?? "",
62
+ }));
63
+ tableData = sortTableData(tableData, sortBy, logger, sortOrder);
64
+ logger.table(tableData);
65
+ });
80
66
  /**
81
67
  * Get a single group by groupId
82
68
  */
83
- export async function getIdentityGroup(groupId, options) {
84
- const logger = getLogger();
85
- const client = createClient(options.profile);
86
- if (emitDryRun({
69
+ export const getIdentityGroupCommand = defineCommand("get", "group", async (ctx, _flags, args) => {
70
+ const { client, profile } = ctx;
71
+ const groupId = args.groupId;
72
+ const dr = dryRun({
87
73
  command: "get group",
88
74
  method: "GET",
89
75
  endpoint: `/groups/${groupId}`,
90
- profile: options.profile,
91
- }))
92
- return;
93
- try {
94
- const result = await client.getGroup({ groupId: groupId }, { consistency: { waitUpToMs: 0 } });
95
- logger.json(result);
96
- }
97
- catch (error) {
98
- handleCommandError(logger, `Failed to get group '${groupId}'`, error);
99
- }
100
- }
76
+ profile,
77
+ });
78
+ if (dr)
79
+ return dr;
80
+ const result = await client.getGroup({ groupId }, { consistency: { waitUpToMs: 0 } });
81
+ return { kind: "get", data: result };
82
+ });
101
83
  /**
102
84
  * Create a new group
103
85
  */
104
- export async function createIdentityGroup(options) {
105
- const logger = getLogger();
106
- if (!options.groupId) {
107
- logger.error("--groupId is required");
86
+ export const createIdentityGroupCommand = defineCommand("create", "group", async (ctx, flags, _args) => {
87
+ const { client, profile } = ctx;
88
+ if (!flags.groupId) {
89
+ getLogger().error("--groupId is required");
108
90
  process.exit(1);
109
91
  }
110
- if (!options.name) {
111
- logger.error("--name is required");
92
+ if (!flags.name) {
93
+ getLogger().error("--name is required");
112
94
  process.exit(1);
113
95
  }
114
- const body = { groupId: options.groupId, name: options.name };
115
- if (c8ctl.dryRun) {
116
- const config = resolveClusterConfig(options.profile);
117
- logger.json({
118
- dryRun: true,
119
- command: "create group",
120
- method: "POST",
121
- url: `${config.baseUrl}/groups`,
122
- body,
123
- });
124
- return;
125
- }
126
- const client = createClient(options.profile);
127
- try {
128
- await client.createGroup(body);
129
- logger.success(`Group '${options.name}' created`);
130
- }
131
- catch (error) {
132
- handleCommandError(logger, "Failed to create group", error);
133
- }
134
- }
96
+ const body = { groupId: flags.groupId, name: flags.name };
97
+ const dr = dryRun({
98
+ command: "create group",
99
+ method: "POST",
100
+ endpoint: "/groups",
101
+ profile,
102
+ body,
103
+ });
104
+ if (dr)
105
+ return dr;
106
+ await client.createGroup(body);
107
+ return { kind: "success", message: `Group '${flags.name}' created` };
108
+ });
135
109
  /**
136
110
  * Delete a group by groupId
137
111
  */
138
- export async function deleteIdentityGroup(groupId, options) {
139
- const logger = getLogger();
140
- if (c8ctl.dryRun) {
141
- const config = resolveClusterConfig(options.profile);
142
- logger.json({
143
- dryRun: true,
144
- command: "delete group",
145
- method: "DELETE",
146
- url: `${config.baseUrl}/groups/${encodeURIComponent(groupId)}`,
147
- body: null,
148
- });
149
- return;
150
- }
151
- const client = createClient(options.profile);
152
- try {
153
- await client.deleteGroup({ groupId: groupId });
154
- logger.success(`Group '${groupId}' deleted`);
155
- }
156
- catch (error) {
157
- handleCommandError(logger, `Failed to delete group '${groupId}'`, error);
158
- }
159
- }
112
+ export const deleteIdentityGroupCommand = defineCommand("delete", "group", async (ctx, _flags, args) => {
113
+ const { client, profile } = ctx;
114
+ const groupId = args.groupId;
115
+ const dr = dryRun({
116
+ command: "delete group",
117
+ method: "DELETE",
118
+ endpoint: `/groups/${encodeURIComponent(groupId)}`,
119
+ profile,
120
+ body: null,
121
+ });
122
+ if (dr)
123
+ return dr;
124
+ await client.deleteGroup({ groupId });
125
+ return { kind: "success", message: `Group '${groupId}' deleted` };
126
+ });
160
127
  //# sourceMappingURL=identity-groups.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-groups.js","sourceRoot":"","sources":["../../src/commands/identity-groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-groups.js","sourceRoot":"","sources":["../../src/commands/identity-groups.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,24 @@
1
1
  /**
2
2
  * Identity mapping rule commands
3
3
  */
4
- import { type SortOrder } from "../logger.ts";
5
4
  /**
6
5
  * List all mapping rules
7
6
  */
8
- export declare function listMappingRules(options: {
9
- profile?: string;
10
- sortBy?: string;
11
- sortOrder?: SortOrder;
12
- limit?: number;
13
- }): Promise<void>;
7
+ export declare const listMappingRulesCommand: import("../command-framework.ts").CommandHandler<"list", "mapping-rule">;
14
8
  /**
15
9
  * Search mapping rules with filters
16
10
  */
17
- export declare function searchIdentityMappingRules(options: {
18
- profile?: string;
19
- mappingRuleId?: string;
20
- name?: string;
21
- claimName?: string;
22
- claimValue?: string;
23
- sortBy?: string;
24
- sortOrder?: SortOrder;
25
- limit?: number;
26
- }): Promise<void>;
11
+ export declare const searchIdentityMappingRulesCommand: import("../command-framework.ts").CommandHandler<"search", "mapping-rule">;
27
12
  /**
28
13
  * Get a single mapping rule by mappingRuleId
29
14
  */
30
- export declare function getIdentityMappingRule(mappingRuleId: string, options: {
31
- profile?: string;
32
- }): Promise<void>;
15
+ export declare const getIdentityMappingRuleCommand: import("../command-framework.ts").CommandHandler<"get", "mapping-rule">;
33
16
  /**
34
17
  * Create a new mapping rule
35
18
  */
36
- export declare function createIdentityMappingRule(options: {
37
- profile?: string;
38
- mappingRuleId?: string;
39
- name?: string;
40
- claimName?: string;
41
- claimValue?: string;
42
- }): Promise<void>;
19
+ export declare const createIdentityMappingRuleCommand: import("../command-framework.ts").CommandHandler<"create", "mapping-rule">;
43
20
  /**
44
21
  * Delete a mapping rule by mappingRuleId
45
22
  */
46
- export declare function deleteIdentityMappingRule(mappingRuleId: string, options: {
47
- profile?: string;
48
- }): Promise<void>;
23
+ export declare const deleteIdentityMappingRuleCommand: import("../command-framework.ts").CommandHandler<"delete", "mapping-rule">;
49
24
  //# sourceMappingURL=identity-mapping-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-mapping-rules.d.ts","sourceRoot":"","sources":["../../src/commands/identity-mapping-rules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAa,KAAK,SAAS,EAAiB,MAAM,cAAc,CAAC;AAGxE;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChB;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDhB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC3C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GACC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GACC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
1
+ {"version":3,"file":"identity-mapping-rules.d.ts","sourceRoot":"","sources":["../../src/commands/identity-mapping-rules.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,uBAAuB,0EAiCnC,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,iCAAiC,4EA4C7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,yEAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,4EA0C5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,4EAsB5C,CAAC"}
@@ -1,178 +1,148 @@
1
1
  /**
2
2
  * Identity mapping rule commands
3
3
  */
4
- import { createClient, emitDryRun, fetchAllPages } from "../client.js";
5
- import { resolveClusterConfig } from "../config.js";
6
- import { handleCommandError } from "../errors.js";
4
+ import { fetchAllPages } from "../client.js";
5
+ import { defineCommand, dryRun } from "../command-framework.js";
7
6
  import { getLogger, sortTableData } from "../logger.js";
8
- import { c8ctl } from "../runtime.js";
9
7
  /**
10
8
  * List all mapping rules
11
9
  */
12
- export async function listMappingRules(options) {
13
- const logger = getLogger();
14
- const client = createClient(options.profile);
15
- if (emitDryRun({
10
+ export const listMappingRulesCommand = defineCommand("list", "mapping-rule", async (ctx) => {
11
+ const { client, profile, limit } = ctx;
12
+ const dr = dryRun({
16
13
  command: "list mapping-rules",
17
14
  method: "POST",
18
15
  endpoint: "/mapping-rules/search",
19
- profile: options.profile,
16
+ profile,
20
17
  body: {},
21
- }))
22
- return;
23
- try {
24
- const items = await fetchAllPages((filter, opts) => client.searchMappingRule(filter, opts), {}, undefined, options.limit);
25
- if (items.length === 0) {
26
- logger.info("No mapping rules found");
27
- return;
28
- }
29
- let tableData = items.map((m) => ({
18
+ });
19
+ if (dr)
20
+ return dr;
21
+ const items = await fetchAllPages((filter, opts) => client.searchMappingRule(filter, opts), {}, undefined, limit);
22
+ return {
23
+ kind: "list",
24
+ items: items.map((m) => ({
30
25
  "Mapping Rule ID": m.mappingRuleId ?? "",
31
26
  Name: m.name ?? "",
32
27
  "Claim Name": m.claimName ?? "",
33
28
  "Claim Value": m.claimValue ?? "",
34
- }));
35
- tableData = sortTableData(tableData, options.sortBy, logger, options.sortOrder);
36
- logger.table(tableData);
37
- }
38
- catch (error) {
39
- handleCommandError(logger, "Failed to list mapping rules", error);
40
- }
41
- }
29
+ })),
30
+ emptyMessage: "No mapping rules found",
31
+ };
32
+ });
42
33
  /**
43
34
  * Search mapping rules with filters
44
35
  */
45
- export async function searchIdentityMappingRules(options) {
46
- const logger = getLogger();
47
- const client = createClient(options.profile);
48
- try {
49
- const filter = {};
50
- if (options.mappingRuleId)
51
- filter.mappingRuleId = options.mappingRuleId;
52
- if (options.name)
53
- filter.name = options.name;
54
- if (options.claimName)
55
- filter.claimName = options.claimName;
56
- if (options.claimValue)
57
- filter.claimValue = options.claimValue;
58
- const searchFilter = Object.keys(filter).length > 0 ? { filter } : {};
59
- if (emitDryRun({
60
- command: "search mapping-rules",
61
- method: "POST",
62
- endpoint: "/mapping-rules/search",
63
- profile: options.profile,
64
- body: searchFilter,
65
- }))
66
- return;
67
- const items = await fetchAllPages((f, opts) => client.searchMappingRule(f, opts), searchFilter, undefined, options.limit);
68
- if (items.length === 0) {
69
- logger.info("No mapping rules found");
70
- return;
71
- }
72
- let tableData = items.map((m) => ({
73
- "Mapping Rule ID": m.mappingRuleId ?? "",
74
- Name: m.name ?? "",
75
- "Claim Name": m.claimName ?? "",
76
- "Claim Value": m.claimValue ?? "",
77
- }));
78
- tableData = sortTableData(tableData, options.sortBy, logger, options.sortOrder);
79
- logger.table(tableData);
80
- }
81
- catch (error) {
82
- handleCommandError(logger, "Failed to search mapping rules", error);
36
+ export const searchIdentityMappingRulesCommand = defineCommand("search", "mapping-rule", async (ctx, flags, _args) => {
37
+ const { client, logger, profile, limit, sortBy, sortOrder } = ctx;
38
+ const filter = {};
39
+ if (flags.mappingRuleId)
40
+ filter.mappingRuleId = flags.mappingRuleId;
41
+ if (flags.name)
42
+ filter.name = flags.name;
43
+ if (flags.claimName)
44
+ filter.claimName = flags.claimName;
45
+ if (flags.claimValue)
46
+ filter.claimValue = flags.claimValue;
47
+ const searchFilter = Object.keys(filter).length > 0 ? { filter } : {};
48
+ const dr = dryRun({
49
+ command: "search mapping-rules",
50
+ method: "POST",
51
+ endpoint: "/mapping-rules/search",
52
+ profile,
53
+ body: searchFilter,
54
+ });
55
+ if (dr)
56
+ return dr;
57
+ const items = await fetchAllPages((f, opts) => client.searchMappingRule(f, opts), searchFilter, undefined, limit);
58
+ if (items.length === 0) {
59
+ logger.info("No mapping rules found");
60
+ return;
83
61
  }
84
- }
62
+ let tableData = items.map((m) => ({
63
+ "Mapping Rule ID": m.mappingRuleId ?? "",
64
+ Name: m.name ?? "",
65
+ "Claim Name": m.claimName ?? "",
66
+ "Claim Value": m.claimValue ?? "",
67
+ }));
68
+ tableData = sortTableData(tableData, sortBy, logger, sortOrder);
69
+ logger.table(tableData);
70
+ });
85
71
  /**
86
72
  * Get a single mapping rule by mappingRuleId
87
73
  */
88
- export async function getIdentityMappingRule(mappingRuleId, options) {
89
- const logger = getLogger();
90
- const client = createClient(options.profile);
91
- if (emitDryRun({
74
+ export const getIdentityMappingRuleCommand = defineCommand("get", "mapping-rule", async (ctx, _flags, args) => {
75
+ const { client, profile } = ctx;
76
+ const mappingRuleId = args.mappingRuleId;
77
+ const dr = dryRun({
92
78
  command: "get mapping-rule",
93
79
  method: "GET",
94
80
  endpoint: `/mapping-rules/${mappingRuleId}`,
95
- profile: options.profile,
96
- }))
97
- return;
98
- try {
99
- const result = await client.getMappingRule({ mappingRuleId: mappingRuleId }, { consistency: { waitUpToMs: 0 } });
100
- logger.json(result);
101
- }
102
- catch (error) {
103
- handleCommandError(logger, `Failed to get mapping rule '${mappingRuleId}'`, error);
104
- }
105
- }
81
+ profile,
82
+ });
83
+ if (dr)
84
+ return dr;
85
+ const result = await client.getMappingRule({ mappingRuleId }, { consistency: { waitUpToMs: 0 } });
86
+ return { kind: "get", data: result };
87
+ });
106
88
  /**
107
89
  * Create a new mapping rule
108
90
  */
109
- export async function createIdentityMappingRule(options) {
110
- const logger = getLogger();
111
- if (!options.mappingRuleId) {
112
- logger.error("--mappingRuleId is required");
91
+ export const createIdentityMappingRuleCommand = defineCommand("create", "mapping-rule", async (ctx, flags, _args) => {
92
+ const { client, profile } = ctx;
93
+ if (!flags.mappingRuleId) {
94
+ getLogger().error("--mappingRuleId is required");
113
95
  process.exit(1);
114
96
  }
115
- if (!options.name) {
116
- logger.error("--name is required");
97
+ if (!flags.name) {
98
+ getLogger().error("--name is required");
117
99
  process.exit(1);
118
100
  }
119
- if (!options.claimName) {
120
- logger.error("--claimName is required");
101
+ if (!flags.claimName) {
102
+ getLogger().error("--claimName is required");
121
103
  process.exit(1);
122
104
  }
123
- if (!options.claimValue) {
124
- logger.error("--claimValue is required");
105
+ if (!flags.claimValue) {
106
+ getLogger().error("--claimValue is required");
125
107
  process.exit(1);
126
108
  }
127
109
  const body = {
128
- mappingRuleId: options.mappingRuleId,
129
- name: options.name,
130
- claimName: options.claimName,
131
- claimValue: options.claimValue,
110
+ mappingRuleId: flags.mappingRuleId,
111
+ name: flags.name,
112
+ claimName: flags.claimName,
113
+ claimValue: flags.claimValue,
132
114
  };
133
- if (c8ctl.dryRun) {
134
- const config = resolveClusterConfig(options.profile);
135
- logger.json({
136
- dryRun: true,
137
- command: "create mapping-rule",
138
- method: "POST",
139
- url: `${config.baseUrl}/mapping-rules`,
140
- body,
141
- });
142
- return;
143
- }
144
- const client = createClient(options.profile);
145
- try {
146
- await client.createMappingRule(body);
147
- logger.success(`Mapping rule '${options.name}' created`);
148
- }
149
- catch (error) {
150
- handleCommandError(logger, "Failed to create mapping rule", error);
151
- }
152
- }
115
+ const dr = dryRun({
116
+ command: "create mapping-rule",
117
+ method: "POST",
118
+ endpoint: "/mapping-rules",
119
+ profile,
120
+ body,
121
+ });
122
+ if (dr)
123
+ return dr;
124
+ await client.createMappingRule(body);
125
+ return { kind: "success", message: `Mapping rule '${flags.name}' created` };
126
+ });
153
127
  /**
154
128
  * Delete a mapping rule by mappingRuleId
155
129
  */
156
- export async function deleteIdentityMappingRule(mappingRuleId, options) {
157
- const logger = getLogger();
158
- if (c8ctl.dryRun) {
159
- const config = resolveClusterConfig(options.profile);
160
- logger.json({
161
- dryRun: true,
162
- command: "delete mapping-rule",
163
- method: "DELETE",
164
- url: `${config.baseUrl}/mapping-rules/${encodeURIComponent(mappingRuleId)}`,
165
- body: null,
166
- });
167
- return;
168
- }
169
- const client = createClient(options.profile);
170
- try {
171
- await client.deleteMappingRule({ mappingRuleId: mappingRuleId });
172
- logger.success(`Mapping rule '${mappingRuleId}' deleted`);
173
- }
174
- catch (error) {
175
- handleCommandError(logger, `Failed to delete mapping rule '${mappingRuleId}'`, error);
176
- }
177
- }
130
+ export const deleteIdentityMappingRuleCommand = defineCommand("delete", "mapping-rule", async (ctx, _flags, args) => {
131
+ const { client, profile } = ctx;
132
+ const mappingRuleId = args.mappingRuleId;
133
+ const dr = dryRun({
134
+ command: "delete mapping-rule",
135
+ method: "DELETE",
136
+ endpoint: `/mapping-rules/${encodeURIComponent(mappingRuleId)}`,
137
+ profile,
138
+ body: null,
139
+ });
140
+ if (dr)
141
+ return dr;
142
+ await client.deleteMappingRule({ mappingRuleId });
143
+ return {
144
+ kind: "success",
145
+ message: `Mapping rule '${mappingRuleId}' deleted`,
146
+ };
147
+ });
178
148
  //# sourceMappingURL=identity-mapping-rules.js.map