UNPKG

@wix/cli

Version:

CLI tool for building Wix sites and applications

486 lines (476 loc) 15.3 kB
import { createRequire as _createRequire } from 'node:module'; const require = _createRequire(import.meta.url); import { require_lodash } from "./chunk-J5YVHTPQ.js"; import { useHttpClient } from "./chunk-NPIBHDAX.js"; import { pRetry, resolveUrl, serializer, toURLSearchParams } from "./chunk-PLPLA7N3.js"; import { require_react } from "./chunk-5A5B2WR4.js"; import { getTestOverrides } from "./chunk-WYHHEOWO.js"; import { z } from "./chunk-ZXYGJZOO.js"; import { CliError, CliErrorCode } from "./chunk-D5VYILRO.js"; import { __toESM, init_esm_shims } from "./chunk-4EFJZ3GQ.js"; // ../backend-as-a-service-client/src/useBackendAsAServiceClient.ts init_esm_shims(); var import_react = __toESM(require_react(), 1); // ../backend-as-a-service-client/src/backend-as-a-service-client.ts init_esm_shims(); var import_lodash = __toESM(require_lodash(), 1); // ../../node_modules/@wix/ambassador-velo-backend-v1-app-deployment/build/es/http.impl.js init_esm_shims(); var _appDeployment = { createdDate: "google.protobuf.Timestamp", updatedDate: "google.protobuf.Timestamp" }; var _completeAppDeploymentRequest = { appDeployment: "_appDeployment" }; var _completeAppDeploymentResponse = { appDeployment: "_appDeployment" }; var _createAppDeploymentRequest = { appDeployment: "_appDeployment" }; var _createAppDeploymentResponse = { appDeployment: "_appDeployment" }; function resolveWixVeloBackendV1AppDeploymentManagementUrl(opts) { var domainToMappings = { "manage._base_domain_": [ { srcPath: "/_api/wix-code-app-deployments", destPath: "" } ] }; return resolveUrl(Object.assign(opts, { domainToMappings })); } function createAppDeployment(payload) { var _a = serializer(_createAppDeploymentRequest, { _appDeployment }), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_createAppDeploymentResponse, { _appDeployment }).fromJSON; function __createAppDeployment(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_deployment", method: "POST", methodFqn: "wix.velo.backend.v1.AppDeploymentManagement.CreateAppDeployment", url: resolveWixVeloBackendV1AppDeploymentManagementUrl({ protoPath: "/v1/app-projects/{appDeployment.appProjectId}/app-deployments", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __createAppDeployment.fromReq = fromReq; __createAppDeployment.__isAmbassador = true; return __createAppDeployment; } function completeAppDeployment(payload) { var _a = serializer(_completeAppDeploymentRequest, { _appDeployment }), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_completeAppDeploymentResponse, { _appDeployment }).fromJSON; function __completeAppDeployment(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_deployment", method: "POST", methodFqn: "wix.velo.backend.v1.AppDeploymentManagement.CompleteAppDeployment", url: resolveWixVeloBackendV1AppDeploymentManagementUrl({ protoPath: "/v1/app-projects/{appDeployment.appProjectId}/app-deployments/{appDeployment.id}/complete", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __completeAppDeployment.fromReq = fromReq; __completeAppDeployment.__isAmbassador = true; return __completeAppDeployment; } // ../../node_modules/@wix/ambassador-velo-backend-v1-app-project/build/es/http.impl.js init_esm_shims(); var _appProject = { createdDate: "google.protobuf.Timestamp", updatedDate: "google.protobuf.Timestamp" }; var _createAppProjectRequest = { appProject: "_appProject" }; var _createAppProjectResponse = { appProject: "_appProject" }; function resolveWixVeloBackendV1AppProjectLifecycleUrl(opts) { var domainToMappings = { "manage._base_domain_": [ { srcPath: "/_api/wix-code-app-projects", destPath: "" } ] }; return resolveUrl(Object.assign(opts, { domainToMappings })); } function createAppProject(payload) { var _a = serializer(_createAppProjectRequest, { _appProject }), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_createAppProjectResponse, { _appProject }).fromJSON; function __createAppProject(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_project", method: "POST", methodFqn: "wix.velo.backend.v1.AppProjectLifecycle.CreateAppProject", url: resolveWixVeloBackendV1AppProjectLifecycleUrl({ protoPath: "/v1/app-projects", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __createAppProject.fromReq = fromReq; __createAppProject.__isAmbassador = true; return __createAppProject; } // ../../node_modules/@wix/ambassador-velo-backend-v1-app-environment/build/es/http.impl.js init_esm_shims(); var _appEnvironment = { createdDate: "google.protobuf.Timestamp", updatedDate: "google.protobuf.Timestamp" }; var _getAppEnvironmentByNameRequest = {}; var _getAppEnvironmentByNameResponse = { appEnvironment: "_appEnvironment" }; var _removeAppEnvironmentVariablesRequest = {}; var _removeAppEnvironmentVariablesResponse = { appEnvironment: "_appEnvironment" }; var _upsertAppEnvironmentRequest = { fieldMask: "google.protobuf.FieldMask", appEnvironment: "_appEnvironment" }; var _upsertAppEnvironmentResponse = { appEnvironment: "_appEnvironment" }; function resolveWixVeloBackendV1AppEnvironmentManagementUrl(opts) { var domainToMappings = { "manage._base_domain_": [ { srcPath: "/_api/wix-code-app-environments", destPath: "" } ] }; return resolveUrl(Object.assign(opts, { domainToMappings })); } function upsertAppEnvironment(payload) { var _a = serializer(_upsertAppEnvironmentRequest, { _appEnvironment }), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_upsertAppEnvironmentResponse, { _appEnvironment }).fromJSON; function __upsertAppEnvironment(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_environment", method: "POST", methodFqn: "wix.velo.backend.v1.AppEnvironmentManagement.UpsertAppEnvironment", url: resolveWixVeloBackendV1AppEnvironmentManagementUrl({ protoPath: "/v1/app-projects/{appEnvironment.appProjectId}/app-environments/upsert/name/{appEnvironment.name}", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __upsertAppEnvironment.fromReq = fromReq; __upsertAppEnvironment.__isAmbassador = true; return __upsertAppEnvironment; } function getAppEnvironmentByName(payload) { var _a = serializer(_getAppEnvironmentByNameRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_getAppEnvironmentByNameResponse, { _appEnvironment }).fromJSON; function __getAppEnvironmentByName(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_environment", method: "GET", methodFqn: "wix.velo.backend.v1.AppEnvironmentManagement.GetAppEnvironmentByName", url: resolveWixVeloBackendV1AppEnvironmentManagementUrl({ protoPath: "/v1/app-projects/{appProjectId}/app-environments/name/{appEnvironmentName}", data: serializedData, host }), params: toURLSearchParams(serializedData), transformResponse: fromRes }; return metadata; } __getAppEnvironmentByName.fromReq = fromReq; __getAppEnvironmentByName.__isAmbassador = true; return __getAppEnvironmentByName; } function removeAppEnvironmentVariables(payload) { var _a = serializer(_removeAppEnvironmentVariablesRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_removeAppEnvironmentVariablesResponse, { _appEnvironment }).fromJSON; function __removeAppEnvironmentVariables(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.velo.backend.v1.app_environment", method: "POST", methodFqn: "wix.velo.backend.v1.AppEnvironmentManagement.RemoveAppEnvironmentVariables", url: resolveWixVeloBackendV1AppEnvironmentManagementUrl({ protoPath: "/v1/app-projects/{appProjectId}/app-environments/{appEnvironmentId}/remove", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __removeAppEnvironmentVariables.fromReq = fromReq; __removeAppEnvironmentVariables.__isAmbassador = true; return __removeAppEnvironmentVariables; } // ../backend-as-a-service-client/src/schemas.ts init_esm_shims(); var staticFileMetadata = z.object({ path: z.string(), hash: z.string(), size: z.number().optional(), contentType: z.string().optional().nullable() }); var StaticFileUploadUrlSchema = z.object({ uploadUrl: z.string().url(), staticFileMetadata }); var AppDeploymentSchema = z.object({ id: z.string().uuid(), deploymentBaseUrl: z.string() }).passthrough(); var CompleteAppDeploymentSchema = z.object({ appDeployment: AppDeploymentSchema }); var AppEnvironmentSchema = z.object({ appEnvironment: z.object({ id: z.string(), variables: z.record(z.string()), secrets: z.record(z.string()) }).passthrough() }); var CreateAppProjectSchema = z.object({ appProject: z.object({ id: z.string().uuid(), baseUrl: z.string().url() }) }); var CreateAppDeploymentSchema = z.object({ staticFilesUploadUrls: z.array(StaticFileUploadUrlSchema).optional(), uploadAuthToken: z.string(), appDeployment: AppDeploymentSchema.optional() }); var StaticFileUploadSchema = z.object({ result: z.object({ // The `jwt` field is optional because it is only returned in the last file upload. jwt: z.string().optional() }).optional() }).passthrough(); // ../backend-as-a-service-client/src/backend-as-a-service-client.ts var { minRetryTimeout } = getTestOverrides(); var APP_PROJECT_TYPE_ID = "35252494-7615-4117-9c4c-53ae7d3be95f"; var BackendAsAServiceClient = class { constructor(httpClient) { this.httpClient = httpClient; this.retryOptions = { retries: 3, minTimeout: minRetryTimeout, maxTimeout: 3 * 1e3 }; } retryOptions; createAppProject = async (appId, projectName) => { try { const { data } = await this.httpClient.request( createAppProject({ appProject: { id: appId, displayName: projectName, slug: (0, import_lodash.kebabCase)(projectName), appProjectTypeId: APP_PROJECT_TYPE_ID } }) ); return CreateAppProjectSchema.parse(data); } catch (e) { throw new CliError({ code: CliErrorCode.FailedCreatingAppProject(), cause: e }); } }; createAppDeployment = async (appId, staticFilesMetadata) => { try { const { data } = await pRetry( () => this.httpClient.request( createAppDeployment({ appDeployment: { appProjectId: appId, staticFilesMetadata } }) ), this.retryOptions ); return CreateAppDeploymentSchema.parse(data); } catch (e) { throw new CliError({ code: CliErrorCode.FailedCreatingAppDeployment(), cause: e }); } }; completeAppDeployment = async (appDeployment, staticsCompletionToken) => { try { const { data } = await pRetry( () => this.httpClient.request( completeAppDeployment({ appDeployment, staticsCompletionToken }) ), this.retryOptions ); return CompleteAppDeploymentSchema.parse(data).appDeployment; } catch (e) { throw new CliError({ code: CliErrorCode.FailedFinalizingAppDeployment(), cause: e }); } }; postForm = async (endpointUrl, token, formData) => { try { const responseJson = await pRetry( async () => { const response = await fetch(endpointUrl, { method: "POST", headers: { Authorization: `Bearer ${token}` }, body: formData }); if (!response.ok) { throw new Error(response.statusText); } return response.json(); }, { retries: 3 } ); return StaticFileUploadSchema.parse(responseJson); } catch (e) { throw new CliError({ code: CliErrorCode.FailedToUploadStaticFiles(), cause: e }); } }; // Env management getAppEnvironmentByName = async (appId, environment) => { try { const { data } = await pRetry( () => this.httpClient.request( getAppEnvironmentByName({ appProjectId: appId, appEnvironmentName: environment }) ), this.retryOptions ); return AppEnvironmentSchema.parse(data).appEnvironment; } catch (e) { throw new CliError({ code: CliErrorCode.FailedToPullEnvironment(), cause: e }); } }; upsertAppEnvironment = async (appId, environment, variables) => { try { const { data } = await this.httpClient.request( upsertAppEnvironment({ appEnvironment: { appProjectId: appId, name: environment, variables } }) ); return AppEnvironmentSchema.parse(data).appEnvironment; } catch (e) { throw new CliError({ code: CliErrorCode.FailedToSetEnvironmentVariable(), cause: e }); } }; removeAppEnvironmentVariable = async (appId, environment, variable) => { try { const appEnvironment = await this.getAppEnvironmentByName( appId, environment ); const { data } = await pRetry( () => this.httpClient.request( removeAppEnvironmentVariables({ appEnvironmentId: appEnvironment.id, appProjectId: appId, variables: [variable] }) ), this.retryOptions ); return AppEnvironmentSchema.parse(data).appEnvironment; } catch (e) { throw new CliError({ code: CliErrorCode.FailedToRemoveEnvironmentVariable(), cause: e }); } }; }; // ../backend-as-a-service-client/src/useBackendAsAServiceClient.ts function useBackendAsAServiceClient() { const httpClient = useHttpClient({ type: "backoffice" }); return (0, import_react.useMemo)(() => new BackendAsAServiceClient(httpClient), [httpClient]); } // ../backend-as-a-service-client/src/index.ts init_esm_shims(); export { useBackendAsAServiceClient }; //# sourceMappingURL=chunk-FY52VUHM.js.map