@camunda/ccma-api 0.0.10 → 0.3.0

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 (96) hide show
  1. package/dist/index.d.ts +38 -8
  2. package/dist/index.js +56 -2
  3. package/dist/index.js.map +2 -2
  4. package/dist/services/accounts/admin-tools.service.d.ts +27 -0
  5. package/dist/services/accounts/admin-tools.service.js +70 -0
  6. package/dist/services/accounts/admin-tools.service.js.map +7 -0
  7. package/dist/services/accounts/connections.service.d.ts +85 -0
  8. package/dist/services/accounts/connections.service.js +150 -0
  9. package/dist/services/accounts/connections.service.js.map +2 -2
  10. package/dist/services/accounts/early-access-features.service.d.ts +59 -0
  11. package/dist/services/accounts/early-access-features.service.js +142 -0
  12. package/dist/services/accounts/early-access-features.service.js.map +2 -2
  13. package/dist/services/accounts/invites.service.d.ts +28 -0
  14. package/dist/services/accounts/invites.service.js +53 -0
  15. package/dist/services/accounts/invites.service.js.map +7 -0
  16. package/dist/services/accounts/orgs.service.d.ts +48 -0
  17. package/dist/services/accounts/orgs.service.js +153 -0
  18. package/dist/services/accounts/orgs.service.js.map +2 -2
  19. package/dist/services/accounts/orgs.v2.service.d.ts +32 -0
  20. package/dist/services/accounts/orgs.v2.service.js +158 -0
  21. package/dist/services/accounts/orgs.v2.service.js.map +7 -0
  22. package/dist/services/accounts/pdf-watermark.service.d.ts +93 -0
  23. package/dist/services/accounts/pdf-watermark.service.js +147 -0
  24. package/dist/services/accounts/pdf-watermark.service.js.map +7 -0
  25. package/dist/services/accounts/release-train.service.d.ts +25 -0
  26. package/dist/services/accounts/release-train.service.js +46 -0
  27. package/dist/services/accounts/release-train.service.js.map +7 -0
  28. package/dist/services/accounts/salesplan.service.d.ts +45 -0
  29. package/dist/services/accounts/salesplan.service.js +185 -0
  30. package/dist/services/accounts/salesplan.service.js.map +2 -2
  31. package/dist/services/accounts/token-issuer.service.d.ts +31 -0
  32. package/dist/services/accounts/token-issuer.service.js +63 -0
  33. package/dist/services/accounts/token-issuer.service.js.map +7 -0
  34. package/dist/services/accounts/users.service.d.ts +59 -0
  35. package/dist/services/accounts/users.service.js +296 -4
  36. package/dist/services/accounts/users.service.js.map +2 -2
  37. package/dist/services/console/console.admin.service.d.ts +11 -0
  38. package/dist/services/console/console.admin.service.js +37 -0
  39. package/dist/services/console/console.admin.service.js.map +2 -2
  40. package/dist/services/console/console.channel.service.d.ts +49 -0
  41. package/dist/services/console/console.channel.service.js +123 -0
  42. package/dist/services/console/console.channel.service.js.map +7 -0
  43. package/dist/services/console/console.cluster.service.d.ts +23 -11
  44. package/dist/services/console/console.cluster.service.js +36 -1
  45. package/dist/services/console/console.cluster.service.js.map +2 -2
  46. package/dist/services/console/console.cluster.v2.service.d.ts +43 -0
  47. package/dist/services/console/console.cluster.v2.service.js +219 -0
  48. package/dist/services/console/console.cluster.v2.service.js.map +7 -0
  49. package/dist/services/console/console.clusterplan.service.d.ts +14 -0
  50. package/dist/services/console/console.clusterplan.service.js +59 -0
  51. package/dist/services/console/console.clusterplan.service.js.map +2 -2
  52. package/dist/services/console/console.clusterplantype.service.d.ts +54 -0
  53. package/dist/services/console/console.clusterplantype.service.js +152 -0
  54. package/dist/services/console/console.clusterplantype.service.js.map +7 -0
  55. package/dist/services/console/console.k8scontext.service.d.ts +10 -0
  56. package/dist/services/console/console.k8scontext.service.js +41 -0
  57. package/dist/services/console/console.k8scontext.service.js.map +7 -0
  58. package/dist/services/console/console.storybook-config.service.d.ts +10 -0
  59. package/dist/services/console/console.storybook-config.service.js +40 -0
  60. package/dist/services/console/console.storybook-config.service.js.map +7 -0
  61. package/dist/services/console/generation.service.d.ts +42 -0
  62. package/dist/services/console/generation.service.js +115 -0
  63. package/dist/services/console/generation.service.js.map +2 -2
  64. package/dist/services/external/external.accounts.service.d.ts +27 -0
  65. package/dist/services/external/external.accounts.service.js +80 -0
  66. package/dist/services/external/external.accounts.service.js.map +7 -0
  67. package/dist/services/external/external.console.service.d.ts +37 -0
  68. package/dist/services/external/external.console.service.js +81 -0
  69. package/dist/services/external/external.console.service.js.map +7 -0
  70. package/dist/services/external/external.notifications.service.d.ts +78 -0
  71. package/dist/services/external/external.notifications.service.js +220 -0
  72. package/dist/services/external/external.notifications.service.js.map +7 -0
  73. package/dist/services/external/external.services.spec.d.ts +1 -0
  74. package/dist/services/helpcenter/helpcenter.service.d.ts +42 -0
  75. package/dist/services/helpcenter/helpcenter.service.js +84 -0
  76. package/dist/services/helpcenter/helpcenter.service.js.map +7 -0
  77. package/dist/services/helpcenter/helpcenter.service.spec.d.ts +1 -0
  78. package/dist/services/notifications/notifications.service.d.ts +45 -1
  79. package/dist/services/notifications/notifications.service.js +162 -0
  80. package/dist/services/notifications/notifications.service.js.map +2 -2
  81. package/dist/types/general.types.d.ts +8 -0
  82. package/dist/utils/api.d.ts +1 -1
  83. package/dist/utils/api.js +13 -2
  84. package/dist/utils/api.js.map +2 -2
  85. package/dist/utils/query.d.ts +7 -0
  86. package/dist/utils/query.js +29 -0
  87. package/dist/utils/query.js.map +7 -0
  88. package/dist/utils/sse.d.ts +51 -0
  89. package/dist/utils/sse.js +247 -0
  90. package/dist/utils/sse.js.map +7 -0
  91. package/dist/utils/sse.spec.d.ts +1 -0
  92. package/dist/utils/traceparent.d.ts +12 -0
  93. package/dist/utils/traceparent.js +16 -0
  94. package/dist/utils/traceparent.js.map +7 -0
  95. package/dist/utils/traceparent.spec.d.ts +1 -0
  96. package/package.json +2 -2
