@camunda/ccma-api 0.0.1 → 0.0.2
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.
- package/package.json +10 -10
- package/dist/index.d.ts +0 -97
- package/dist/index.js +0 -153
- package/dist/index.js.map +0 -7
- package/dist/services/accounts/accounts.data-export.service.d.ts +0 -13
- package/dist/services/accounts/accounts.data-export.service.js +0 -41
- package/dist/services/accounts/accounts.data-export.service.js.map +0 -7
- package/dist/services/accounts/accounts.valuemetrics.service.d.ts +0 -8
- package/dist/services/accounts/accounts.valuemetrics.service.js +0 -1
- package/dist/services/accounts/accounts.valuemetrics.service.js.map +0 -7
- package/dist/services/accounts/bot.service.d.ts +0 -21
- package/dist/services/accounts/bot.service.js +0 -74
- package/dist/services/accounts/bot.service.js.map +0 -7
- package/dist/services/accounts/challenge.service.d.ts +0 -296
- package/dist/services/accounts/challenge.service.js +0 -475
- package/dist/services/accounts/challenge.service.js.map +0 -7
- package/dist/services/accounts/connections.service.d.ts +0 -27
- package/dist/services/accounts/connections.service.js +0 -41
- package/dist/services/accounts/connections.service.js.map +0 -7
- package/dist/services/accounts/dashboards.service.d.ts +0 -8
- package/dist/services/accounts/dashboards.service.js +0 -42
- package/dist/services/accounts/dashboards.service.js.map +0 -7
- package/dist/services/accounts/early-access-features.service.d.ts +0 -34
- package/dist/services/accounts/early-access-features.service.js +0 -67
- package/dist/services/accounts/early-access-features.service.js.map +0 -7
- package/dist/services/accounts/genericCache.service.d.ts +0 -13
- package/dist/services/accounts/genericCache.service.js +0 -80
- package/dist/services/accounts/genericCache.service.js.map +0 -7
- package/dist/services/accounts/hdp.service.d.ts +0 -52
- package/dist/services/accounts/hdp.service.js +0 -180
- package/dist/services/accounts/hdp.service.js.map +0 -7
- package/dist/services/accounts/offboarding.service.d.ts +0 -18
- package/dist/services/accounts/offboarding.service.js +0 -48
- package/dist/services/accounts/offboarding.service.js.map +0 -7
- package/dist/services/accounts/organization-members.service.d.ts +0 -68
- package/dist/services/accounts/organization-members.service.js +0 -216
- package/dist/services/accounts/organization-members.service.js.map +0 -7
- package/dist/services/accounts/orgs.service.d.ts +0 -273
- package/dist/services/accounts/orgs.service.js +0 -978
- package/dist/services/accounts/orgs.service.js.map +0 -7
- package/dist/services/accounts/salesplan.service.d.ts +0 -7
- package/dist/services/accounts/salesplan.service.js +0 -40
- package/dist/services/accounts/salesplan.service.js.map +0 -7
- package/dist/services/accounts/spam-detection.service.d.ts +0 -8
- package/dist/services/accounts/spam-detection.service.js +0 -72
- package/dist/services/accounts/spam-detection.service.js.map +0 -7
- package/dist/services/accounts/stats.service.d.ts +0 -7
- package/dist/services/accounts/stats.service.js +0 -40
- package/dist/services/accounts/stats.service.js.map +0 -7
- package/dist/services/accounts/teams.service.d.ts +0 -85
- package/dist/services/accounts/teams.service.js +0 -516
- package/dist/services/accounts/teams.service.js.map +0 -7
- package/dist/services/accounts/usage-alerts.service.d.ts +0 -34
- package/dist/services/accounts/usage-alerts.service.js +0 -112
- package/dist/services/accounts/usage-alerts.service.js.map +0 -7
- package/dist/services/accounts/users.service.d.ts +0 -101
- package/dist/services/accounts/users.service.js +0 -444
- package/dist/services/accounts/users.service.js.map +0 -7
- package/dist/services/alerts/alerts.service.d.ts +0 -59
- package/dist/services/alerts/alerts.service.js +0 -234
- package/dist/services/alerts/alerts.service.js.map +0 -7
- package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +0 -23
- package/dist/services/analytic-bridge/analytic-bridge.service.js +0 -86
- package/dist/services/analytic-bridge/analytic-bridge.service.js.map +0 -7
- package/dist/services/audit-logger/audit-logger.service.d.ts +0 -27
- package/dist/services/audit-logger/audit-logger.service.js +0 -108
- package/dist/services/audit-logger/audit-logger.service.js.map +0 -7
- package/dist/services/auth0/auth0.service.d.ts +0 -15
- package/dist/services/auth0/auth0.service.js +0 -40
- package/dist/services/auth0/auth0.service.js.map +0 -7
- package/dist/services/comm-bridge/comm-bridge.service.d.ts +0 -33
- package/dist/services/comm-bridge/comm-bridge.service.js +0 -40
- package/dist/services/comm-bridge/comm-bridge.service.js.map +0 -7
- package/dist/services/console/console.admin.service.d.ts +0 -328
- package/dist/services/console/console.admin.service.js +0 -1526
- package/dist/services/console/console.admin.service.js.map +0 -7
- package/dist/services/console/console.alerts.service.d.ts +0 -69
- package/dist/services/console/console.alerts.service.js +0 -160
- package/dist/services/console/console.alerts.service.js.map +0 -7
- package/dist/services/console/console.api-clients.service.d.ts +0 -48
- package/dist/services/console/console.api-clients.service.js +0 -123
- package/dist/services/console/console.api-clients.service.js.map +0 -7
- package/dist/services/console/console.backup-schedule.service.d.ts +0 -21
- package/dist/services/console/console.backup-schedule.service.js +0 -67
- package/dist/services/console/console.backup-schedule.service.js.map +0 -7
- package/dist/services/console/console.byok-scripts.service.d.ts +0 -12
- package/dist/services/console/console.byok-scripts.service.js +0 -92
- package/dist/services/console/console.byok-scripts.service.js.map +0 -7
- package/dist/services/console/console.byom-monitoring.service.d.ts +0 -58
- package/dist/services/console/console.byom-monitoring.service.js +0 -177
- package/dist/services/console/console.byom-monitoring.service.js.map +0 -7
- package/dist/services/console/console.cluster-clients.service.d.ts +0 -55
- package/dist/services/console/console.cluster-clients.service.js +0 -123
- package/dist/services/console/console.cluster-clients.service.js.map +0 -7
- package/dist/services/console/console.cluster-parameters.service.d.ts +0 -64
- package/dist/services/console/console.cluster-parameters.service.js +0 -39
- package/dist/services/console/console.cluster-parameters.service.js.map +0 -7
- package/dist/services/console/console.cluster.service.d.ts +0 -114
- package/dist/services/console/console.cluster.service.js +0 -271
- package/dist/services/console/console.cluster.service.js.map +0 -7
- package/dist/services/console/console.clusterBulkOperation.service.d.ts +0 -20
- package/dist/services/console/console.clusterBulkOperation.service.js +0 -199
- package/dist/services/console/console.clusterBulkOperation.service.js.map +0 -7
- package/dist/services/console/console.clusterplan.modification.service.d.ts +0 -33
- package/dist/services/console/console.clusterplan.modification.service.js +0 -231
- package/dist/services/console/console.clusterplan.modification.service.js.map +0 -7
- package/dist/services/console/console.clusterplan.service.d.ts +0 -21
- package/dist/services/console/console.clusterplan.service.js +0 -64
- package/dist/services/console/console.clusterplan.service.js.map +0 -7
- package/dist/services/console/console.connector-secrets.service.d.ts +0 -30
- package/dist/services/console/console.connector-secrets.service.js +0 -125
- package/dist/services/console/console.connector-secrets.service.js.map +0 -7
- package/dist/services/console/console.custommetrics.service.d.ts +0 -10
- package/dist/services/console/console.custommetrics.service.js +0 -43
- package/dist/services/console/console.custommetrics.service.js.map +0 -7
- package/dist/services/console/console.hotbackups.service.d.ts +0 -34
- package/dist/services/console/console.hotbackups.service.js +0 -120
- package/dist/services/console/console.hotbackups.service.js.map +0 -7
- package/dist/services/console/console.ip-whitelist.service.d.ts +0 -15
- package/dist/services/console/console.ip-whitelist.service.js +0 -36
- package/dist/services/console/console.ip-whitelist.service.js.map +0 -7
- package/dist/services/console/console.jobs.saas.service.d.ts +0 -70
- package/dist/services/console/console.jobs.saas.service.js +0 -139
- package/dist/services/console/console.jobs.saas.service.js.map +0 -7
- package/dist/services/console/console.jobs.sm.service.d.ts +0 -57
- package/dist/services/console/console.jobs.sm.service.js +0 -208
- package/dist/services/console/console.jobs.sm.service.js.map +0 -7
- package/dist/services/console/console.m2m.service.d.ts +0 -23
- package/dist/services/console/console.m2m.service.js +0 -94
- package/dist/services/console/console.m2m.service.js.map +0 -7
- package/dist/services/console/console.secure-connectivity.service.d.ts +0 -41
- package/dist/services/console/console.secure-connectivity.service.js +0 -129
- package/dist/services/console/console.secure-connectivity.service.js.map +0 -7
- package/dist/services/console/console.valuemetrics.service.d.ts +0 -17
- package/dist/services/console/console.valuemetrics.service.js +0 -110
- package/dist/services/console/console.valuemetrics.service.js.map +0 -7
- package/dist/services/console/generation.service.d.ts +0 -21
- package/dist/services/console/generation.service.js +0 -106
- package/dist/services/console/generation.service.js.map +0 -7
- package/dist/services/github/github.service.d.ts +0 -73
- package/dist/services/github/github.service.js +0 -272
- package/dist/services/github/github.service.js.map +0 -7
- package/dist/services/hibob/hibob.service.d.ts +0 -74
- package/dist/services/hibob/hibob.service.js +0 -125
- package/dist/services/hibob/hibob.service.js.map +0 -7
- package/dist/services/hubspot/hubspot.service.d.ts +0 -50
- package/dist/services/hubspot/hubspot.service.js +0 -119
- package/dist/services/hubspot/hubspot.service.js.map +0 -7
- package/dist/services/litellm/litellm.service.d.ts +0 -290
- package/dist/services/litellm/litellm.service.js +0 -392
- package/dist/services/litellm/litellm.service.js.map +0 -7
- package/dist/services/login/login.service.d.ts +0 -15
- package/dist/services/login/login.service.js +0 -66
- package/dist/services/login/login.service.js.map +0 -7
- package/dist/services/mixpanel/mixpanel.service.d.ts +0 -16
- package/dist/services/mixpanel/mixpanel.service.js +0 -86
- package/dist/services/mixpanel/mixpanel.service.js.map +0 -7
- package/dist/services/notifications/notifications.service.d.ts +0 -7
- package/dist/services/notifications/notifications.service.js +0 -38
- package/dist/services/notifications/notifications.service.js.map +0 -7
- package/dist/services/slack/slack-blockkit.service.d.ts +0 -28
- package/dist/services/slack/slack-blockkit.service.js +0 -45
- package/dist/services/slack/slack-blockkit.service.js.map +0 -7
- package/dist/services/slack/slack.service.d.ts +0 -31
- package/dist/services/slack/slack.service.js +0 -118
- package/dist/services/slack/slack.service.js.map +0 -7
- package/dist/services/telemetry/telemetry.service.d.ts +0 -16
- package/dist/services/telemetry/telemetry.service.js +0 -85
- package/dist/services/telemetry/telemetry.service.js.map +0 -7
- package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +0 -13
- package/dist/services/token-issuer/token-issuer.jwks.service.js +0 -76
- package/dist/services/token-issuer/token-issuer.jwks.service.js.map +0 -7
- package/dist/services/wordpress/wordpress.service.d.ts +0 -15
- package/dist/services/wordpress/wordpress.service.js +0 -111
- package/dist/services/wordpress/wordpress.service.js.map +0 -7
- package/dist/types/general.types.d.ts +0 -61
- package/dist/types/general.types.js +0 -1
- package/dist/types/general.types.js.map +0 -7
- package/dist/utils/api.d.ts +0 -31
- package/dist/utils/api.js +0 -400
- package/dist/utils/api.js.map +0 -7
- package/dist/utils/cache.d.ts +0 -7
- package/dist/utils/cache.js +0 -25
- package/dist/utils/cache.js.map +0 -7
- package/dist/utils/ccma-metrics.d.ts +0 -18
- package/dist/utils/ccma-metrics.js +0 -37
- package/dist/utils/ccma-metrics.js.map +0 -7
- package/dist/utils/environments.d.ts +0 -11
- package/dist/utils/environments.js +0 -148
- package/dist/utils/environments.js.map +0 -7
- package/dist/utils/errors.d.ts +0 -5
- package/dist/utils/errors.js +0 -11
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/frontendCache.d.ts +0 -26
- package/dist/utils/frontendCache.js +0 -121
- package/dist/utils/frontendCache.js.map +0 -7
- package/dist/utils/token-issuer.utils.d.ts +0 -8
- package/dist/utils/token-issuer.utils.js +0 -19
- package/dist/utils/token-issuer.utils.js.map +0 -7
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { request } from "../../utils/api.js";
|
|
2
|
-
import { HttpError } from "../../utils/errors.js";
|
|
3
|
-
class ConsoleValueMetricsService {
|
|
4
|
-
static async getValueMetrics(params) {
|
|
5
|
-
const serviceContext = {
|
|
6
|
-
method: {
|
|
7
|
-
name: `ConsoleValueMetricsService.getValueMetrics`,
|
|
8
|
-
url: `api/orgs/${params.params.orgId}/clusters/usage/value-metrics`,
|
|
9
|
-
normalizedUrl: `api/orgs/:orgId/clusters/usage/value-metrics`,
|
|
10
|
-
type: "get"
|
|
11
|
-
},
|
|
12
|
-
source: params.config.metrics?.source || "unset",
|
|
13
|
-
target: {
|
|
14
|
-
name: "console",
|
|
15
|
-
type: "internal"
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const response = await request({
|
|
19
|
-
...params,
|
|
20
|
-
base: {
|
|
21
|
-
id: "console"
|
|
22
|
-
},
|
|
23
|
-
url: serviceContext.method.url,
|
|
24
|
-
method: serviceContext.method.type,
|
|
25
|
-
metricsDetails: serviceContext
|
|
26
|
-
});
|
|
27
|
-
if (!response.ok) {
|
|
28
|
-
throw new HttpError(
|
|
29
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
30
|
-
response.status,
|
|
31
|
-
response.statusText
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
return response.body;
|
|
35
|
-
}
|
|
36
|
-
static async getValueMetricsPerDays(params) {
|
|
37
|
-
const serviceContext = {
|
|
38
|
-
method: {
|
|
39
|
-
name: `ConsoleValueMetricsService.getValueMetricsPerDays`,
|
|
40
|
-
url: `api/orgs/${params.params.orgId}/clusters/usage/value-metrics/${params.params.days}`,
|
|
41
|
-
normalizedUrl: `api/orgs/:orgId/clusters/usage/value-metrics/:days`,
|
|
42
|
-
type: "get"
|
|
43
|
-
},
|
|
44
|
-
source: params.config.metrics?.source || "unset",
|
|
45
|
-
target: {
|
|
46
|
-
name: "console",
|
|
47
|
-
type: "internal"
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
const response = await request({
|
|
51
|
-
...params,
|
|
52
|
-
base: {
|
|
53
|
-
id: "console"
|
|
54
|
-
},
|
|
55
|
-
url: serviceContext.method.url,
|
|
56
|
-
method: serviceContext.method.type,
|
|
57
|
-
metricsDetails: serviceContext
|
|
58
|
-
});
|
|
59
|
-
if (!response.ok) {
|
|
60
|
-
throw new HttpError(
|
|
61
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
62
|
-
response.status,
|
|
63
|
-
response.statusText
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
return response.body;
|
|
67
|
-
}
|
|
68
|
-
static async triggerUpdateValueMetricsPerCluster(params) {
|
|
69
|
-
const serviceContext = {
|
|
70
|
-
method: {
|
|
71
|
-
name: `ConsoleValueMetricsService.triggerUpdateValueMetricsPerCluster`,
|
|
72
|
-
url: `api/admin/metrics/clusters`,
|
|
73
|
-
normalizedUrl: `api/admin/metrics/clusters`,
|
|
74
|
-
type: "post"
|
|
75
|
-
},
|
|
76
|
-
source: params.config.metrics?.source || "unset",
|
|
77
|
-
target: {
|
|
78
|
-
name: "console",
|
|
79
|
-
type: "internal"
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
const response = await request({
|
|
83
|
-
config: params.config,
|
|
84
|
-
base: {
|
|
85
|
-
id: "console"
|
|
86
|
-
},
|
|
87
|
-
url: serviceContext.method.url,
|
|
88
|
-
method: serviceContext.method.type,
|
|
89
|
-
headers: params.params.headers,
|
|
90
|
-
type: "json",
|
|
91
|
-
responseType: "none",
|
|
92
|
-
body: {
|
|
93
|
-
clusterUsageOrgStartDates: params.params.clusterUsageOrgStartDates,
|
|
94
|
-
startDate: params.params.startDate
|
|
95
|
-
},
|
|
96
|
-
metricsDetails: serviceContext
|
|
97
|
-
});
|
|
98
|
-
if (!response.ok) {
|
|
99
|
-
throw new HttpError(
|
|
100
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
101
|
-
response.status,
|
|
102
|
-
response.statusText
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
export {
|
|
108
|
-
ConsoleValueMetricsService
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=console.valuemetrics.service.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/services/console/console.valuemetrics.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 ClusterUsageMetricsData,\n ClusterUsageOrgStartDate,\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'\nimport type { GetValueMetricsPerDayParams } from '../accounts/accounts.valuemetrics.service.js'\n\nexport interface TriggerUpdateValueMetricsPerClusterRequest\n extends RequestBaseParams {\n params: {\n clusterUsageOrgStartDates: ClusterUsageOrgStartDate[]\n startDate?: number\n headers: {\n [key: string]: string\n }\n }\n}\n\nexport class ConsoleValueMetricsService {\n public static async getValueMetrics(\n params: GetValueMetricsPerDayParams,\n ): Promise<ClusterUsageMetricsData[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `ConsoleValueMetricsService.getValueMetrics`,\n url: `api/orgs/${params.params.orgId}/clusters/usage/value-metrics`,\n normalizedUrl: `api/orgs/:orgId/clusters/usage/value-metrics`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'console',\n type: 'internal',\n },\n }\n const response = await request<ClusterUsageMetricsData[]>({\n ...params,\n base: {\n id: 'console',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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 getValueMetricsPerDays(\n params: GetValueMetricsPerDayParams,\n ): Promise<ClusterUsageMetricsData[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `ConsoleValueMetricsService.getValueMetricsPerDays`,\n url: `api/orgs/${params.params.orgId}/clusters/usage/value-metrics/${params.params.days}`,\n normalizedUrl: `api/orgs/:orgId/clusters/usage/value-metrics/:days`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'console',\n type: 'internal',\n },\n }\n const response = await request<ClusterUsageMetricsData[]>({\n ...params,\n base: {\n id: 'console',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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 triggerUpdateValueMetricsPerCluster(\n params: TriggerUpdateValueMetricsPerClusterRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `ConsoleValueMetricsService.triggerUpdateValueMetricsPerCluster`,\n url: `api/admin/metrics/clusters`,\n normalizedUrl: `api/admin/metrics/clusters`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'console',\n type: 'internal',\n },\n }\n const response = await request<ClusterUsageMetricsData[]>({\n config: params.config,\n base: {\n id: 'console',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n headers: params.params.headers,\n type: 'json',\n responseType: 'none',\n body: {\n clusterUsageOrgStartDates: params.params.clusterUsageOrgStartDates,\n startDate: params.params.startDate,\n },\n metricsDetails: serviceContext,\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": "AAcA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAcnB,MAAM,2BAA2B;AAAA,EACtC,aAAoB,gBAClB,QACoC;AACpC,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,YAAY,OAAO,OAAO,KAAK;AAAA,QACpC,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,QAAmC;AAAA,MACxD,GAAG;AAAA,MACH,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,IAClB,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;AAAA,EAClB;AAAA,EAEA,aAAoB,uBAClB,QACoC;AACpC,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,YAAY,OAAO,OAAO,KAAK,iCAAiC,OAAO,OAAO,IAAI;AAAA,QACvF,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,QAAmC;AAAA,MACxD,GAAG;AAAA,MACH,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,IAClB,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;AAAA,EAClB;AAAA,EAEA,aAAoB,oCAClB,QACe;AACf,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK;AAAA,QACL,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,QAAmC;AAAA,MACxD,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,SAAS,OAAO,OAAO;AAAA,MACvB,MAAM;AAAA,MACN,cAAc;AAAA,MACd,MAAM;AAAA,QACJ,2BAA2B,OAAO,OAAO;AAAA,QACzC,WAAW,OAAO,OAAO;AAAA,MAC3B;AAAA,MACA,gBAAgB;AAAA,IAClB,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;AAAA,EACF;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { GenerationDto } from '@camunda/ccma-shared-types';
|
|
2
|
-
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
-
export declare class GenerationService {
|
|
4
|
-
static getGeneration(params: {
|
|
5
|
-
uuid: string;
|
|
6
|
-
} & RequestBaseParams): Promise<GenerationDto | undefined>;
|
|
7
|
-
static setSupported(params: {
|
|
8
|
-
generationUuid: string;
|
|
9
|
-
unsupportedStartingAt: string | null;
|
|
10
|
-
} & RequestBaseParams): Promise<void>;
|
|
11
|
-
static createAutoUpdateBulkOperation(params: {
|
|
12
|
-
generationUuid: string;
|
|
13
|
-
name: string;
|
|
14
|
-
reason: string;
|
|
15
|
-
eyes: number;
|
|
16
|
-
} & RequestBaseParams): Promise<{
|
|
17
|
-
uuid: string;
|
|
18
|
-
name: string;
|
|
19
|
-
clusterCount: number;
|
|
20
|
-
} | undefined>;
|
|
21
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { request } from "../../utils/api.js";
|
|
2
|
-
import { HttpError } from "../../utils/errors.js";
|
|
3
|
-
class GenerationService {
|
|
4
|
-
static async getGeneration(params) {
|
|
5
|
-
const serviceContext = {
|
|
6
|
-
method: {
|
|
7
|
-
name: `GenerationService.getGeneration`,
|
|
8
|
-
url: `api/generations/${params.uuid}`,
|
|
9
|
-
normalizedUrl: `api/generations/:generationUuid`,
|
|
10
|
-
type: "get"
|
|
11
|
-
},
|
|
12
|
-
source: params.config.metrics?.source || "unset",
|
|
13
|
-
target: { name: "console", type: "internal" }
|
|
14
|
-
};
|
|
15
|
-
const response = await request({
|
|
16
|
-
config: params.config,
|
|
17
|
-
base: {
|
|
18
|
-
id: "console"
|
|
19
|
-
},
|
|
20
|
-
responseType: "json",
|
|
21
|
-
url: serviceContext.method.url,
|
|
22
|
-
method: serviceContext.method.type,
|
|
23
|
-
metricsDetails: serviceContext
|
|
24
|
-
});
|
|
25
|
-
if (!response.ok) {
|
|
26
|
-
throw new HttpError(
|
|
27
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
28
|
-
response.status,
|
|
29
|
-
response.statusText
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
return response.body;
|
|
33
|
-
}
|
|
34
|
-
static async setSupported(params) {
|
|
35
|
-
const serviceContext = {
|
|
36
|
-
method: {
|
|
37
|
-
name: `GenerationService.setSupported`,
|
|
38
|
-
url: `api/generations/${params.generationUuid}/supported`,
|
|
39
|
-
normalizedUrl: `api/generations/:generationUuid/supported`,
|
|
40
|
-
type: "patch"
|
|
41
|
-
},
|
|
42
|
-
source: params.config.metrics?.source || "unset",
|
|
43
|
-
target: { name: "console", type: "internal" }
|
|
44
|
-
};
|
|
45
|
-
const response = await request({
|
|
46
|
-
config: params.config,
|
|
47
|
-
base: {
|
|
48
|
-
id: "console"
|
|
49
|
-
},
|
|
50
|
-
body: {
|
|
51
|
-
unsupportedStartingAt: params.unsupportedStartingAt
|
|
52
|
-
},
|
|
53
|
-
responseType: "none",
|
|
54
|
-
url: serviceContext.method.url,
|
|
55
|
-
method: serviceContext.method.type,
|
|
56
|
-
metricsDetails: serviceContext
|
|
57
|
-
});
|
|
58
|
-
if (!response.ok) {
|
|
59
|
-
throw new HttpError(
|
|
60
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
61
|
-
response.status,
|
|
62
|
-
response.statusText
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
static async createAutoUpdateBulkOperation(params) {
|
|
67
|
-
const body = {
|
|
68
|
-
name: params.name,
|
|
69
|
-
reason: params.reason,
|
|
70
|
-
eyes: params.eyes
|
|
71
|
-
};
|
|
72
|
-
const serviceContext = {
|
|
73
|
-
method: {
|
|
74
|
-
name: `GenerationService.createAutoUpdateBulkOperation`,
|
|
75
|
-
url: `external/generations/${params.generationUuid}/autoupdate`,
|
|
76
|
-
normalizedUrl: `external/generations/:generationUuid/autoupdate`,
|
|
77
|
-
type: "put"
|
|
78
|
-
},
|
|
79
|
-
source: params.config.metrics?.source || "unset",
|
|
80
|
-
target: { name: "console", type: "internal" }
|
|
81
|
-
};
|
|
82
|
-
const response = await request({
|
|
83
|
-
config: params.config,
|
|
84
|
-
base: {
|
|
85
|
-
id: "console"
|
|
86
|
-
},
|
|
87
|
-
body,
|
|
88
|
-
responseType: "json",
|
|
89
|
-
url: serviceContext.method.url,
|
|
90
|
-
method: serviceContext.method.type,
|
|
91
|
-
metricsDetails: serviceContext
|
|
92
|
-
});
|
|
93
|
-
if (!response.ok) {
|
|
94
|
-
throw new HttpError(
|
|
95
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
96
|
-
response.status,
|
|
97
|
-
response.statusText
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
return response.body;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
export {
|
|
104
|
-
GenerationService
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=generation.service.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/services/console/generation.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 { GenerationDto } 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 class GenerationService {\n public static async getGeneration(\n params: { uuid: string } & RequestBaseParams,\n ): Promise<GenerationDto | undefined> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GenerationService.getGeneration`,\n url: `api/generations/${params.uuid}`,\n normalizedUrl: `api/generations/:generationUuid`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'console', type: 'internal' },\n }\n const response = await request<GenerationDto>({\n config: params.config,\n base: {\n id: 'console',\n },\n responseType: 'json',\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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 setSupported(\n params: {\n generationUuid: string\n unsupportedStartingAt: string | null\n } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GenerationService.setSupported`,\n url: `api/generations/${params.generationUuid}/supported`,\n normalizedUrl: `api/generations/:generationUuid/supported`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'console', type: 'internal' },\n }\n const response = await request<any>({\n config: params.config,\n base: {\n id: 'console',\n },\n body: {\n unsupportedStartingAt: params.unsupportedStartingAt,\n },\n responseType: 'none',\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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 createAutoUpdateBulkOperation(\n params: {\n generationUuid: string\n name: string\n reason: string\n eyes: number\n } & RequestBaseParams,\n ) {\n const body = {\n name: params.name,\n reason: params.reason,\n eyes: params.eyes,\n }\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GenerationService.createAutoUpdateBulkOperation`,\n url: `external/generations/${params.generationUuid}/autoupdate`,\n normalizedUrl: `external/generations/:generationUuid/autoupdate`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'console', type: 'internal' },\n }\n const response = await request<{\n uuid: string\n name: string\n clusterCount: number\n }>({\n config: params.config,\n base: {\n id: 'console',\n },\n body,\n responseType: 'json',\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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 return response.body\n }\n}\n"],
|
|
5
|
-
"mappings": "AAWA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAEnB,MAAM,kBAAkB;AAAA,EAC7B,aAAoB,cAClB,QACoC;AACpC,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,mBAAmB,OAAO,IAAI;AAAA,QACnC,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,IAC9C;AACA,UAAM,WAAW,MAAM,QAAuB;AAAA,MAC5C,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,cAAc;AAAA,MACd,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,IAClB,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;AAAA,EAClB;AAAA,EAEA,aAAoB,aAClB,QAIA;AACA,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,mBAAmB,OAAO,cAAc;AAAA,QAC7C,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,IAC9C;AACA,UAAM,WAAW,MAAM,QAAa;AAAA,MAClC,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACJ,uBAAuB,OAAO;AAAA,MAChC;AAAA,MACA,cAAc;AAAA,MACd,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,IAClB,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;AAAA,EACF;AAAA,EAEA,aAAoB,8BAClB,QAMA;AACA,UAAM,OAAO;AAAA,MACX,MAAM,OAAO;AAAA,MACb,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO;AAAA,IACf;AACA,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,wBAAwB,OAAO,cAAc;AAAA,QAClD,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ,EAAE,MAAM,WAAW,MAAM,WAAW;AAAA,IAC9C;AACA,UAAM,WAAW,MAAM,QAIpB;AAAA,MACD,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,IAClB,CAAC;AAED,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;AAAA,EAClB;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
-
export interface GithubListMajorMinorReleasesRequest extends RequestBaseParams {
|
|
3
|
-
options: {
|
|
4
|
-
owner: string;
|
|
5
|
-
repo: string;
|
|
6
|
-
apiToken: string;
|
|
7
|
-
iterations?: number;
|
|
8
|
-
onlyLatest?: boolean;
|
|
9
|
-
includeAlphas?: boolean;
|
|
10
|
-
onlyPrerelease?: boolean;
|
|
11
|
-
replaceBugfixSuffix?: boolean;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export interface GithubListReleasesRequest extends RequestBaseParams {
|
|
15
|
-
options: {
|
|
16
|
-
owner: string;
|
|
17
|
-
repo: string;
|
|
18
|
-
apiToken: string;
|
|
19
|
-
pageSize?: number;
|
|
20
|
-
currentPage?: number;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export interface GithubGetNextBugfixReleaseVersionRequest extends RequestBaseParams {
|
|
24
|
-
options: {
|
|
25
|
-
owner: string;
|
|
26
|
-
repo: string;
|
|
27
|
-
apiToken: string;
|
|
28
|
-
iterations?: number;
|
|
29
|
-
onlyLatest?: boolean;
|
|
30
|
-
majorMinor: string;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export interface GithubRelease {
|
|
34
|
-
url: string;
|
|
35
|
-
tag_name: string;
|
|
36
|
-
body: string;
|
|
37
|
-
created_at: string;
|
|
38
|
-
prerelease: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface GithubListDirectoryContentRequest extends RequestBaseParams {
|
|
41
|
-
options: {
|
|
42
|
-
owner: string;
|
|
43
|
-
repo: string;
|
|
44
|
-
apiToken: string;
|
|
45
|
-
path: string;
|
|
46
|
-
ref?: string;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export interface GithubGetRawFileRequest extends RequestBaseParams {
|
|
50
|
-
options: {
|
|
51
|
-
owner: string;
|
|
52
|
-
repo: string;
|
|
53
|
-
apiToken: string;
|
|
54
|
-
path: string;
|
|
55
|
-
ref?: string;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export interface GithubContentItem {
|
|
59
|
-
name: string;
|
|
60
|
-
path: string;
|
|
61
|
-
sha: string;
|
|
62
|
-
size: number;
|
|
63
|
-
url: string;
|
|
64
|
-
download_url: string | undefined;
|
|
65
|
-
type: string;
|
|
66
|
-
}
|
|
67
|
-
export declare class GithubService {
|
|
68
|
-
static getNextBugfixReleaseVersion(params: GithubGetNextBugfixReleaseVersionRequest): Promise<string>;
|
|
69
|
-
static listMajorMinorReleases(params: GithubListMajorMinorReleasesRequest): Promise<GithubRelease[]>;
|
|
70
|
-
static getReleases(params: GithubListReleasesRequest): Promise<GithubRelease[]>;
|
|
71
|
-
static listDirectoryContent(params: GithubListDirectoryContentRequest): Promise<GithubContentItem[]>;
|
|
72
|
-
static getRawFile(params: GithubGetRawFileRequest): Promise<string>;
|
|
73
|
-
}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
import { HOUR } from "@camunda/ccma-shared-types";
|
|
2
|
-
import { request } from "../../utils/api.js";
|
|
3
|
-
import { Cache } from "../../utils/cache.js";
|
|
4
|
-
import { HttpError } from "../../utils/errors.js";
|
|
5
|
-
const releaseCache = new Cache(HOUR);
|
|
6
|
-
class GithubService {
|
|
7
|
-
static async getNextBugfixReleaseVersion(params) {
|
|
8
|
-
const releases = await GithubService.listMajorMinorReleases({
|
|
9
|
-
config: params.config,
|
|
10
|
-
options: {
|
|
11
|
-
owner: params.options.owner,
|
|
12
|
-
repo: params.options.repo,
|
|
13
|
-
apiToken: params.options.apiToken,
|
|
14
|
-
onlyLatest: true,
|
|
15
|
-
iterations: params.options.iterations
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
if (releases.length === 0) {
|
|
19
|
-
throw new Error(
|
|
20
|
-
`No releases found for ${params.options.owner}/${params.options.repo}`
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
const latestRelease = releases[0];
|
|
24
|
-
if (latestRelease.tag_name.startsWith(params.options.majorMinor)) {
|
|
25
|
-
throw new Error(
|
|
26
|
-
`Not allowed to create a new bugfix release for ${latestRelease.tag_name}`
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
for (const release of releases) {
|
|
30
|
-
if (release.tag_name.startsWith(params.options.majorMinor)) {
|
|
31
|
-
const versionSplitted = release.tag_name.split(".");
|
|
32
|
-
if (versionSplitted.length !== 3) {
|
|
33
|
-
throw new Error(`Invalid version format: ${release.tag_name}`);
|
|
34
|
-
}
|
|
35
|
-
const majorVersion = Number(versionSplitted[0]);
|
|
36
|
-
const minorVersion = Number(versionSplitted[1]);
|
|
37
|
-
const patchVersion = Number(versionSplitted[2]) + 1;
|
|
38
|
-
return `${majorVersion}.${minorVersion}.${patchVersion}`;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
throw new Error(`No bugfix release found for ${params.options.majorMinor}`);
|
|
42
|
-
}
|
|
43
|
-
static async listMajorMinorReleases(params) {
|
|
44
|
-
const cacheKey = `major-minor-${params.options.owner}-${params.options.repo}-${params.options.onlyLatest ?? false}-${params.options.includeAlphas ?? false}-${params.options.onlyPrerelease ?? false}`;
|
|
45
|
-
if (!params.cacheControl?.ignoreCache) {
|
|
46
|
-
const cached = releaseCache.get(cacheKey);
|
|
47
|
-
if (cached) {
|
|
48
|
-
return cached;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const pageSize = 100;
|
|
52
|
-
const ITERATIONS = params.options.iterations || 15;
|
|
53
|
-
const pagePromises = Array.from({ length: ITERATIONS }, (_, index) => {
|
|
54
|
-
const currentPage = index + 1;
|
|
55
|
-
return GithubService.getReleases({
|
|
56
|
-
config: params.config,
|
|
57
|
-
options: {
|
|
58
|
-
owner: params.options.owner,
|
|
59
|
-
repo: params.options.repo,
|
|
60
|
-
apiToken: params.options.apiToken,
|
|
61
|
-
pageSize,
|
|
62
|
-
currentPage
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
const allPageResults = await Promise.all(pagePromises);
|
|
67
|
-
const stableReleases = [];
|
|
68
|
-
for (const releases of allPageResults) {
|
|
69
|
-
if (params.options.replaceBugfixSuffix === true) {
|
|
70
|
-
releases.forEach((release) => {
|
|
71
|
-
if (release.tag_name.endsWith("_bugfix")) {
|
|
72
|
-
release.tag_name = release.tag_name.replace(/_bugfix.*/u, "");
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
const filtered = releases.filter((release) => {
|
|
77
|
-
let includeRelease = !release.prerelease;
|
|
78
|
-
if (params.options.onlyPrerelease) {
|
|
79
|
-
includeRelease = release.prerelease;
|
|
80
|
-
}
|
|
81
|
-
if (includeRelease && params.options.includeAlphas) {
|
|
82
|
-
includeRelease = release.tag_name.includes("-alpha") && !release.tag_name.includes("-alphatest");
|
|
83
|
-
}
|
|
84
|
-
return includeRelease;
|
|
85
|
-
});
|
|
86
|
-
stableReleases.push(...filtered);
|
|
87
|
-
}
|
|
88
|
-
let releasesToRespond = [];
|
|
89
|
-
stableReleases.sort((a, b) => {
|
|
90
|
-
return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();
|
|
91
|
-
});
|
|
92
|
-
if (params.options.onlyLatest) {
|
|
93
|
-
const onlyLatest = {};
|
|
94
|
-
for (const release of stableReleases) {
|
|
95
|
-
const splitted = release.tag_name.split(".");
|
|
96
|
-
const majorMinor = `${splitted[0]}.${splitted[1]}`;
|
|
97
|
-
const patchVersion = Number(splitted[2]);
|
|
98
|
-
if (!onlyLatest[majorMinor]) {
|
|
99
|
-
onlyLatest[majorMinor] = patchVersion;
|
|
100
|
-
} else if (patchVersion > onlyLatest[majorMinor]) {
|
|
101
|
-
onlyLatest[majorMinor] = patchVersion;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const releaseStrings = Object.keys(onlyLatest).map((key) => {
|
|
105
|
-
return `${key}.${onlyLatest[key]}`;
|
|
106
|
-
});
|
|
107
|
-
const foundReleases = stableReleases.filter((release) => {
|
|
108
|
-
return releaseStrings.includes(release.tag_name);
|
|
109
|
-
});
|
|
110
|
-
releasesToRespond = foundReleases;
|
|
111
|
-
} else {
|
|
112
|
-
releasesToRespond = stableReleases;
|
|
113
|
-
}
|
|
114
|
-
releaseCache.set(cacheKey, releasesToRespond);
|
|
115
|
-
return releasesToRespond;
|
|
116
|
-
}
|
|
117
|
-
static async getReleases(params) {
|
|
118
|
-
const pageSize = params.options.pageSize || 100;
|
|
119
|
-
const currentPage = params.options.currentPage || 1;
|
|
120
|
-
const queryParams = new URLSearchParams();
|
|
121
|
-
queryParams.append("per_page", pageSize.toString());
|
|
122
|
-
queryParams.append("page", currentPage.toString());
|
|
123
|
-
const serviceContext = {
|
|
124
|
-
method: {
|
|
125
|
-
name: `GithubService.getReleases`,
|
|
126
|
-
url: `https://api.github.com/repos/${params.options.owner}/${params.options.repo}/releases?${queryParams.toString()}`,
|
|
127
|
-
normalizedUrl: `https://api.github.com/repos/:owner/:repo`,
|
|
128
|
-
type: "get"
|
|
129
|
-
},
|
|
130
|
-
source: params.config.metrics?.source || "unset",
|
|
131
|
-
target: {
|
|
132
|
-
name: "github",
|
|
133
|
-
type: "external"
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
const response = await request({
|
|
137
|
-
config: params.config,
|
|
138
|
-
url: serviceContext.method.url,
|
|
139
|
-
method: serviceContext.method.type,
|
|
140
|
-
metricsDetails: serviceContext,
|
|
141
|
-
type: "json",
|
|
142
|
-
headers: {
|
|
143
|
-
Accept: "application/vnd.github+json",
|
|
144
|
-
Authorization: `Bearer ${params.options.apiToken}`
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
if (!response.ok) {
|
|
148
|
-
throw new HttpError(
|
|
149
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
150
|
-
response.status,
|
|
151
|
-
response.statusText
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
let releases = [];
|
|
155
|
-
if (response.body) {
|
|
156
|
-
releases = response.body.map((release) => {
|
|
157
|
-
return {
|
|
158
|
-
url: release.url,
|
|
159
|
-
tag_name: release.tag_name,
|
|
160
|
-
body: release.body,
|
|
161
|
-
created_at: release.created_at,
|
|
162
|
-
prerelease: release.prerelease
|
|
163
|
-
};
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
return releases;
|
|
167
|
-
}
|
|
168
|
-
static async listDirectoryContent(params) {
|
|
169
|
-
const queryParams = new URLSearchParams();
|
|
170
|
-
if (params.options.ref) {
|
|
171
|
-
queryParams.append("ref", params.options.ref);
|
|
172
|
-
}
|
|
173
|
-
const encodedPath = encodeURIComponent(params.options.path).replace(
|
|
174
|
-
/%2F/gu,
|
|
175
|
-
"/"
|
|
176
|
-
);
|
|
177
|
-
const serviceContext = {
|
|
178
|
-
method: {
|
|
179
|
-
name: `GithubService.listDirectoryContent`,
|
|
180
|
-
url: `https://api.github.com/repos/${params.options.owner}/${params.options.repo}/contents/${encodedPath}${queryParams.size ? `?${queryParams.toString()}` : ""}`,
|
|
181
|
-
normalizedUrl: `https://api.github.com/repos/:owner/:repo/contents/:path`,
|
|
182
|
-
type: "get"
|
|
183
|
-
},
|
|
184
|
-
source: params.config.metrics?.source || "unset",
|
|
185
|
-
target: {
|
|
186
|
-
name: "github",
|
|
187
|
-
type: "external"
|
|
188
|
-
}
|
|
189
|
-
};
|
|
190
|
-
const response = await request({
|
|
191
|
-
config: params.config,
|
|
192
|
-
url: serviceContext.method.url,
|
|
193
|
-
method: serviceContext.method.type,
|
|
194
|
-
metricsDetails: serviceContext,
|
|
195
|
-
type: "json",
|
|
196
|
-
headers: {
|
|
197
|
-
Accept: "application/vnd.github+json",
|
|
198
|
-
Authorization: `Bearer ${params.options.apiToken}`
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
if (!response.ok) {
|
|
202
|
-
throw new HttpError(
|
|
203
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
204
|
-
response.status,
|
|
205
|
-
response.statusText
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
let items = [];
|
|
209
|
-
if (Array.isArray(response.body)) {
|
|
210
|
-
items = response.body.map((item) => {
|
|
211
|
-
return {
|
|
212
|
-
name: item.name,
|
|
213
|
-
path: item.path,
|
|
214
|
-
sha: item.sha,
|
|
215
|
-
size: item.size,
|
|
216
|
-
url: item.url,
|
|
217
|
-
download_url: item.download_url,
|
|
218
|
-
type: item.type
|
|
219
|
-
};
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
return items;
|
|
223
|
-
}
|
|
224
|
-
static async getRawFile(params) {
|
|
225
|
-
const queryParams = new URLSearchParams();
|
|
226
|
-
if (params.options.ref) {
|
|
227
|
-
queryParams.append("ref", params.options.ref);
|
|
228
|
-
}
|
|
229
|
-
const encodedPath = encodeURIComponent(params.options.path).replace(
|
|
230
|
-
/%2F/gu,
|
|
231
|
-
"/"
|
|
232
|
-
);
|
|
233
|
-
const serviceContext = {
|
|
234
|
-
method: {
|
|
235
|
-
name: `GithubService.getRawFile`,
|
|
236
|
-
url: `https://api.github.com/repos/${params.options.owner}/${params.options.repo}/contents/${encodedPath}${queryParams.size ? `?${queryParams.toString()}` : ""}`,
|
|
237
|
-
normalizedUrl: `https://api.github.com/repos/:owner/:repo/contents/:path`,
|
|
238
|
-
type: "get"
|
|
239
|
-
},
|
|
240
|
-
source: params.config.metrics?.source || "unset",
|
|
241
|
-
target: {
|
|
242
|
-
name: "github",
|
|
243
|
-
type: "external"
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
const response = await request({
|
|
247
|
-
config: params.config,
|
|
248
|
-
url: serviceContext.method.url,
|
|
249
|
-
method: serviceContext.method.type,
|
|
250
|
-
metricsDetails: serviceContext,
|
|
251
|
-
// do not set a Content-Type for GET, but expect text back
|
|
252
|
-
type: "none",
|
|
253
|
-
responseType: "text",
|
|
254
|
-
headers: {
|
|
255
|
-
Accept: "application/vnd.github.raw",
|
|
256
|
-
Authorization: `Bearer ${params.options.apiToken}`
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
if (!response.ok) {
|
|
260
|
-
throw new HttpError(
|
|
261
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
262
|
-
response.status,
|
|
263
|
-
response.statusText
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
return response.body ?? "";
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
export {
|
|
270
|
-
GithubService
|
|
271
|
-
};
|
|
272
|
-
//# sourceMappingURL=github.service.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/services/github/github.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 { HOUR } from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { Cache } from '../../utils/cache.js'\nimport { HttpError } from '../../utils/errors.js'\n\nconst releaseCache = new Cache<string, GithubRelease[]>(HOUR)\n\nexport interface GithubListMajorMinorReleasesRequest extends RequestBaseParams {\n options: {\n owner: string\n repo: string\n apiToken: string\n iterations?: number\n onlyLatest?: boolean\n includeAlphas?: boolean\n onlyPrerelease?: boolean\n replaceBugfixSuffix?: boolean\n }\n}\n\nexport interface GithubListReleasesRequest extends RequestBaseParams {\n options: {\n owner: string\n repo: string\n apiToken: string\n pageSize?: number\n currentPage?: number\n }\n}\n\nexport interface GithubGetNextBugfixReleaseVersionRequest\n extends RequestBaseParams {\n options: {\n owner: string\n repo: string\n apiToken: string\n iterations?: number\n onlyLatest?: boolean\n majorMinor: string\n }\n}\n\nexport interface GithubRelease {\n url: string\n tag_name: string\n body: string\n created_at: string\n prerelease: boolean\n}\n\nexport interface GithubListDirectoryContentRequest extends RequestBaseParams {\n options: {\n owner: string\n repo: string\n apiToken: string\n path: string\n ref?: string\n }\n}\n\nexport interface GithubGetRawFileRequest extends RequestBaseParams {\n options: {\n owner: string\n repo: string\n apiToken: string\n path: string\n ref?: string\n }\n}\n\nexport interface GithubContentItem {\n name: string\n path: string\n sha: string\n size: number\n url: string\n download_url: string | undefined\n type: string\n}\n\nexport class GithubService {\n public static async getNextBugfixReleaseVersion(\n params: GithubGetNextBugfixReleaseVersionRequest,\n ): Promise<string> {\n const releases = await GithubService.listMajorMinorReleases({\n config: params.config,\n options: {\n owner: params.options.owner,\n repo: params.options.repo,\n apiToken: params.options.apiToken,\n onlyLatest: true,\n iterations: params.options.iterations,\n },\n })\n if (releases.length === 0) {\n throw new Error(\n `No releases found for ${params.options.owner}/${params.options.repo}`,\n )\n }\n const latestRelease = releases[0]\n if (latestRelease.tag_name.startsWith(params.options.majorMinor)) {\n throw new Error(\n `Not allowed to create a new bugfix release for ${latestRelease.tag_name}`,\n )\n }\n for (const release of releases) {\n if (release.tag_name.startsWith(params.options.majorMinor)) {\n const versionSplitted = release.tag_name.split('.')\n if (versionSplitted.length !== 3) {\n throw new Error(`Invalid version format: ${release.tag_name}`)\n }\n const majorVersion = Number(versionSplitted[0])\n const minorVersion = Number(versionSplitted[1])\n const patchVersion = Number(versionSplitted[2]) + 1\n return `${majorVersion}.${minorVersion}.${patchVersion}`\n }\n }\n throw new Error(`No bugfix release found for ${params.options.majorMinor}`)\n }\n\n public static async listMajorMinorReleases(\n params: GithubListMajorMinorReleasesRequest,\n ): Promise<GithubRelease[]> {\n const cacheKey = `major-minor-${params.options.owner}-${\n params.options.repo\n }-${params.options.onlyLatest ?? false}-${\n params.options.includeAlphas ?? false\n }-${params.options.onlyPrerelease ?? false}`\n if (!params.cacheControl?.ignoreCache) {\n const cached = releaseCache.get(cacheKey)\n if (cached) {\n return cached\n }\n }\n const pageSize = 100\n const ITERATIONS = params.options.iterations || 15\n\n // Fetch all pages in parallel for improved performance\n const pagePromises = Array.from({ length: ITERATIONS }, (_, index) => {\n const currentPage = index + 1\n return GithubService.getReleases({\n config: params.config,\n options: {\n owner: params.options.owner,\n repo: params.options.repo,\n apiToken: params.options.apiToken,\n pageSize,\n currentPage,\n },\n })\n })\n\n const allPageResults = await Promise.all(pagePromises)\n\n const stableReleases: GithubRelease[] = []\n for (const releases of allPageResults) {\n // replace bugfix suffix\n if (params.options.replaceBugfixSuffix === true) {\n releases.forEach((release) => {\n if (release.tag_name.endsWith('_bugfix')) {\n release.tag_name = release.tag_name.replace(/_bugfix.*/u, '')\n }\n })\n }\n\n const filtered = releases.filter((release) => {\n let includeRelease = !release.prerelease\n if (params.options.onlyPrerelease) {\n includeRelease = release.prerelease\n }\n if (includeRelease && params.options.includeAlphas) {\n includeRelease =\n release.tag_name.includes('-alpha') &&\n !release.tag_name.includes('-alphatest')\n }\n return includeRelease\n })\n stableReleases.push(...filtered)\n }\n\n let releasesToRespond: GithubRelease[] = []\n\n stableReleases.sort((a, b) => {\n return new Date(b.created_at).getTime() - new Date(a.created_at).getTime()\n })\n\n if (params.options.onlyLatest) {\n const onlyLatest: Record<string, number> = {}\n for (const release of stableReleases) {\n const splitted = release.tag_name.split('.')\n const majorMinor = `${splitted[0]}.${splitted[1]}`\n const patchVersion = Number(splitted[2])\n if (!onlyLatest[majorMinor]) {\n onlyLatest[majorMinor] = patchVersion\n } else if (patchVersion > onlyLatest[majorMinor]) {\n onlyLatest[majorMinor] = patchVersion\n }\n }\n const releaseStrings = Object.keys(onlyLatest).map((key) => {\n return `${key}.${onlyLatest[key]}`\n })\n const foundReleases = stableReleases.filter((release) => {\n return releaseStrings.includes(release.tag_name)\n })\n releasesToRespond = foundReleases\n } else {\n releasesToRespond = stableReleases\n }\n releaseCache.set(cacheKey, releasesToRespond)\n return releasesToRespond\n }\n\n public static async getReleases(\n params: GithubListReleasesRequest,\n ): Promise<GithubRelease[]> {\n const pageSize = params.options.pageSize || 100\n const currentPage = params.options.currentPage || 1\n const queryParams = new URLSearchParams()\n queryParams.append('per_page', pageSize.toString())\n queryParams.append('page', currentPage.toString())\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GithubService.getReleases`,\n url: `https://api.github.com/repos/${params.options.owner}/${\n params.options.repo\n }/releases?${queryParams.toString()}`,\n normalizedUrl: `https://api.github.com/repos/:owner/:repo`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'github',\n type: 'external',\n },\n }\n\n const response = await request<GithubRelease[]>({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Accept: 'application/vnd.github+json',\n Authorization: `Bearer ${params.options.apiToken}`,\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 let releases: GithubRelease[] = []\n if (response.body) {\n releases = response.body.map((release) => {\n return {\n url: release.url,\n tag_name: release.tag_name,\n body: release.body,\n created_at: release.created_at,\n prerelease: release.prerelease,\n }\n })\n }\n return releases\n }\n\n public static async listDirectoryContent(\n params: GithubListDirectoryContentRequest,\n ): Promise<GithubContentItem[]> {\n const queryParams = new URLSearchParams()\n if (params.options.ref) {\n queryParams.append('ref', params.options.ref)\n }\n const encodedPath = encodeURIComponent(params.options.path).replace(\n /%2F/gu,\n '/',\n )\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GithubService.listDirectoryContent`,\n url: `https://api.github.com/repos/${params.options.owner}/${\n params.options.repo\n }/contents/${encodedPath}${queryParams.size ? `?${queryParams.toString()}` : ''}`,\n normalizedUrl: `https://api.github.com/repos/:owner/:repo/contents/:path`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'github',\n type: 'external',\n },\n }\n\n const response = await request<any[]>({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n type: 'json',\n headers: {\n Accept: 'application/vnd.github+json',\n Authorization: `Bearer ${params.options.apiToken}`,\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 let items: GithubContentItem[] = []\n if (Array.isArray(response.body)) {\n items = response.body.map((item: any) => {\n return {\n name: item.name,\n path: item.path,\n sha: item.sha,\n size: item.size,\n url: item.url,\n download_url: item.download_url,\n type: item.type,\n } as GithubContentItem\n })\n }\n return items\n }\n\n public static async getRawFile(\n params: GithubGetRawFileRequest,\n ): Promise<string> {\n const queryParams = new URLSearchParams()\n if (params.options.ref) {\n queryParams.append('ref', params.options.ref)\n }\n const encodedPath = encodeURIComponent(params.options.path).replace(\n /%2F/gu,\n '/',\n )\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `GithubService.getRawFile`,\n url: `https://api.github.com/repos/${params.options.owner}/${\n params.options.repo\n }/contents/${encodedPath}${queryParams.size ? `?${queryParams.toString()}` : ''}`,\n normalizedUrl: `https://api.github.com/repos/:owner/:repo/contents/:path`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'github',\n type: 'external',\n },\n }\n\n const response = await request<string>({\n config: params.config,\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n // do not set a Content-Type for GET, but expect text back\n type: 'none',\n responseType: 'text',\n headers: {\n Accept: 'application/vnd.github.raw',\n Authorization: `Bearer ${params.options.apiToken}`,\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 return response.body ?? ''\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|