diff --git a/clevercloud-client-9.1.0.tgz b/clevercloud-client-9.1.0.tgz new file mode 100644 index 000000000..26fbb6723 Binary files /dev/null and b/clevercloud-client-9.1.0.tgz differ diff --git a/package-lock.json b/package-lock.json index 492ec55da..d0f64dfd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "17.0.0", "license": "Apache-2.0", "dependencies": { - "@clevercloud/client": "^8.2.0", + "@clevercloud/client": "file:clevercloud-client-9.1.0.tgz", "@lit-labs/motion": "^1.0.7", "@lit-labs/virtualizer": "^2.0.14", "@shoelace-style/shoelace": "^2.18.0", @@ -1906,9 +1906,10 @@ "dev": true }, "node_modules/@clevercloud/client": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@clevercloud/client/-/client-8.2.0.tgz", - "integrity": "sha512-nPOShepm52mY4ddcMiDpFfJUi9CjByuuQH8vAiFVn3r9Y0+BL3aXV/40SxT0qZDgt6bkyQB75tAEPMozIho4WQ==", + "version": "9.1.0", + "resolved": "file:clevercloud-client-9.1.0.tgz", + "integrity": "sha512-oByd/TNYlmqNgNqH2+3Hw8fxaAy0g2IVLDMqW4QDTEdn9xbv2LLAHncrnjDjHlffRttBk/AxPJxHqBiERnFUBA==", + "license": "Apache-2.0", "dependencies": { "component-emitter": "^1.3.0", "oauth-1.0a": "^2.2.6" @@ -20066,9 +20067,8 @@ "dev": true }, "@clevercloud/client": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@clevercloud/client/-/client-8.2.0.tgz", - "integrity": "sha512-nPOShepm52mY4ddcMiDpFfJUi9CjByuuQH8vAiFVn3r9Y0+BL3aXV/40SxT0qZDgt6bkyQB75tAEPMozIho4WQ==", + "version": "file:clevercloud-client-9.1.0.tgz", + "integrity": "sha512-oByd/TNYlmqNgNqH2+3Hw8fxaAy0g2IVLDMqW4QDTEdn9xbv2LLAHncrnjDjHlffRttBk/AxPJxHqBiERnFUBA==", "requires": { "component-emitter": "^1.3.0", "oauth-1.0a": "^2.2.6" diff --git a/package.json b/package.json index 5a2c9b962..21ad55bb3 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "typecheck:stats": "node tasks/typechecking-stats.js" }, "dependencies": { - "@clevercloud/client": "^8.2.0", + "@clevercloud/client": "file:clevercloud-client-9.1.0.tgz", "@lit-labs/motion": "^1.0.7", "@lit-labs/virtualizer": "^2.0.14", "@shoelace-style/shoelace": "^2.18.0", diff --git a/src/components/cc-domain-management/cc-domain-management.smart.js b/src/components/cc-domain-management/cc-domain-management.smart.js index 0cb4eef4e..ef5f6792e 100644 --- a/src/components/cc-domain-management/cc-domain-management.smart.js +++ b/src/components/cc-domain-management/cc-domain-management.smart.js @@ -8,6 +8,8 @@ import { defineSmartComponent } from '../../lib/smart/define-smart-component.js' import { i18n } from '../../translations/translation.js'; import '../cc-smart-container/cc-smart-container.js'; import { CcDomainManagement } from './cc-domain-management.js'; +// @ts-expect-error FIXME: remove when clever-client exports types +import { getDefaultLoadBalancersDnsInfo } from '@clevercloud/client/esm/api/v4/load-balancers.js'; /** * @typedef {import('./cc-domain-management.types.js').DomainManagementFormState} DomainManagementFormState @@ -326,22 +328,6 @@ function fetchDnsInfo({ apiConfig, ownerId, appId, signal }) { }); } -/** - * TODO: move this to Clever Client - * - * @param {Object} params - * @param {string} params.ownerId - * @param {string} params.appId - * @returns {Promise} - */ -function getDefaultLoadBalancersDnsInfo({ appId, ownerId }) { - return Promise.resolve({ - method: 'get', - url: `/v4/load-balancers/organisations/${ownerId}/applications/${appId}/load-balancers/default`, - headers: { Accept: 'application/json' }, - }); -} - /** * @param {string} id * @param {string} appId diff --git a/src/components/cc-email-list/cc-email-list.smart.js b/src/components/cc-email-list/cc-email-list.smart.js index 54b9efc34..9fe3fec2e 100644 --- a/src/components/cc-email-list/cc-email-list.smart.js +++ b/src/components/cc-email-list/cc-email-list.smart.js @@ -1,6 +1,8 @@ // prettier-ignore // @ts-expect-error FIXME: remove when clever-client exports types import { todo_addEmailAddress as addEmailAddress,todo_getEmailAddresses as getEmailAddresses,todo_removeEmailAddress as removeEmailAddress,todo_getConfirmationEmail as sendConfirmationEmail,} from '@clevercloud/client/esm/api/v2/user.js'; +// @ts-expect-error FIXME: remove when clever-client exports types +import { get as getSelf } from '@clevercloud/client/esm/api/v2/organisation.js'; import { notify, notifyError, notifySuccess } from '../../lib/notifications.js'; import { sendToApi } from '../../lib/send-to-api.js'; import { defineSmartComponent } from '../../lib/smart/define-smart-component.js'; @@ -279,11 +281,7 @@ function getApi(apiConfig, signal) { * @return {Promise<{email: string, emailValidated: boolean}>} */ fetchPrimaryEmailAddress() { - return Promise.resolve({ - method: 'get', - url: `/v2/self`, - headers: { Accept: 'application/json' }, - }).then(sendToApi({ apiConfig, signal })); + return getSelf({}).then(sendToApi({ apiConfig, signal })); }, /** diff --git a/src/components/cc-env-var-form/cc-env-var-form.smart-config-provider.js b/src/components/cc-env-var-form/cc-env-var-form.smart-config-provider.js index e4698a319..492395e4a 100644 --- a/src/components/cc-env-var-form/cc-env-var-form.smart-config-provider.js +++ b/src/components/cc-env-var-form/cc-env-var-form.smart-config-provider.js @@ -6,6 +6,8 @@ import { defineSmartComponent } from '../../lib/smart/define-smart-component.js' import { i18n } from '../../translations/translation.js'; import '../cc-smart-container/cc-smart-container.js'; import './cc-env-var-form.js'; +// @ts-expect-error FIXME: remove when clever-client exports types +import { getConfigProviderEnv, updateConfigProviderEnv } from '@clevercloud/client/esm/api/v4/addon.js'; /** * @typedef {import('./cc-env-var-form.js').CcEnvVarForm} CcEnvVarForm @@ -125,38 +127,3 @@ async function fetchVariables({ apiConfig, signal, realAddonId }) { async function updateVariables({ apiConfig, realAddonId, variables }) { return updateConfigProviderEnv({ realAddonId }, variables).then(sendToApi({ apiConfig })); } - -/** - * TODO: clever-client - * - * @param {object} params - * @param {string} params.realAddonId - * @returns {Promise<{ method: 'get', url: string, headers: { Accept: 'application/json' }}>} - */ -export function getConfigProviderEnv({ realAddonId }) { - return Promise.resolve({ - method: 'get', - url: `/v4/addon-providers/config-provider/addons/${realAddonId}/env`, - headers: { Accept: 'application/json' }, - // no query params - // no body - }); -} - -/** - * TODO: clever-client - * - * @param {object} params - * @param {string} params.realAddonId - * @param {Array} body - * @returns {Promise<{ method: 'put', url: string, headers: { Accept: 'application/json' }, body: Array }>} - */ -export function updateConfigProviderEnv({ realAddonId }, body) { - return Promise.resolve({ - method: 'put', - url: `/v4/addon-providers/config-provider/addons/${realAddonId}/env`, - headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, - // no query params - body, - }); -} diff --git a/src/components/cc-grafana-info/cc-grafana-info.smart.js b/src/components/cc-grafana-info/cc-grafana-info.smart.js index cf46b30fc..7e39542fb 100644 --- a/src/components/cc-grafana-info/cc-grafana-info.smart.js +++ b/src/components/cc-grafana-info/cc-grafana-info.smart.js @@ -1,15 +1,14 @@ -import { - createGrafanaOrganisation, - deleteGrafanaOrganisation, - getGrafanaOrganisation, - resetGrafanaOrganisation, -} from '../../lib/api-helpers.js'; import { notifyError, notifySuccess } from '../../lib/notifications.js'; import { sendToApi } from '../../lib/send-to-api.js'; import { defineSmartComponent } from '../../lib/smart/define-smart-component.js'; import { i18n } from '../../translations/translation.js'; import '../cc-smart-container/cc-smart-container.js'; import './cc-grafana-info.js'; +import { + createGrafanaOrganisation, + deleteGrafanaOrganisation, + getGrafanaOrganisation, resetGrafanaOrganisation +} from '@clevercloud/client/esm/api/v4/saas.js'; /** * @typedef {import('./cc-grafana-info.js').CcGrafanaInfo} CcGrafanaInfo diff --git a/src/components/cc-logs-application-view/cc-logs-application-view.smart.js b/src/components/cc-logs-application-view/cc-logs-application-view.smart.js index ad9846047..dcb4edaa3 100644 --- a/src/components/cc-logs-application-view/cc-logs-application-view.smart.js +++ b/src/components/cc-logs-application-view/cc-logs-application-view.smart.js @@ -1,5 +1,4 @@ -import { getAllInstances, getDeployment } from '@clevercloud/client/esm/api/v2/application.js'; -import { pickNonNull } from '@clevercloud/client/esm/pick-non-null.js'; +import { getDeployment as getDeploymentV2 } from '@clevercloud/client/esm/api/v2/application.js'; import { ApplicationLogStream } from '@clevercloud/client/esm/streams/application-logs.js'; import { HttpError } from '@clevercloud/client/esm/streams/clever-cloud-sse.js'; import { Buffer } from '../../lib/buffer.js'; @@ -10,6 +9,11 @@ import '../cc-smart-container/cc-smart-container.js'; import './cc-logs-application-view.js'; import { dateRangeSelectionToDateRange } from './date-range-selection.js'; import { isLive, lastXDays } from './date-range.js'; +import { + getAllApplicationInstances as getApplicationInstancesV4, + getInstance as getInstanceV4 +} from '@clevercloud/client/esm/api/v4/instance.js'; +import { getApplicationDeployment as getDeploymentV4 } from '@clevercloud/client/esm/api/v4/deployment.js'; /** * @typedef {import('../cc-logs-instances/cc-logs-instances.types.js').Instance} Instance @@ -966,62 +970,28 @@ class Api { } fetchDeployment(deploymentId) { - return v4.getDeployment({ ...this._commonApiPrams, deploymentId }).then(sendToApi({ apiConfig: this._apiConfig })); + return getDeploymentV4({ ...this._commonApiPrams, deploymentId }).then(sendToApi({ apiConfig: this._apiConfig })); } fetchDeploymentV2(deploymentId) { - return v2.getDeployment({ ...this._commonApiPrams, deploymentId }).then(sendToApi({ apiConfig: this._apiConfig })); + return getDeploymentV2({ ...this._commonApiPrams, deploymentId }).then(sendToApi({ apiConfig: this._apiConfig })); } fetchInstances(since, until) { - return v4 - .getInstances({ ...this._commonApiPrams, limit: 100, since, until }) + return getApplicationInstancesV4({ ...this._commonApiPrams, limit: 100, since, until }) .then(sendToApi({ apiConfig: this._apiConfig })); } fetchInstancesByDeployment(deploymentId) { - return v4 - .getInstances({ ...this._commonApiPrams, limit: 100, deploymentId }) + return getApplicationInstancesV4({ ...this._commonApiPrams, limit: 100, deploymentId }) .then(sendToApi({ apiConfig: this._apiConfig })); } fetchInstance(instanceId) { - return v4.getInstance({ ...this._commonApiPrams, instanceId }).then(sendToApi({ apiConfig: this._apiConfig })); + return getInstanceV4({ ...this._commonApiPrams, instanceId }).then(sendToApi({ apiConfig: this._apiConfig })); } } -// --- APIs ------ - -const v4 = { - getInstances(params) { - return Promise.resolve({ - method: 'get', - url: `/v4/orchestration/organisations/${params.id}/applications/${params.appId}/instances`, - headers: { Accept: 'application/json' }, - queryParams: pickNonNull(params, ['limit', 'since', 'until', 'deploymentId', 'includeState']), - }); - }, - getInstance(params) { - return Promise.resolve({ - method: 'get', - url: `/v4/orchestration/organisations/${params.id}/applications/${params.appId}/instances/${params.instanceId}`, - headers: { Accept: 'application/json' }, - }); - }, - getDeployment(params) { - return Promise.resolve({ - method: 'get', - url: `/v4/orchestration/organisations/${params.id}/applications/${params.appId}/deployments/${params.deploymentId}`, - headers: { Accept: 'application/json' }, - }); - }, -}; - -const v2 = { - getDeployment: getDeployment, - getAllInstances: getAllInstances, -}; - // --- utils ------ /** @@ -1047,17 +1017,3 @@ function isGhostInstance(instance) { function isCurrentDeployment(deployment) { return deployment.state === 'WORK_IN_PROGRESS' || deployment.state === 'QUEUED' || deployment.endDate == null; } - -// -// function getDeployments (params) { -// // "https://api.clever-cloud.com/v4/orchestration/organisations/orga_8b852f0a-1135-4b4f-8eee-a538f538b640/applications/app_4bc68315-c93e-49eb-8086-430314475568/deployments?limit=1" | jq -// const urlBase = `/orchestration/organisations/${params.id}/applications/${params.appId}/deployments`; -// return Promise.resolve({ -// method: 'get', -// url: `/v4${urlBase}/applications/${params.appId}/deployments`, -// headers: { Accept: 'application/json' }, -// queryParams: pickNonNull(params, ['limit', 'offset', 'action']), -// // no body -// }); -// -// } diff --git a/src/components/cc-tile-metrics/cc-tile-metrics.smart.js b/src/components/cc-tile-metrics/cc-tile-metrics.smart.js index 5b9ba3443..70a3e8161 100644 --- a/src/components/cc-tile-metrics/cc-tile-metrics.smart.js +++ b/src/components/cc-tile-metrics/cc-tile-metrics.smart.js @@ -1,8 +1,9 @@ -import { getAppMetrics, getGrafanaOrganisation } from '../../lib/api-helpers.js'; +import { getAppMetrics } from '../../lib/api-helpers.js'; import { sendToApi } from '../../lib/send-to-api.js'; import { defineSmartComponent } from '../../lib/smart/define-smart-component.js'; import '../cc-smart-container/cc-smart-container.js'; import './cc-tile-metrics.js'; +import { getGrafanaOrganisation } from '@clevercloud/client/esm/api/v4/saas.js'; /** * @typedef {import('./cc-tile-metrics.js').CcTileMetrics} CcTileMetrics diff --git a/src/lib/api-helpers.js b/src/lib/api-helpers.js index 058f11ba7..9287ccf6b 100644 --- a/src/lib/api-helpers.js +++ b/src/lib/api-helpers.js @@ -1,7 +1,7 @@ // @ts-expect-error FIXME: remove when clever-client exports types import { get as getApp } from '@clevercloud/client/esm/api/v2/application.js'; // @ts-expect-error FIXME: remove when clever-client exports types -import { getAllInvoices, getInvoice } from '@clevercloud/client/esm/api/v4/billing.js'; +import { getAllInvoices, getInvoice, getPriceSystem } from '@clevercloud/client/esm/api/v4/billing.js'; // @ts-expect-error FIXME: remove when clever-client exports types import { addOauthHeader } from '@clevercloud/client/esm/oauth.js'; // @ts-expect-error FIXME: remove when clever-client exports types @@ -127,24 +127,6 @@ function getPaymentUrl(ownerId, invoiceNumber) { : `/organisations/${ownerId}/invoices/${invoiceNumber}`; } -// TODO: move to clever-client -/** - * GET /v4/billing/price-system - * @param {object} params - * @param {String} params.zone_id - * @param {String} params.currency - */ -export function getPriceSystem(params) { - // no multipath for /self or /organisations/{id} - return Promise.resolve({ - method: 'get', - url: `/v4/billing/price-system`, - headers: { Accept: 'application/json' }, - queryParams: pickNonNull(params, ['zone_id', 'currency']), - // no body - }); -} - /** * * @param {object} params @@ -159,60 +141,6 @@ export function fetchPriceSystem({ apiConfig, signal, zoneId, currency }) { return getPriceSystem({ zone_id: zoneId, currency }).then(sendToApi({ apiConfig, signal, cacheDelay: ONE_DAY })); } -// TODO: move to clever-client -// Tmp Grafana API calls -/** - * GET /v4/saas/grafana/{id} - * @param {object} params - * @param {string} params.id - */ -export function getGrafanaOrganisation(params) { - return Promise.resolve({ - method: 'get', - url: `/v4/saas/grafana/${params.id}`, - headers: { Accept: 'application/json' }, - }); -} - -/** - * POST /v4/saas/grafana/{id} - * @param {object} params - * @param {string} params.id - */ -export function createGrafanaOrganisation(params) { - return Promise.resolve({ - method: 'post', - url: `/v4/saas/grafana/${params.id}`, - headers: { Accept: 'application/json' }, - }); -} - -/** - * DELETE /v4/saas/grafana/{id} - * @param {Object} params - * @param {string} params.id - */ -export function deleteGrafanaOrganisation(params) { - return Promise.resolve({ - method: 'delete', - url: `/v4/saas/grafana/${params.id}`, - headers: { Accept: 'application/json' }, - }); -} - -/** - * POST /v4/saas/grafana/{id}/reset - * @param {object} params - * @param {string} params.id - */ -export function resetGrafanaOrganisation(params) { - return Promise.resolve({ - method: 'post', - url: `/v4/saas/grafana/${params.id}/reset`, - headers: { Accept: 'application/json' }, - }); -} - // TODO: move this to clever client /** *