@@ -1,6 +1,191 @@
1
+ import {
2
+ SalesPlanType
3
+ } from "@camunda/ccma-shared-types";
1
4
  import { request } from "../../utils/api.js";
2
5
  import { HttpError } from "../../utils/errors.js";
3
6
  class SalesPlanService {
7
+ static async getAll(params) {
8
+ const serviceContext = {
9
+ method: {
10
+ name: "SalesPlanService.getAll",
11
+ url: "api/salesplans",
12
+ normalizedUrl: "api/salesplans",
13
+ type: "get"
14
+ },
15
+ source: params.config.metrics?.source || "unset",
16
+ target: { name: "accounts", type: "internal" }
17
+ };
18
+ const response = await request({
19
+ config: params.config,
20
+ base: { id: "accounts" },
21
+ url: serviceContext.method.url,
22
+ method: serviceContext.method.type,
23
+ metricsDetails: serviceContext,
24
+ responseType: "json"
25
+ });
26
+ if (!response.ok) {
27
+ throw new HttpError(
28
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
29
+ response.status,
30
+ response.statusText
31
+ );
32
+ }
33
+ return response.body ?? [];
34
+ }
35
+ static async create(params) {
36
+ const serviceContext = {
37
+ method: {
38
+ name: "SalesPlanService.create",
39
+ url: "api/salesplans",
40
+ normalizedUrl: "api/salesplans",
41
+ type: "post"
42
+ },
43
+ source: params.config.metrics?.source || "unset",
44
+ target: { name: "accounts", type: "internal" }
45
+ };
46
+ const response = await request({
47
+ config: params.config,
48
+ base: { id: "accounts" },
49
+ url: serviceContext.method.url,
50
+ method: serviceContext.method.type,
51
+ metricsDetails: serviceContext,
52
+ body: {
53
+ name: params.params.name,
54
+ type: params.params.type,
55
+ version: params.params.version,
56
+ internal: params.params.type === SalesPlanType.INTERNAL,
57
+ clusterPlanConfigurationMap: {}
58
+ },
59
+ responseType: "json"
60
+ });
61
+ if (!response.ok || !response.body) {
62
+ throw new HttpError(
63
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
64
+ response.status,
65
+ response.statusText
66
+ );
67
+ }
68
+ return response.body;
69
+ }
70
+ static async update(params) {
71
+ const serviceContext = {
72
+ method: {
73
+ name: "SalesPlanService.update",
74
+ url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}`,
75
+ normalizedUrl: "api/salesplans/:salesPlanUuid",
76
+ type: "put"
77
+ },
78
+ source: params.config.metrics?.source || "unset",
79
+ target: { name: "accounts", type: "internal" }
80
+ };
81
+ const response = await request({
82
+ config: params.config,
83
+ base: { id: "accounts" },
84
+ url: serviceContext.method.url,
85
+ method: serviceContext.method.type,
86
+ metricsDetails: serviceContext,
87
+ body: {
88
+ clusterPlanConfigurationMap: params.params.clusterPlanConfigurationMap,
89
+ force: params.params.force,
90
+ name: params.params.name,
91
+ version: params.params.version
92
+ },
93
+ responseType: "none"
94
+ });
95
+ if (!response.ok) {
96
+ throw new HttpError(
97
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
98
+ response.status,
99
+ response.statusText
100
+ );
101
+ }
102
+ }
103
+ static async updateMetadata(params) {
104
+ const serviceContext = {
105
+ method: {
106
+ name: "SalesPlanService.updateMetadata",
107
+ url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}/metadata`,
108
+ normalizedUrl: "api/salesplans/:salesPlanUuid/metadata",
109
+ type: "patch"
110
+ },
111
+ source: params.config.metrics?.source || "unset",
112
+ target: { name: "accounts", type: "internal" }
113
+ };
114
+ const response = await request({
115
+ config: params.config,
116
+ base: { id: "accounts" },
117
+ url: serviceContext.method.url,
118
+ method: serviceContext.method.type,
119
+ metricsDetails: serviceContext,
120
+ body: params.params.name ? { metadata: params.params.metadata, name: params.params.name } : { metadata: params.params.metadata },
121
+ responseType: "none"
122
+ });
123
+ if (!response.ok) {
124
+ throw new HttpError(
125
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
126
+ response.status,
127
+ response.statusText
128
+ );
129
+ }
130
+ }
131
+ static async updateReservations(params) {
132
+ const serviceContext = {
133
+ method: {
134
+ name: "SalesPlanService.updateReservations",
135
+ url: `api/salesplans/reserved?orgId=${encodeURIComponent(params.params.orgId)}`,
136
+ normalizedUrl: "api/salesplans/reserved",
137
+ type: "patch"
138
+ },
139
+ source: params.config.metrics?.source || "unset",
140
+ target: { name: "accounts", type: "internal" }
141
+ };
142
+ const response = await request({
143
+ config: params.config,
144
+ base: { id: "accounts" },
145
+ url: serviceContext.method.url,
146
+ method: serviceContext.method.type,
147
+ metricsDetails: serviceContext,
148
+ body: {
149
+ clusterPlanTypesToReserved: params.params.clusterPlanTypesToReserved,
150
+ changedBy: "admin"
151
+ },
152
+ responseType: "none"
153
+ });
154
+ if (!response.ok) {
155
+ throw new HttpError(
156
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
157
+ response.status,
158
+ response.statusText
159
+ );
160
+ }
161
+ }
162
+ static async delete(params) {
163
+ const serviceContext = {
164
+ method: {
165
+ name: "SalesPlanService.delete",
166
+ url: `api/salesplans/${encodeURIComponent(params.params.uuid)}`,
167
+ normalizedUrl: "api/salesplans/:uuid",
168
+ type: "delete"
169
+ },
170
+ source: params.config.metrics?.source || "unset",
171
+ target: { name: "accounts", type: "internal" }
172
+ };
173
+ const response = await request({
174
+ config: params.config,
175
+ base: { id: "accounts" },
176
+ url: serviceContext.method.url,
177
+ method: serviceContext.method.type,
178
+ metricsDetails: serviceContext,
179
+ responseType: "none"
180
+ });
181
+ if (!response.ok) {
182
+ throw new HttpError(
183
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
184
+ response.status,
185
+ response.statusText
186
+ );
187
+ }
188
+ }
4
189
  static async deleteClusterPlanType(params) {
5
190
  const serviceContext = {
6
191
  method: {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/services/accounts/salesplan.service.ts"],
4
- "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport class SalesPlanService {\n public static async deleteClusterPlanType(\n params: { uuid: string; force?: boolean } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `SalesPlanService.deleteClusterPlanType`,\n url: `api/salesplans/clusterPlanType/${params.uuid}`,\n normalizedUrl: `api/salesplans/clusterPlanType/:uuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n body: params.force ? { force: params.force } : undefined,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 204\n }\n}\n"],
5
- "mappings": "AAUA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAEnB,MAAM,iBAAiB;AAAA,EAC5B,aAAoB,sBAClB,QACA;AACA,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,kCAAkC,OAAO,IAAI;AAAA,QAClD,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,WAAW,MAAM,QAAQ;AAAA,MAC7B,QAAQ,OAAO;AAAA,MACf,MAAM,EAAE,IAAI,WAAW;AAAA,MACvB,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,MAAM,OAAO,QAAQ,EAAE,OAAO,OAAO,MAAM,IAAI;AAAA,IACjD,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,GAAG,eAAe,OAAO,IAAI,KAAK,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,QACxE,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO,SAAS,WAAW;AAAA,EAC7B;AACF;",
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n type Limits,\n type SalesPlanDto,\n SalesPlanType,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport type GetSalesPlansRequest = RequestBaseParams\n\nexport interface CreateSalesPlanRequest extends RequestBaseParams {\n params: { name: string; type: SalesPlanType; version: number }\n}\n\nexport interface UpdateSalesPlanRequest extends RequestBaseParams {\n params: {\n salesPlanUuid: string\n name: string\n version: number\n force: boolean\n clusterPlanConfigurationMap: Record<string, unknown>\n }\n}\n\nexport interface UpdateSalesPlanMetadataRequest extends RequestBaseParams {\n params: {\n salesPlanUuid: string\n metadata: { limits?: Limits; description?: string }\n name?: string\n }\n}\n\nexport interface UpdateSalesPlanReservationsRequest extends RequestBaseParams {\n params: {\n orgId: string\n clusterPlanTypesToReserved: Record<string, number>\n }\n}\n\nexport interface DeleteSalesPlanRequest extends RequestBaseParams {\n params: { uuid: string }\n}\n\nexport class SalesPlanService {\n public static async getAll(\n params: GetSalesPlansRequest,\n ): Promise<SalesPlanDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.getAll',\n url: 'api/salesplans',\n normalizedUrl: 'api/salesplans',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<SalesPlanDto[]>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'json',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async create(\n params: CreateSalesPlanRequest,\n ): Promise<SalesPlanDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.create',\n url: 'api/salesplans',\n normalizedUrl: 'api/salesplans',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<SalesPlanDto>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n name: params.params.name,\n type: params.params.type,\n version: params.params.version,\n internal: params.params.type === SalesPlanType.INTERNAL,\n clusterPlanConfigurationMap: {},\n },\n responseType: 'json',\n })\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async update(params: UpdateSalesPlanRequest): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.update',\n url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}`,\n normalizedUrl: 'api/salesplans/:salesPlanUuid',\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n clusterPlanConfigurationMap: params.params.clusterPlanConfigurationMap,\n force: params.params.force,\n name: params.params.name,\n version: params.params.version,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateMetadata(\n params: UpdateSalesPlanMetadataRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.updateMetadata',\n url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}/metadata`,\n normalizedUrl: 'api/salesplans/:salesPlanUuid/metadata',\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params.name\n ? { metadata: params.params.metadata, name: params.params.name }\n : { metadata: params.params.metadata },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateReservations(\n params: UpdateSalesPlanReservationsRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.updateReservations',\n url: `api/salesplans/reserved?orgId=${encodeURIComponent(params.params.orgId)}`,\n normalizedUrl: 'api/salesplans/reserved',\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n clusterPlanTypesToReserved: params.params.clusterPlanTypesToReserved,\n changedBy: 'admin',\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async delete(params: DeleteSalesPlanRequest): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.delete',\n url: `api/salesplans/${encodeURIComponent(params.params.uuid)}`,\n normalizedUrl: 'api/salesplans/:uuid',\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async deleteClusterPlanType(\n params: { uuid: string; force?: boolean } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `SalesPlanService.deleteClusterPlanType`,\n url: `api/salesplans/clusterPlanType/${params.uuid}`,\n normalizedUrl: `api/salesplans/clusterPlanType/:uuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n body: params.force ? { force: params.force } : undefined,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 204\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,31 @@
1
+ import type { RequestBaseParams } from '../../types/general.types.js';
2
+ export interface InvalidateTokenParams extends RequestBaseParams {
3
+ body: {
4
+ client_id: string;
5
+ client_secret: string;
6
+ audience: string;
7
+ clusterId?: string;
8
+ orgId?: string;
9
+ };
10
+ }
11
+ export interface InvalidateTokenByClientParams extends RequestBaseParams {
12
+ body: {
13
+ client_id: string;
14
+ audience: string;
15
+ clusterId?: string;
16
+ orgId?: string;
17
+ };
18
+ }
19
+ /**
20
+ * Token Issuer admin actions (god-gated), served by the public login host
21
+ * (`login` base — same URL accounts reaches via `VITE_TOKEN_ISSUER`).
22
+ */
23
+ export declare class TokenIssuerService {
24
+ private static post;
25
+ /** Invalidate a single token (requires the client secret). */
26
+ static invalidateToken(params: InvalidateTokenParams): Promise<void>;
27
+ /** Invalidate every token of a client (no secret needed). */
28
+ static invalidateTokenByClient(params: InvalidateTokenByClientParams): Promise<void>;
29
+ /** Invalidate all currently-invalid tokens (cleanup sweep). */
30
+ static invalidateInvalidTokens(params: RequestBaseParams): Promise<void>;
31
+ }
@@ -0,0 +1,63 @@
1
+ import { request } from "../../utils/api.js";
2
+ import { HttpError } from "../../utils/errors.js";
3
+ class TokenIssuerService {
4
+ static async post(name, url, params, body) {
5
+ const serviceContext = {
6
+ method: {
7
+ name,
8
+ url,
9
+ normalizedUrl: url,
10
+ type: "post"
11
+ },
12
+ source: params.config.metrics?.source || "unset",
13
+ target: { name: "login", type: "internal" }
14
+ };
15
+ const response = await request({
16
+ config: params.config,
17
+ base: { id: "login" },
18
+ url,
19
+ method: "post",
20
+ metricsDetails: serviceContext,
21
+ body,
22
+ responseType: "none"
23
+ });
24
+ if (!response.ok) {
25
+ throw new HttpError(
26
+ `${name}: ${response.status} ${response.statusText}`,
27
+ response.status,
28
+ response.statusText
29
+ );
30
+ }
31
+ }
32
+ /** Invalidate a single token (requires the client secret). */
33
+ static async invalidateToken(params) {
34
+ await TokenIssuerService.post(
35
+ "TokenIssuerService.invalidateToken",
36
+ "invalidate",
37
+ params,
38
+ params.body
39
+ );
40
+ }
41
+ /** Invalidate every token of a client (no secret needed). */
42
+ static async invalidateTokenByClient(params) {
43
+ await TokenIssuerService.post(
44
+ "TokenIssuerService.invalidateTokenByClient",
45
+ "invalidate/by-client",
46
+ params,
47
+ params.body
48
+ );
49
+ }
50
+ /** Invalidate all currently-invalid tokens (cleanup sweep). */
51
+ static async invalidateInvalidTokens(params) {
52
+ await TokenIssuerService.post(
53
+ "TokenIssuerService.invalidateInvalidTokens",
54
+ "invalidate/invalid",
55
+ params,
56
+ {}
57
+ );
58
+ }
59
+ }
60
+ export {
61
+ TokenIssuerService
62
+ };
63
+ //# sourceMappingURL=token-issuer.service.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/services/accounts/token-issuer.service.ts"],
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface InvalidateTokenParams extends RequestBaseParams {\n body: {\n client_id: string\n client_secret: string\n audience: string\n clusterId?: string\n orgId?: string\n }\n}\n\nexport interface InvalidateTokenByClientParams extends RequestBaseParams {\n body: {\n client_id: string\n audience: string\n clusterId?: string\n orgId?: string\n }\n}\n\n/**\n * Token Issuer admin actions (god-gated), served by the public login host\n * (`login` base \u2014 same URL accounts reaches via `VITE_TOKEN_ISSUER`).\n */\nexport class TokenIssuerService {\n private static async post(\n name: string,\n url: string,\n params: RequestBaseParams,\n body: object,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name,\n url,\n normalizedUrl: url,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'login', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'login' },\n url,\n method: 'post',\n metricsDetails: serviceContext,\n body,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /** Invalidate a single token (requires the client secret). */\n public static async invalidateToken(\n params: InvalidateTokenParams,\n ): Promise<void> {\n await TokenIssuerService.post(\n 'TokenIssuerService.invalidateToken',\n 'invalidate',\n params,\n params.body,\n )\n }\n\n /** Invalidate every token of a client (no secret needed). */\n public static async invalidateTokenByClient(\n params: InvalidateTokenByClientParams,\n ): Promise<void> {\n await TokenIssuerService.post(\n 'TokenIssuerService.invalidateTokenByClient',\n 'invalidate/by-client',\n params,\n params.body,\n )\n }\n\n /** Invalidate all currently-invalid tokens (cleanup sweep). */\n public static async invalidateInvalidTokens(\n params: RequestBaseParams,\n ): Promise<void> {\n await TokenIssuerService.post(\n 'TokenIssuerService.invalidateInvalidTokens',\n 'invalidate/invalid',\n params,\n {},\n )\n }\n}\n"],
5
+ "mappings": "AAUA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAyBnB,MAAM,mBAAmB;AAAA,EAC9B,aAAqB,KACnB,MACA,KACA,QACA,MACe;AACf,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ,EAAE,MAAM,SAAS,MAAM,WAAW;AAAA,IAC5C;AACA,UAAM,WAAW,MAAM,QAAQ;AAAA,MAC7B,QAAQ,OAAO;AAAA,MACf,MAAM,EAAE,IAAI,QAAQ;AAAA,MACpB;AAAA,MACA,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,GAAG,IAAI,KAAK,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,QAClD,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,aAAoB,gBAClB,QACe;AACf,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA,aAAoB,wBAClB,QACe;AACf,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA,aAAoB,wBAClB,QACe;AACf,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -55,6 +55,30 @@ export interface UpdateUserRoleRequest extends RequestBaseParams {
55
55
  'x-camunda-email'?: string;
