@camunda/ccma-api 0.0.1

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 (199) hide show
  1. package/dist/index.d.ts +97 -0
  2. package/dist/index.js +153 -0
  3. package/dist/index.js.map +7 -0
  4. package/dist/services/accounts/accounts.data-export.service.d.ts +13 -0
  5. package/dist/services/accounts/accounts.data-export.service.js +41 -0
  6. package/dist/services/accounts/accounts.data-export.service.js.map +7 -0
  7. package/dist/services/accounts/accounts.valuemetrics.service.d.ts +8 -0
  8. package/dist/services/accounts/accounts.valuemetrics.service.js +1 -0
  9. package/dist/services/accounts/accounts.valuemetrics.service.js.map +7 -0
  10. package/dist/services/accounts/bot.service.d.ts +21 -0
  11. package/dist/services/accounts/bot.service.js +74 -0
  12. package/dist/services/accounts/bot.service.js.map +7 -0
  13. package/dist/services/accounts/challenge.service.d.ts +296 -0
  14. package/dist/services/accounts/challenge.service.js +475 -0
  15. package/dist/services/accounts/challenge.service.js.map +7 -0
  16. package/dist/services/accounts/connections.service.d.ts +27 -0
  17. package/dist/services/accounts/connections.service.js +41 -0
  18. package/dist/services/accounts/connections.service.js.map +7 -0
  19. package/dist/services/accounts/dashboards.service.d.ts +8 -0
  20. package/dist/services/accounts/dashboards.service.js +42 -0
  21. package/dist/services/accounts/dashboards.service.js.map +7 -0
  22. package/dist/services/accounts/early-access-features.service.d.ts +34 -0
  23. package/dist/services/accounts/early-access-features.service.js +67 -0
  24. package/dist/services/accounts/early-access-features.service.js.map +7 -0
  25. package/dist/services/accounts/genericCache.service.d.ts +13 -0
  26. package/dist/services/accounts/genericCache.service.js +80 -0
  27. package/dist/services/accounts/genericCache.service.js.map +7 -0
  28. package/dist/services/accounts/hdp.service.d.ts +52 -0
  29. package/dist/services/accounts/hdp.service.js +180 -0
  30. package/dist/services/accounts/hdp.service.js.map +7 -0
  31. package/dist/services/accounts/offboarding.service.d.ts +18 -0
  32. package/dist/services/accounts/offboarding.service.js +48 -0
  33. package/dist/services/accounts/offboarding.service.js.map +7 -0
  34. package/dist/services/accounts/organization-members.service.d.ts +68 -0
  35. package/dist/services/accounts/organization-members.service.js +216 -0
  36. package/dist/services/accounts/organization-members.service.js.map +7 -0
  37. package/dist/services/accounts/orgs.service.d.ts +273 -0
  38. package/dist/services/accounts/orgs.service.js +978 -0
  39. package/dist/services/accounts/orgs.service.js.map +7 -0
  40. package/dist/services/accounts/salesplan.service.d.ts +7 -0
  41. package/dist/services/accounts/salesplan.service.js +40 -0
  42. package/dist/services/accounts/salesplan.service.js.map +7 -0
  43. package/dist/services/accounts/spam-detection.service.d.ts +8 -0
  44. package/dist/services/accounts/spam-detection.service.js +72 -0
  45. package/dist/services/accounts/spam-detection.service.js.map +7 -0
  46. package/dist/services/accounts/stats.service.d.ts +7 -0
  47. package/dist/services/accounts/stats.service.js +40 -0
  48. package/dist/services/accounts/stats.service.js.map +7 -0
  49. package/dist/services/accounts/teams.service.d.ts +85 -0
  50. package/dist/services/accounts/teams.service.js +516 -0
  51. package/dist/services/accounts/teams.service.js.map +7 -0
  52. package/dist/services/accounts/usage-alerts.service.d.ts +34 -0
  53. package/dist/services/accounts/usage-alerts.service.js +112 -0
  54. package/dist/services/accounts/usage-alerts.service.js.map +7 -0
  55. package/dist/services/accounts/users.service.d.ts +101 -0
  56. package/dist/services/accounts/users.service.js +444 -0
  57. package/dist/services/accounts/users.service.js.map +7 -0
  58. package/dist/services/alerts/alerts.service.d.ts +59 -0
  59. package/dist/services/alerts/alerts.service.js +234 -0
  60. package/dist/services/alerts/alerts.service.js.map +7 -0
  61. package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +23 -0
  62. package/dist/services/analytic-bridge/analytic-bridge.service.js +86 -0
  63. package/dist/services/analytic-bridge/analytic-bridge.service.js.map +7 -0
  64. package/dist/services/audit-logger/audit-logger.service.d.ts +27 -0
  65. package/dist/services/audit-logger/audit-logger.service.js +108 -0
  66. package/dist/services/audit-logger/audit-logger.service.js.map +7 -0
  67. package/dist/services/auth0/auth0.service.d.ts +15 -0
  68. package/dist/services/auth0/auth0.service.js +40 -0
  69. package/dist/services/auth0/auth0.service.js.map +7 -0
  70. package/dist/services/comm-bridge/comm-bridge.service.d.ts +33 -0
  71. package/dist/services/comm-bridge/comm-bridge.service.js +40 -0
  72. package/dist/services/comm-bridge/comm-bridge.service.js.map +7 -0
  73. package/dist/services/console/console.admin.service.d.ts +328 -0
  74. package/dist/services/console/console.admin.service.js +1526 -0
  75. package/dist/services/console/console.admin.service.js.map +7 -0
  76. package/dist/services/console/console.alerts.service.d.ts +69 -0
  77. package/dist/services/console/console.alerts.service.js +160 -0
  78. package/dist/services/console/console.alerts.service.js.map +7 -0
  79. package/dist/services/console/console.api-clients.service.d.ts +48 -0
  80. package/dist/services/console/console.api-clients.service.js +123 -0
  81. package/dist/services/console/console.api-clients.service.js.map +7 -0
  82. package/dist/services/console/console.backup-schedule.service.d.ts +21 -0
  83. package/dist/services/console/console.backup-schedule.service.js +67 -0
  84. package/dist/services/console/console.backup-schedule.service.js.map +7 -0
  85. package/dist/services/console/console.byok-scripts.service.d.ts +12 -0
  86. package/dist/services/console/console.byok-scripts.service.js +92 -0
  87. package/dist/services/console/console.byok-scripts.service.js.map +7 -0
  88. package/dist/services/console/console.byom-monitoring.service.d.ts +58 -0
  89. package/dist/services/console/console.byom-monitoring.service.js +177 -0
  90. package/dist/services/console/console.byom-monitoring.service.js.map +7 -0
  91. package/dist/services/console/console.cluster-clients.service.d.ts +55 -0
  92. package/dist/services/console/console.cluster-clients.service.js +123 -0
  93. package/dist/services/console/console.cluster-clients.service.js.map +7 -0
  94. package/dist/services/console/console.cluster-parameters.service.d.ts +64 -0
  95. package/dist/services/console/console.cluster-parameters.service.js +39 -0
  96. package/dist/services/console/console.cluster-parameters.service.js.map +7 -0
  97. package/dist/services/console/console.cluster.service.d.ts +114 -0
  98. package/dist/services/console/console.cluster.service.js +271 -0
  99. package/dist/services/console/console.cluster.service.js.map +7 -0
  100. package/dist/services/console/console.clusterBulkOperation.service.d.ts +20 -0
  101. package/dist/services/console/console.clusterBulkOperation.service.js +199 -0
  102. package/dist/services/console/console.clusterBulkOperation.service.js.map +7 -0
  103. package/dist/services/console/console.clusterplan.modification.service.d.ts +33 -0
  104. package/dist/services/console/console.clusterplan.modification.service.js +231 -0
  105. package/dist/services/console/console.clusterplan.modification.service.js.map +7 -0
  106. package/dist/services/console/console.clusterplan.service.d.ts +21 -0
  107. package/dist/services/console/console.clusterplan.service.js +64 -0
  108. package/dist/services/console/console.clusterplan.service.js.map +7 -0
  109. package/dist/services/console/console.connector-secrets.service.d.ts +30 -0
  110. package/dist/services/console/console.connector-secrets.service.js +125 -0
  111. package/dist/services/console/console.connector-secrets.service.js.map +7 -0
  112. package/dist/services/console/console.custommetrics.service.d.ts +10 -0
  113. package/dist/services/console/console.custommetrics.service.js +43 -0
  114. package/dist/services/console/console.custommetrics.service.js.map +7 -0
  115. package/dist/services/console/console.hotbackups.service.d.ts +34 -0
  116. package/dist/services/console/console.hotbackups.service.js +120 -0
  117. package/dist/services/console/console.hotbackups.service.js.map +7 -0
  118. package/dist/services/console/console.ip-whitelist.service.d.ts +15 -0
  119. package/dist/services/console/console.ip-whitelist.service.js +36 -0
  120. package/dist/services/console/console.ip-whitelist.service.js.map +7 -0
  121. package/dist/services/console/console.jobs.saas.service.d.ts +70 -0
  122. package/dist/services/console/console.jobs.saas.service.js +139 -0
  123. package/dist/services/console/console.jobs.saas.service.js.map +7 -0
  124. package/dist/services/console/console.jobs.sm.service.d.ts +57 -0
  125. package/dist/services/console/console.jobs.sm.service.js +208 -0
  126. package/dist/services/console/console.jobs.sm.service.js.map +7 -0
  127. package/dist/services/console/console.m2m.service.d.ts +23 -0
  128. package/dist/services/console/console.m2m.service.js +94 -0
  129. package/dist/services/console/console.m2m.service.js.map +7 -0
  130. package/dist/services/console/console.secure-connectivity.service.d.ts +41 -0
  131. package/dist/services/console/console.secure-connectivity.service.js +129 -0
  132. package/dist/services/console/console.secure-connectivity.service.js.map +7 -0
  133. package/dist/services/console/console.valuemetrics.service.d.ts +17 -0
  134. package/dist/services/console/console.valuemetrics.service.js +110 -0
  135. package/dist/services/console/console.valuemetrics.service.js.map +7 -0
  136. package/dist/services/console/generation.service.d.ts +21 -0
  137. package/dist/services/console/generation.service.js +106 -0
  138. package/dist/services/console/generation.service.js.map +7 -0
  139. package/dist/services/github/github.service.d.ts +73 -0
  140. package/dist/services/github/github.service.js +272 -0
  141. package/dist/services/github/github.service.js.map +7 -0
  142. package/dist/services/hibob/hibob.service.d.ts +74 -0
  143. package/dist/services/hibob/hibob.service.js +125 -0
  144. package/dist/services/hibob/hibob.service.js.map +7 -0
  145. package/dist/services/hubspot/hubspot.service.d.ts +50 -0
  146. package/dist/services/hubspot/hubspot.service.js +119 -0
  147. package/dist/services/hubspot/hubspot.service.js.map +7 -0
  148. package/dist/services/litellm/litellm.service.d.ts +290 -0
  149. package/dist/services/litellm/litellm.service.js +392 -0
  150. package/dist/services/litellm/litellm.service.js.map +7 -0
  151. package/dist/services/login/login.service.d.ts +15 -0
  152. package/dist/services/login/login.service.js +66 -0
  153. package/dist/services/login/login.service.js.map +7 -0
  154. package/dist/services/mixpanel/mixpanel.service.d.ts +16 -0
  155. package/dist/services/mixpanel/mixpanel.service.js +86 -0
  156. package/dist/services/mixpanel/mixpanel.service.js.map +7 -0
  157. package/dist/services/notifications/notifications.service.d.ts +7 -0
  158. package/dist/services/notifications/notifications.service.js +38 -0
  159. package/dist/services/notifications/notifications.service.js.map +7 -0
  160. package/dist/services/slack/slack-blockkit.service.d.ts +28 -0
  161. package/dist/services/slack/slack-blockkit.service.js +45 -0
  162. package/dist/services/slack/slack-blockkit.service.js.map +7 -0
  163. package/dist/services/slack/slack.service.d.ts +31 -0
  164. package/dist/services/slack/slack.service.js +118 -0
  165. package/dist/services/slack/slack.service.js.map +7 -0
  166. package/dist/services/telemetry/telemetry.service.d.ts +16 -0
  167. package/dist/services/telemetry/telemetry.service.js +85 -0
  168. package/dist/services/telemetry/telemetry.service.js.map +7 -0
  169. package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +13 -0
  170. package/dist/services/token-issuer/token-issuer.jwks.service.js +76 -0
  171. package/dist/services/token-issuer/token-issuer.jwks.service.js.map +7 -0
  172. package/dist/services/wordpress/wordpress.service.d.ts +15 -0
  173. package/dist/services/wordpress/wordpress.service.js +111 -0
  174. package/dist/services/wordpress/wordpress.service.js.map +7 -0
  175. package/dist/types/general.types.d.ts +61 -0
  176. package/dist/types/general.types.js +1 -0
  177. package/dist/types/general.types.js.map +7 -0
  178. package/dist/utils/api.d.ts +31 -0
  179. package/dist/utils/api.js +400 -0
  180. package/dist/utils/api.js.map +7 -0
  181. package/dist/utils/cache.d.ts +7 -0
  182. package/dist/utils/cache.js +25 -0
  183. package/dist/utils/cache.js.map +7 -0
  184. package/dist/utils/ccma-metrics.d.ts +18 -0
  185. package/dist/utils/ccma-metrics.js +37 -0
  186. package/dist/utils/ccma-metrics.js.map +7 -0
  187. package/dist/utils/environments.d.ts +11 -0
  188. package/dist/utils/environments.js +148 -0
  189. package/dist/utils/environments.js.map +7 -0
  190. package/dist/utils/errors.d.ts +5 -0
  191. package/dist/utils/errors.js +11 -0
  192. package/dist/utils/errors.js.map +7 -0
  193. package/dist/utils/frontendCache.d.ts +26 -0
  194. package/dist/utils/frontendCache.js +121 -0
  195. package/dist/utils/frontendCache.js.map +7 -0
  196. package/dist/utils/token-issuer.utils.d.ts +8 -0
  197. package/dist/utils/token-issuer.utils.js +19 -0
  198. package/dist/utils/token-issuer.utils.js.map +7 -0
  199. package/package.json +57 -0
