UNPKG

@wix/cli

Version:

CLI tool for building Wix sites and applications

211 lines (205 loc) 6.23 kB
import { createRequire as _createRequire } from 'node:module'; const require = _createRequire(import.meta.url); import { getDeployment, getDeploymentPipelineDescription, publishDeployment } from "./chunk-HEAQRI3A.js"; import { DeploymentPipelinesStatus, TaskStatus } from "./chunk-MYWHJYA3.js"; import { useHttpClient } from "./chunk-FYLO6WOU.js"; import { usePanoramaMethodLogger } from "./chunk-3B6VL2WO.js"; import { pRetry, pWaitFor } from "./chunk-CCWE4DS6.js"; import { require_react } from "./chunk-QNHANFRW.js"; import { getTestOverrides } from "./chunk-XZUGLEBK.js"; import { external_exports } from "./chunk-SDLCFZRL.js"; import { CliError, CliErrorCode, require_lib } from "./chunk-CO5A7CZG.js"; import { __toESM, init_esm_shims } from "./chunk-EXLZF52D.js"; // ../document-management-client/src/document-management-client.ts init_esm_shims(); var import_variant = __toESM(require_lib(), 1); // ../document-management-client/src/schemas.ts init_esm_shims(); var getDeploymentSchema = external_exports.object({ deployment: external_exports.object({ deploymentPipelinesStatus: external_exports.enum([ DeploymentPipelinesStatus.IN_PROGRESS, DeploymentPipelinesStatus.SUCCESS, DeploymentPipelinesStatus.ERROR ]) }) }); var taskDescriptionSchema = external_exports.object({ taskName: external_exports.string(), status: external_exports.string().transform( (value) => value === TaskStatus.SUCCESS ? TaskStatus.SUCCESS : TaskStatus.ERROR ), description: external_exports.string().nullish().transform((value, ctx) => { try { return value ? JSON.parse(value) : {}; } catch { ctx.addIssue({ code: external_exports.ZodIssueCode.custom, message: "Invalid JSON" }); } return value; }).pipe(external_exports.record(external_exports.string(), external_exports.string())) }); var getDeploymentPipelineDescriptionSchema = external_exports.object({ pipelinesDescription: external_exports.array( external_exports.object({ deploymentPipelineId: external_exports.string(), tasksDescriptions: external_exports.array(taskDescriptionSchema) }) ) }); // ../document-management-client/src/document-management-client.ts var { minRetryTimeout, pollInterval } = getTestOverrides(); var VELO_PIPELINE_ID = "5c696513-2584-4f19-ae0f-a559dd649482"; var DeploymentStatus = (0, import_variant.variant)({ Success: {}, Error: (0, import_variant.fields)() }); var DocumentManagementClient = class { constructor(httpClient) { this.httpClient = httpClient; this.retryOptions = { retries: 1, minTimeout: minRetryTimeout, maxTimeout: 3 * 1e3 }; } retryOptions; getDeploymentDetails = async (deploymentId) => { const deploymentStatus = await this.getDeploymentStatus(deploymentId); if (deploymentStatus === DeploymentPipelinesStatus.ERROR) { const tasksDescriptions = await this.getDeploymentTasksDescriptions(deploymentId); return DeploymentStatus.Error({ deploymentError: new CliError({ code: CliErrorCode.DeploymentPipelineFailed({ tasksDescriptions }), cause: null }) }); } return DeploymentStatus.Success(); }; getDeploymentStatus = async (deploymentId) => { try { return await pWaitFor( async () => { const { data } = await pRetry( () => this.httpClient.request(getDeployment({ deploymentId })), this.retryOptions ); const result = getDeploymentSchema.safeParse(data); if (!result.success) { throw new CliError({ code: CliErrorCode.InvalidGetDeploymentResponse(), cause: result.error, info: { data } }); } const { deploymentPipelinesStatus: status } = result.data.deployment; if (status === DeploymentPipelinesStatus.IN_PROGRESS) { return false; } return pWaitFor.resolveWith(status); }, { // Poll each 2 seconds interval: pollInterval ?? 2 * 1e3, // Fail if 2 minutes passed timeout: 2 * 60 * 1e3 } ); } catch (error) { throw new CliError({ code: CliErrorCode.FailedToGetDeploymentStatus(), cause: error }); } }; getDeploymentTasksDescriptions = async (deploymentId) => { try { const { data } = await pRetry( () => this.httpClient.request( getDeploymentPipelineDescription({ deploymentId, deploymentPipelinesIds: [VELO_PIPELINE_ID] }) ), this.retryOptions ); const result = getDeploymentPipelineDescriptionSchema.safeParse(data); if (!result.success) { throw new CliError({ code: CliErrorCode.InvalidGetDeploymentPipelineDescriptionResponse(), cause: result.error, info: { data } }); } const veloPipeline = result.data.pipelinesDescription.find( (item) => item.deploymentPipelineId === VELO_PIPELINE_ID ); return veloPipeline?.tasksDescriptions ?? []; } catch (e) { throw new CliError({ code: CliErrorCode.FailedToGetDeploymentPipelineDescription(), cause: e }); } }; publishDeployment = async (deploymentId) => { try { await this.httpClient.request( publishDeployment({ deploymentId, skipPipelineCheck: true }) ); } catch (error) { throw new CliError({ code: CliErrorCode.FailedToPublishDeployment(), cause: error }); } }; }; // ../document-management-client/src/useDocumentManagementClient.ts init_esm_shims(); var import_react = __toESM(require_react(), 1); function useDocumentManagementClient() { const httpClient = useHttpClient({ type: "editor" }); const client = (0, import_react.useMemo)( () => new DocumentManagementClient(httpClient), [httpClient] ); return usePanoramaMethodLogger(client); } // ../document-management-client/src/index.ts init_esm_shims(); export { DeploymentStatus, useDocumentManagementClient }; //# sourceMappingURL=chunk-KE2Z2XVZ.js.map