56
56
  };
57
57
  }
58
+ export interface ChangeUserEmailRequest extends RequestBaseParams {
59
+ params: {
60
+ userId: string;
61
+ email: string;
62
+ };
63
+ }
64
+ export interface ChangeUserNameRequest extends RequestBaseParams {
65
+ params: {
66
+ userId: string;
67
+ firstname: string;
68
+ lastname: string;
69
+ };
70
+ }
71
+ export interface UserIdRequest extends RequestBaseParams {
72
+ params: {
73
+ userId: string;
74
+ };
75
+ }
76
+ export interface SetDefaultOrgRequest extends RequestBaseParams {
77
+ params: {
78
+ userId: string;
79
+ orgId: string;
80
+ };
81
+ }
58
82
  export declare class UsersService {
59
83
  static search(params: SearchParams): Promise<User[]>;
60
84
  static simpleSearch(params: SimpleSearchParams): Promise<{
@@ -63,8 +87,43 @@ export declare class UsersService {
63
87
  static getUserInfo(params: {
64
88
  userId: string;
65
89
  basic?: boolean;
90
+ roles?: boolean;
66
91
  } & RequestBaseParams): Promise<User | undefined>;
67
92
  static addUserToOrganization(params: AddUserToOrganizationRequest): Promise<void>;
93
+ static changeEmail(params: ChangeUserEmailRequest): Promise<void>;
94
+ static changeName(params: ChangeUserNameRequest): Promise<void>;
95
+ /** Admin-activate a user without an email token (POST api/admin/activate). */
96
+ static activateWithoutToken(params: UserIdRequest): Promise<void>;
97
+ /** Refresh the verification token and resend the welcome mail. */
98
+ static resendWelcomeMail(params: UserIdRequest): Promise<void>;
99
+ static deleteUser(params: UserIdRequest): Promise<void>;
100
+ /**
101
+ * Auth0 brute-force blocks for a user (`GET api/users/:userId/blocks`). The
102
+ * entries are Auth0's block records (identifier/IP), returned opaque for the
103
+ * caller to render.
104
+ */
105
+ static getBlocks(params: UserIdRequest): Promise<unknown[]>;
106
+ /** Clear a user's Auth0 blocks (`DELETE api/users/:userId/blocks`). */
107
+ static clearBlocks(params: UserIdRequest): Promise<void>;
108
+ /** Replace a user's Auth0 `app_metadata` (god-gated raw JSON edit). */
109
+ static updateAppMetadata(params: {
110
+ params: {
111
+ userId: string;
112
+ };
113
+ body: {
114
+ appMetadata: object;
115
+ };
116
+ } & RequestBaseParams): Promise<void>;
117
+ /** Replace a user's Auth0 `user_metadata` (god-gated raw JSON edit). */
118
+ static updateUserMetadata(params: {
119
+ params: {
120
+ userId: string;
121
+ };
122
+ body: {
123
+ userMetadata: object;
124
+ };
125
+ } & RequestBaseParams): Promise<void>;
126
+ static setDefaultOrg(params: SetDefaultOrgRequest): Promise<void>;
68
127
  static removeUserFromOrganization(params: RemoveUserFromOrganizationRequest): Promise<void>;
69
128
  /**
70
129
  * Update a user's role by adding or removing a single role.