@@ -0,0 +1,74 @@
1
+ import type { RequestBaseParams } from '../../types/general.types.js';
2
+ export interface HibobSearchRequest extends RequestBaseParams {
3
+ options: {
4
+ hibobApiUrl: string;
5
+ username: string;
6
+ password: string;
7
+ email: string;
8
+ };
9
+ }
10
+ export interface HibobGetAllUsersRequest extends RequestBaseParams {
11
+ options: {
12
+ hibobApiUrl: string;
13
+ username: string;
14
+ password: string;
15
+ };
16
+ }
17
+ export interface HibobReportsTo {
18
+ id: string;
19
+ firstName: string;
20
+ surname: string;
21
+ email: string;
22
+ displayName: string;
23
+ }
24
+ export declare const DIVISION_ID = "column_1629151319875";
25
+ export declare const SUB_DIVISION_ID = "column_1642024758438";
26
+ export declare const DEPARTMENT = "/work/department";
27
+ export declare const DIVISION = "/work/customColumns/column_1629151319875";
28
+ export declare const SUB_DIVISION = "/work/customColumns/column_1642024758438";
29
+ export interface HibobEmployee {
30
+ id: string;
31
+ email: string;
32
+ work?: {
33
+ reportsTo?: HibobReportsTo;
34
+ };
35
+ /**
36
+ * Hibob API returns field paths as property names in the response.
37
+ * These are alternative representations of the employee data.
38
+ */
39
+ '/root/email'?: {
40
+ value: string;
41
+ };
42
+ '/work/reportsTo'?: {
43
+ value: HibobReportsTo;
44
+ };
45
+ [DIVISION]?: {
46
+ value: string;
47
+ };
48
+ [SUB_DIVISION]?: {
49
+ value: string;
50
+ };
51
+ [DEPARTMENT]?: {
52
+ value: string;
53
+ };
54
+ humanReadable?: {
55
+ work: {
56
+ department?: string;
57
+ customColumns?: {
58
+ [DIVISION_ID]?: string;
59
+ [SUB_DIVISION_ID]?: string;
60
+ };
61
+ };
62
+ };
63
+ }
64
+ export interface HibobSearchResponse {
65
+ employees: HibobEmployee[];
66
+ }
67
+ export declare class HibobService {
68
+ /**
69
+ * Creates a Basic auth token from username and password.
70
+ */
71
+ private static createBasicToken;
72
+ static getUserByEmail(params: HibobSearchRequest): Promise<HibobSearchResponse>;
73
+ static getAllUsers(params: HibobGetAllUsersRequest): Promise<HibobSearchResponse>;
74
+ }
@@ -0,0 +1,125 @@
1
+ import { request } from "../../utils/api.js";
2
+ import { HttpError } from "../../utils/errors.js";
3
+ const DIVISION_ID = "column_1629151319875";
4
+ const SUB_DIVISION_ID = "column_1642024758438";
5
+ const DEPARTMENT = "/work/department";
6
+ const DIVISION = `/work/customColumns/${DIVISION_ID}`;
7
+ const SUB_DIVISION = `/work/customColumns/${SUB_DIVISION_ID}`;
8
+ const HIBOB_SEARCH_FIELDS = [
9
+ "root.email",
10
+ "work.reportsTo",
11
+ "work.department",
12
+ "work.customColumns.column_1629151319875",
13
+ "work.customColumns.column_1642024758438"
14
+ ];
15
+ class HibobService {
16
+ /**
17
+ * Creates a Basic auth token from username and password.
18
+ */
19
+ static createBasicToken(username, password) {
20
+ return Buffer.from(`${username}:${password}`).toString("base64");
21
+ }
22
+ static async getUserByEmail(params) {
23
+ const url = `${params.options.hibobApiUrl}v1/people/search`;
24
+ const serviceContext = {
25
+ method: {
26
+ name: "HibobService.getUserByEmail",
27
+ url,
28
+ normalizedUrl: `${params.options.hibobApiUrl}v1/people/search`,
29
+ type: "post"
30
+ },
31
+ source: params.config.metrics?.source || "unset",
32
+ target: {
33
+ name: "hibob",
34
+ type: "external"
35
+ }
36
+ };
37
+ const basicToken = HibobService.createBasicToken(
38
+ params.options.username,
39
+ params.options.password
40
+ );
41
+ const body = {
42
+ fields: HIBOB_SEARCH_FIELDS,
43
+ filters: [
44
+ {
45
+ values: [params.options.email],
46
+ fieldPath: "root.email",
47
+ operator: "equals"
48
+ }
49
+ ],
50
+ showInactive: false
51
+ };
52
+ const response = await request({
53
+ config: params.config,
54
+ url,
55
+ method: serviceContext.method.type,
56
+ metricsDetails: serviceContext,
57
+ type: "json",
58
+ headers: {
59
+ Authorization: `Basic ${basicToken}`
60
+ },
61
+ body
62
+ });
63
+ if (!response.ok) {
64
+ throw new HttpError(
65
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
66
+ response.status,
67
+ response.statusText
68
+ );
69
+ }
70
+ return response.body;
71
+ }
72
+ static async getAllUsers(params) {
73
+ const url = `${params.options.hibobApiUrl}v1/people/search`;
74
+ const serviceContext = {
75
+ method: {
76
+ name: "HibobService.getAllUsers",
77
+ url,
78
+ normalizedUrl: `${params.options.hibobApiUrl}v1/people/search`,
79
+ type: "post"
80
+ },
81
+ source: params.config.metrics?.source || "unset",
82
+ target: {
83
+ name: "hibob",
84
+ type: "external"
85
+ }
86
+ };
87
+ const basicToken = HibobService.createBasicToken(
88
+ params.options.username,
89
+ params.options.password
90
+ );
91
+ const body = {
92
+ fields: HIBOB_SEARCH_FIELDS,
93
+ showInactive: false,
94
+ humanReadable: "APPEND"
95
+ };
96
+ const response = await request({
97
+ config: params.config,
98
+ url,
99
+ method: serviceContext.method.type,
100
+ metricsDetails: serviceContext,
101
+ type: "json",
102
+ headers: {
103
+ Authorization: `Basic ${basicToken}`
104
+ },
105
+ body
106
+ });
107
+ if (!response.ok) {
108
+ throw new HttpError(
109
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
110
+ response.status,
111
+ response.statusText
112
+ );
113
+ }
114
+ return response.body;
115
+ }
116
+ }
117
+ export {
118
+ DEPARTMENT,
119
+ DIVISION,
120
+ DIVISION_ID,
121
+ HibobService,
122
+ SUB_DIVISION,
123
+ SUB_DIVISION_ID
124
+ };
125
+ //# sourceMappingURL=hibob.service.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/services/hibob/hibob.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 HibobSearchRequest extends RequestBaseParams {\n options: {\n hibobApiUrl: string\n username: string\n password: string\n email: string\n }\n}\n\nexport interface HibobGetAllUsersRequest extends RequestBaseParams {\n options: {\n hibobApiUrl: string\n username: string\n password: string\n }\n}\n\nexport interface HibobReportsTo {\n id: string\n firstName: string\n surname: string\n email: string\n displayName: string\n}\n\nexport const DIVISION_ID = 'column_1629151319875'\nexport const SUB_DIVISION_ID = 'column_1642024758438'\n\nexport const DEPARTMENT = '/work/department'\nexport const DIVISION = `/work/customColumns/${DIVISION_ID}`\nexport const SUB_DIVISION = `/work/customColumns/${SUB_DIVISION_ID}`\n\nexport interface HibobEmployee {\n id: string\n email: string\n work?: {\n reportsTo?: HibobReportsTo\n }\n /**\n * Hibob API returns field paths as property names in the response.\n * These are alternative representations of the employee data.\n */\n '/root/email'?: {\n value: string\n }\n '/work/reportsTo'?: {\n value: HibobReportsTo\n }\n [DIVISION]?: {\n value: string\n }\n [SUB_DIVISION]?: {\n value: string\n }\n [DEPARTMENT]?: {\n value: string\n }\n humanReadable?: {\n work: {\n department?: string\n customColumns?: {\n [DIVISION_ID]?: string\n [SUB_DIVISION_ID]?: string\n }\n }\n }\n}\n\nexport interface HibobSearchResponse {\n employees: HibobEmployee[]\n}\n\n// Common fields configuration for Hibob API requests\nconst HIBOB_SEARCH_FIELDS = [\n 'root.email',\n 'work.reportsTo',\n 'work.department',\n 'work.customColumns.column_1629151319875',\n 'work.customColumns.column_1642024758438',\n]\n\nexport class HibobService {\n /**\n * Creates a Basic auth token from username and password.\n */\n private static createBasicToken(username: string, password: string): string {\n return Buffer.from(`${username}:${password}`).toString('base64')\n }\n\n public static async getUserByEmail(\n params: HibobSearchRequest,\n ): Promise<HibobSearchResponse> {\n const url = `${params.options.hibobApiUrl}v1/people/search`\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'HibobService.getUserByEmail',\n url,\n normalizedUrl: `${params.options.hibobApiUrl}v1/people/search`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'hibob',\n type: 'external',\n },\n }\n\n const basicToken = HibobService.createBasicToken(\n params.options.username,\n params.options.password,\n )\n\n const body = {\n fields: HIBOB_SEARCH_FIELDS,\n filters: [\n {\n values: [params.options.email],\n fieldPath: 'root.email',\n operator: 'equals',\n },\n ],\n showInactive: false,\n }\n\n const response = await request<HibobSearchResponse>({\n config: params.config,\n url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Authorization: `Basic ${basicToken}`,\n },\n body,\n })\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 return response.body!\n }\n\n public static async getAllUsers(\n params: HibobGetAllUsersRequest,\n ): Promise<HibobSearchResponse> {\n const url = `${params.options.hibobApiUrl}v1/people/search`\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'HibobService.getAllUsers',\n url,\n normalizedUrl: `${params.options.hibobApiUrl}v1/people/search`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'hibob',\n type: 'external',\n },\n }\n\n const basicToken = HibobService.createBasicToken(\n params.options.username,\n params.options.password,\n )\n\n const body = {\n fields: HIBOB_SEARCH_FIELDS,\n showInactive: false,\n humanReadable: 'APPEND',\n }\n\n const response = await request<HibobSearchResponse>({\n config: params.config,\n url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Authorization: `Basic ${basicToken}`,\n },\n body,\n })\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 return response.body!\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,50 @@
1
+ import type { RequestBaseParams } from '../../types/general.types.js';
2
+ export interface HubspotTokenRequest extends RequestBaseParams {
3
+ options: {
4
+ clientId: string;
5
+ clientSecret: string;
6
+ refreshToken: string;
7
+ hubspotApiBaseUrl: string;
8
+ };
9
+ }
10
+ export interface HubspotSubmission {
11
+ submittedAt: string;
12
+ fields: Array<{
13
+ name: string;
14
+ value?: string;
15
+ }>;
16
+ context?: {
17
+ hutk?: string;
18
+ pageUri?: string;
19
+ pageName?: string;
20
+ ipAddress?: string;
21
+ };
22
+ legalConsentOptions?: any;
23
+ }
24
+ export interface HubspotSubmitRequest extends RequestBaseParams {
25
+ options: {
26
+ token: string;
27
+ submission: HubspotSubmission;
28
+ portalId?: number;
29
+ formId: string;
30
+ };
31
+ }
32
+ export interface HubspotChangeContactPropertiesRequest extends RequestBaseParams {
33
+ options: {
34
+ token: string;
35
+ email: string;
36
+ properties: Array<{
37
+ property: string;
38
+ value: string | boolean;
39
+ }>;
40
+ };
41
+ }
42
+ export interface HubspotTokenResponse {
43
+ access_token: string;
44
+ expires_in: number;
45
+ }
46
+ export declare class HubspotService {
47
+ static getAccessToken(params: HubspotTokenRequest): Promise<HubspotTokenResponse>;
48
+ static submit(params: HubspotSubmitRequest): Promise<void>;
49
+ static changeContactProperties(params: HubspotChangeContactPropertiesRequest): Promise<void>;
50
+ }
@@ -0,0 +1,119 @@
1
+ import { request } from "../../utils/api.js";
2
+ import { HttpError } from "../../utils/errors.js";
3
+ class HubspotService {
4
+ static async getAccessToken(params) {
5
+ const serviceContext = {
6
+ method: {
7
+ name: `HubspotService.getAccessToken`,
8
+ url: `${params.options.hubspotApiBaseUrl}/oauth/v1/token`,
9
+ normalizedUrl: `${params.options.hubspotApiBaseUrl}/oauth/v1/token`,
10
+ type: "post"
11
+ },
12
+ source: params.config.metrics?.source || "unset",
13
+ target: {
14
+ name: "hubspot",
15
+ type: "external"
16
+ }
17
+ };
18
+ const body = {
19
+ grant_type: "refresh_token",
20
+ client_id: params.options.clientId,
21
+ client_secret: params.options.clientSecret,
22
+ refresh_token: params.options.refreshToken
23
+ };
24
+ const response = await request({
25
+ config: params.config,
26
+ url: serviceContext.method.url,
27
+ method: serviceContext.method.type,
28
+ metricsDetails: serviceContext,
29
+ type: "form",
30
+ responseType: "json",
31
+ body
32
+ });
33
+ if (!response.ok) {
34
+ throw new HttpError(
35
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
36
+ response.status,
37
+ response.statusText
38
+ );
39
+ }
40
+ return response.body;
41
+ }
42
+ static async submit(params) {
43
+ const serviceContext = {
44
+ method: {
45
+ name: `HubspotService.submit`,
46
+ url: `https://api.hsforms.com/submissions/v3/integration/submit/${params.options.portalId}/${params.options.formId}`,
47
+ normalizedUrl: `https://api.hsforms.com/submissions/v3/integration/submit/:portalId/:formId`,
48
+ type: "post"
49
+ },
50
+ source: params.config.metrics?.source || "unset",
51
+ target: {
52
+ name: "hubspot",
53
+ type: "external"
54
+ }
55
+ };
56
+ const submission = params.options.submission;
57
+ submission.fields.forEach((field) => {
58
+ if (field.value === "null") {
59
+ field.value = "unset";
60
+ }
61
+ });
62
+ const response = await request({
63
+ config: params.config,
64
+ url: serviceContext.method.url,
65
+ method: serviceContext.method.type,
66
+ metricsDetails: serviceContext,
67
+ type: "json",
68
+ headers: {
69
+ Authorization: `Bearer ${params.options.token}`
70
+ },
71
+ body: submission
72
+ });
73
+ if (!response.ok) {
74
+ throw new HttpError(
75
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
76
+ response.status,
77
+ response.statusText
78
+ );
79
+ }
80
+ }
81
+ static async changeContactProperties(params) {
82
+ const serviceContext = {
83
+ method: {
84
+ name: `HubspotService.changeContactProperties`,
85
+ url: `https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/${params.options.email}`,
86
+ normalizedUrl: `https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/:email`,
87
+ type: "post"
88
+ },
89
+ source: params.config.metrics?.source || "unset",
90
+ target: {
91
+ name: "hubspot",
92
+ type: "external"
93
+ }
94
+ };
95
+ const response = await request({
96
+ config: params.config,
97
+ url: serviceContext.method.url,
98
+ method: serviceContext.method.type,
99
+ metricsDetails: serviceContext,
100
+ type: "json",
101
+ headers: {
102
+ Authorization: `Bearer ${params.options.token}`
103
+ },
104
+ responseType: "none",
105
+ body: { properties: params.options.properties }
106
+ });
107
+ if (!response.ok) {
108
+ throw new HttpError(
109
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
110
+ response.status,
111
+ response.statusText
112
+ );
113
+ }
114
+ }
115
+ }
116
+ export {
117
+ HubspotService
118
+ };
119
+ //# sourceMappingURL=hubspot.service.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/services/hubspot/hubspot.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 HubspotTokenRequest extends RequestBaseParams {\n options: {\n clientId: string\n clientSecret: string\n refreshToken: string\n hubspotApiBaseUrl: string\n }\n}\n\nexport interface HubspotSubmission {\n submittedAt: string\n fields: Array<{\n name: string\n value?: string\n }>\n context?: {\n hutk?: string\n pageUri?: string\n pageName?: string\n ipAddress?: string\n }\n legalConsentOptions?: any\n}\n\nexport interface HubspotSubmitRequest extends RequestBaseParams {\n options: {\n token: string\n submission: HubspotSubmission\n portalId?: number\n formId: string\n }\n}\n\nexport interface HubspotChangeContactPropertiesRequest\n extends RequestBaseParams {\n options: {\n token: string\n email: string\n properties: Array<{ property: string; value: string | boolean }>\n }\n}\n\nexport interface HubspotTokenResponse {\n access_token: string\n expires_in: number\n}\n\nexport class HubspotService {\n public static async getAccessToken(\n params: HubspotTokenRequest,\n ): Promise<HubspotTokenResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HubspotService.getAccessToken`,\n url: `${params.options.hubspotApiBaseUrl}/oauth/v1/token`,\n normalizedUrl: `${params.options.hubspotApiBaseUrl}/oauth/v1/token`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'hubspot',\n type: 'external',\n },\n }\n\n const body = {\n grant_type: 'refresh_token',\n client_id: params.options.clientId,\n client_secret: params.options.clientSecret,\n refresh_token: params.options.refreshToken,\n }\n\n const response = await request<HubspotTokenResponse>({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'form',\n responseType: 'json',\n body,\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 submit(params: HubspotSubmitRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HubspotService.submit`,\n url: `https://api.hsforms.com/submissions/v3/integration/submit/${params.options.portalId}/${params.options.formId}`,\n normalizedUrl: `https://api.hsforms.com/submissions/v3/integration/submit/:portalId/:formId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'hubspot',\n type: 'external',\n },\n }\n\n const submission = params.options.submission\n submission.fields.forEach((field) => {\n if (field.value === 'null') {\n field.value = 'unset'\n }\n })\n\n const response = await request({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Authorization: `Bearer ${params.options.token}`,\n },\n body: submission,\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 changeContactProperties(\n params: HubspotChangeContactPropertiesRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HubspotService.changeContactProperties`,\n url: `https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/${params.options.email}`,\n normalizedUrl: `https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/:email`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'hubspot',\n type: 'external',\n },\n }\n\n const response = await request({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Authorization: `Bearer ${params.options.token}`,\n },\n responseType: 'none',\n body: { properties: params.options.properties },\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"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }