UNPKG

@wix/cli

Version:

CLI tool for building Wix sites and applications

911 lines (893 loc) 34.8 kB
import { createRequire as _createRequire } from 'node:module'; const require = _createRequire(import.meta.url); import { wixCliAppsFlowTunnelCreationStatusSrc11Evid5233 } from "./chunk-GO3JYNZE.js"; import { execa } from "./chunk-RWTQFIPN.js"; import { useHttpClient } from "./chunk-NPIBHDAX.js"; import { pRetry, resolveUrl, serializer, toURLSearchParams } from "./chunk-PLPLA7N3.js"; import { useBiLogger } from "./chunk-EH3J5VW4.js"; import { require_react } from "./chunk-5A5B2WR4.js"; import { getTestOverrides } from "./chunk-WYHHEOWO.js"; import { pathExists } from "./chunk-P4ZPHTFX.js"; import { z } from "./chunk-ZXYGJZOO.js"; import { CliError, CliErrorCode } from "./chunk-D5VYILRO.js"; import { __commonJS, __dirname, __require, __toESM, init_esm_shims } from "./chunk-4EFJZ3GQ.js"; // ../../node_modules/cloudflared/lib/constants.js var require_constants = __commonJS({ "../../node_modules/cloudflared/lib/constants.js"(exports, module) { "use strict"; init_esm_shims(); var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var constants_exports = {}; __export(constants_exports, { CLOUDFLARED_VERSION: () => CLOUDFLARED_VERSION, DEFAULT_CLOUDFLARED_BIN: () => DEFAULT_CLOUDFLARED_BIN, RELEASE_BASE: () => RELEASE_BASE, bin: () => bin3, use: () => use }); module.exports = __toCommonJS(constants_exports); var import_node_path2 = __toESM2(__require("node:path")); var DEFAULT_CLOUDFLARED_BIN = import_node_path2.default.join(__dirname, "..", "bin", process.platform === "win32" ? "cloudflared.exe" : "cloudflared"); var bin3 = process.env.CLOUDFLARED_BIN || DEFAULT_CLOUDFLARED_BIN; function use(executable) { bin3 = executable; } var CLOUDFLARED_VERSION = process.env.CLOUDFLARED_VERSION || "latest"; var RELEASE_BASE = "https://github.com/cloudflare/cloudflared/releases/"; } }); // ../../node_modules/cloudflared/lib/error.js var require_error = __commonJS({ "../../node_modules/cloudflared/lib/error.js"(exports, module) { "use strict"; init_esm_shims(); var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var error_exports = {}; __export(error_exports, { UnsupportedError: () => UnsupportedError }); module.exports = __toCommonJS(error_exports); var UnsupportedError = class extends Error { constructor(message) { super(message); } }; } }); // ../../node_modules/cloudflared/lib/install.js var require_install = __commonJS({ "../../node_modules/cloudflared/lib/install.js"(exports, module) { "use strict"; init_esm_shims(); var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var install_exports = {}; __export(install_exports, { install: () => install3, install_linux: () => install_linux, install_macos: () => install_macos, install_windows: () => install_windows }); module.exports = __toCommonJS(install_exports); var import_node_fs = __toESM2(__require("node:fs")); var import_node_path2 = __toESM2(__require("node:path")); var import_node_https = __toESM2(__require("node:https")); var import_node_child_process = __require("node:child_process"); var import_constants = require_constants(); var import_error = require_error(); var LINUX_URL = { arm64: "cloudflared-linux-arm64", arm: "cloudflared-linux-arm", x64: "cloudflared-linux-amd64", ia32: "cloudflared-linux-386" }; var MACOS_URL = { arm64: "cloudflared-darwin-amd64.tgz", x64: "cloudflared-darwin-amd64.tgz" }; var WINDOWS_URL = { x64: "cloudflared-windows-amd64.exe", ia32: "cloudflared-windows-386.exe" }; function resolve_base(version) { if (version === "latest") { return `${import_constants.RELEASE_BASE}latest/download/`; } return `${import_constants.RELEASE_BASE}download/${version}/`; } async function install3(to, version = import_constants.CLOUDFLARED_VERSION) { if (process.platform === "linux") { return install_linux(to, version); } else if (process.platform === "darwin") { return install_macos(to, version); } else if (process.platform === "win32") { return install_windows(to, version); } else { throw new import_error.UnsupportedError("Unsupported platform: " + process.platform); } } async function install_linux(to, version = import_constants.CLOUDFLARED_VERSION) { const file = LINUX_URL[process.arch]; if (file === void 0) { throw new import_error.UnsupportedError("Unsupported architecture: " + process.arch); } await download(resolve_base(version) + file, to); import_node_fs.default.chmodSync(to, "755"); return to; } async function install_macos(to, version = import_constants.CLOUDFLARED_VERSION) { const file = MACOS_URL[process.arch]; if (file === void 0) { throw new import_error.UnsupportedError("Unsupported architecture: " + process.arch); } await download(resolve_base(version) + file, `${to}.tgz`); process.env.VERBOSE && console.log(`Extracting to ${to}`); (0, import_node_child_process.execSync)(`tar -xzf ${import_node_path2.default.basename(`${to}.tgz`)}`, { cwd: import_node_path2.default.dirname(to) }); import_node_fs.default.unlinkSync(`${to}.tgz`); import_node_fs.default.renameSync(`${import_node_path2.default.dirname(to)}/cloudflared`, to); return to; } async function install_windows(to, version = import_constants.CLOUDFLARED_VERSION) { const file = WINDOWS_URL[process.arch]; if (file === void 0) { throw new import_error.UnsupportedError("Unsupported architecture: " + process.arch); } await download(resolve_base(version) + file, to); return to; } function download(url, to, redirect = 0) { if (redirect === 0) { process.env.VERBOSE && console.log(`Downloading ${url} to ${to}`); } else { process.env.VERBOSE && console.log(`Redirecting to ${url}`); } if (!import_node_fs.default.existsSync(import_node_path2.default.dirname(to))) { import_node_fs.default.mkdirSync(import_node_path2.default.dirname(to), { recursive: true }); } return new Promise((resolve, reject) => { const request = import_node_https.default.get(url, (res) => { const redirect_code = [301, 302, 303, 307, 308]; if (redirect_code.includes(res.statusCode) && res.headers.location !== void 0) { request.destroy(); const redirection = res.headers.location; resolve(download(redirection, to, redirect + 1)); return; } if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) { const file = import_node_fs.default.createWriteStream(to); file.on("finish", () => { file.close(() => resolve(to)); }); file.on("error", (err) => { import_node_fs.default.unlink(to, () => reject(err)); }); res.pipe(file); } else { request.destroy(); reject(new Error(`HTTP response with status code: ${res.statusCode}`)); } }); request.on("error", (err) => { reject(err); }); request.end(); }); } } }); // ../../node_modules/cloudflared/lib/regex.js var require_regex = __commonJS({ "../../node_modules/cloudflared/lib/regex.js"(exports, module) { "use strict"; init_esm_shims(); var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var regex_exports = {}; __export(regex_exports, { config_regex: () => config_regex, conn_regex: () => conn_regex, connectorID_regex: () => connectorID_regex, disconnect_regex: () => disconnect_regex, index_regex: () => index_regex, ip_regex: () => ip_regex, location_regex: () => location_regex, metrics_regex: () => metrics_regex, tunnelID_regex: () => tunnelID_regex }); module.exports = __toCommonJS(regex_exports); var conn_regex = /connection[= ]([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i; var ip_regex = /ip=([0-9.]+)/; var location_regex = /location=([A-Za-z0-9]+)/; var index_regex = /connIndex=(\d)/; var disconnect_regex = /Unregistered tunnel connection connIndex=(\d)/i; var tunnelID_regex = /tunnelID=([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i; var connectorID_regex = /Connector ID: ([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12})/i; var metrics_regex = /metrics server on ([0-9.:]+\/metrics)/; var config_regex = /config="(.+[^\\])"/; } }); // ../../node_modules/cloudflared/lib/tunnel.js var require_tunnel = __commonJS({ "../../node_modules/cloudflared/lib/tunnel.js"(exports, module) { "use strict"; init_esm_shims(); var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var tunnel_exports = {}; __export(tunnel_exports, { tunnel: () => tunnel2 }); module.exports = __toCommonJS(tunnel_exports); var import_node_child_process = __require("node:child_process"); var import_constants = require_constants(); var import_regex = require_regex(); function tunnel2(options = {}) { const args = ["tunnel"]; for (const [key, value] of Object.entries(options)) { if (typeof value === "string") { args.push(`${key}`, value); } else if (typeof value === "number") { args.push(`${key}`, value.toString()); } else if (value === null) { args.push(`${key}`); } } if (args.length === 1) { args.push("--url", "localhost:8080"); } const child = (0, import_node_child_process.spawn)(import_constants.bin, args, { stdio: ["ignore", "pipe", "pipe"] }); if (process.env.VERBOSE) { child.stdout.pipe(process.stdout); child.stderr.pipe(process.stderr); } const url_regex = /\|\s+(https?:\/\/[^\s]+)/; let url_resolver = () => void 0; let url_rejector = () => void 0; const url = new Promise((...pair) => [url_resolver, url_rejector] = pair); const connection_resolvers = []; const connection_rejectors = []; const connections = []; for (let i = 0; i < 1; i++) { connections.push(new Promise((...pair) => [connection_resolvers[i], connection_rejectors[i]] = pair)); } const parser = (data) => { var _a; const str = data.toString(); const url_match = str.match(url_regex); url_match && url_resolver(url_match[1]); const conn_match = str.match(import_regex.conn_regex); const ip_match = str.match(import_regex.ip_regex); const location_match = str.match(import_regex.location_regex); const index_match = str.match(import_regex.index_regex); if (conn_match && ip_match && location_match && index_match) { const [, id] = conn_match; const [, ip] = ip_match; const [, location] = location_match; const [, idx] = index_match; (_a = connection_resolvers[+idx]) == null ? void 0 : _a.call(connection_resolvers, { id, ip, location }); } }; child.stdout.on("data", parser).on("error", url_rejector); child.stderr.on("data", parser).on("error", url_rejector); const stop = () => child.kill("SIGINT"); return { url, connections, child, stop }; } } }); // ../../node_modules/cloudflared/lib/service.js var require_service = __commonJS({ "../../node_modules/cloudflared/lib/service.js"(exports, module) { "use strict"; init_esm_shims(); var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var service_exports = {}; __export(service_exports, { AlreadyInstalledError: () => AlreadyInstalledError2, LINUX_SERVICE_PATH: () => LINUX_SERVICE_PATH, MACOS_SERVICE_PATH: () => MACOS_SERVICE_PATH2, NotInstalledError: () => NotInstalledError2, clean: () => clean, current: () => current, err: () => err, exists: () => exists, identifier: () => identifier2, install: () => install3, journal: () => journal, log: () => log, service: () => service2, service_name: () => service_name, uninstall: () => uninstall }); module.exports = __toCommonJS(service_exports); var import_node_os = __toESM2(__require("node:os")); var import_node_fs = __toESM2(__require("node:fs")); var import_node_child_process = __require("node:child_process"); var import_constants = require_constants(); var import_regex = require_regex(); var identifier2 = "com.cloudflare.cloudflared"; var service_name = "cloudflared.service"; var MACOS_SERVICE_PATH2 = { PLIST: is_root() ? `/Library/LaunchDaemons/${identifier2}.plist` : `${import_node_os.default.homedir()}/Library/LaunchAgents/${identifier2}.plist`, OUT: is_root() ? `/Library/Logs/${identifier2}.out.log` : `${import_node_os.default.homedir()}/Library/Logs/${identifier2}.out.log`, ERR: is_root() ? `/Library/Logs/${identifier2}.err.log` : `${import_node_os.default.homedir()}/Library/Logs/${identifier2}.err.log` }; var LINUX_SERVICE_PATH = { SYSTEMD: `/etc/systemd/system/${service_name}`, SERVICE: "/etc/init.d/cloudflared", SERVICE_OUT: "/var/log/cloudflared.log", SERVICE_ERR: "/var/log/cloudflared.err" }; var service2 = { install: install3, uninstall, exists, log, err, current, clean, journal }; var AlreadyInstalledError2 = class extends Error { constructor() { super("service is already installed"); } }; var NotInstalledError2 = class extends Error { constructor() { super("service is not installed"); } }; function install3(token) { if (!["darwin", "linux"].includes(process.platform)) { throw new Error(`Not Implemented on platform ${process.platform}`); } if (exists()) { throw new AlreadyInstalledError2(); } const args = ["service", "install"]; if (token) { args.push(token); } const result = (0, import_node_child_process.spawnSync)(import_constants.bin, args); if (result.status !== 0) { throw new Error(`service install failed: ${result.stderr.toString()}`); } } function uninstall() { if (!["darwin", "linux"].includes(process.platform)) { throw new Error(`Not Implemented on platform ${process.platform}`); } if (!exists()) { throw new NotInstalledError2(); } const result = (0, import_node_child_process.spawnSync)(import_constants.bin, ["service", "uninstall"]); if (result.status !== 0) { throw new Error(`service uninstall failed: ${result.stderr.toString()}`); } if (process.platform === "darwin") { import_node_fs.default.rmSync(MACOS_SERVICE_PATH2.OUT); import_node_fs.default.rmSync(MACOS_SERVICE_PATH2.ERR); } else if (process.platform === "linux" && !is_systemd()) { import_node_fs.default.rmSync(LINUX_SERVICE_PATH.SERVICE_OUT); import_node_fs.default.rmSync(LINUX_SERVICE_PATH.SERVICE_ERR); } } function log() { if (!exists()) { throw new NotInstalledError2(); } if (process.platform === "darwin") { return import_node_fs.default.readFileSync(MACOS_SERVICE_PATH2.OUT, "utf8"); } if (process.platform === "linux" && !is_systemd()) { return import_node_fs.default.readFileSync(LINUX_SERVICE_PATH.SERVICE_OUT, "utf8"); } throw new Error(`Not Implemented on platform ${process.platform}`); } function err() { if (!exists()) { throw new NotInstalledError2(); } if (process.platform === "darwin") { return import_node_fs.default.readFileSync(MACOS_SERVICE_PATH2.ERR, "utf8"); } if (process.platform === "linux" && !is_systemd()) { return import_node_fs.default.readFileSync(LINUX_SERVICE_PATH.SERVICE_ERR, "utf8"); } throw new Error(`Not Implemented on platform ${process.platform}`); } function journal(n = 300) { if (process.platform === "linux" && is_systemd()) { const args = ["-u", service_name, "-o", "cat", "-n", n.toString()]; return (0, import_node_child_process.spawnSync)("journalctl", args).stdout.toString(); } throw new Error(`Not Implemented on platform ${process.platform}`); } function current() { var _a, _b, _c, _d; if (!["darwin", "linux"].includes(process.platform)) { throw new Error(`Not Implemented on platform ${process.platform}`); } if (!exists()) { throw new NotInstalledError2(); } const log2 = is_systemd() ? journal() : err(); let tunnelID = ""; let connectorID = ""; const connections = []; let metrics = ""; let config = {}; for (const line of log2.split("\n")) { try { if (line.match(import_regex.tunnelID_regex)) { tunnelID = ((_a = line.match(import_regex.tunnelID_regex)) == null ? void 0 : _a[1]) ?? ""; } else if (line.match(import_regex.connectorID_regex)) { connectorID = ((_b = line.match(import_regex.connectorID_regex)) == null ? void 0 : _b[1]) ?? ""; } else if (line.match(import_regex.conn_regex) && line.match(import_regex.location_regex) && line.match(import_regex.ip_regex) && line.match(import_regex.index_regex)) { const [, id] = line.match(import_regex.conn_regex) ?? []; const [, location] = line.match(import_regex.location_regex) ?? []; const [, ip] = line.match(import_regex.ip_regex) ?? []; const [, idx] = line.match(import_regex.index_regex) ?? []; connections[parseInt(idx)] = { id, ip, location }; } else if (line.match(import_regex.disconnect_regex)) { const [, idx] = line.match(import_regex.disconnect_regex) ?? []; if (parseInt(idx) in connections) { connections[parseInt(idx)] = { id: "", ip: "", location: "" }; } } else if (line.match(import_regex.metrics_regex)) { metrics = ((_c = line.match(import_regex.metrics_regex)) == null ? void 0 : _c[1]) ?? ""; } else if (line.match(import_regex.config_regex)) { config = JSON.parse(((_d = line.match(import_regex.config_regex)) == null ? void 0 : _d[1].replace(/\\/g, "")) ?? "{}"); } } catch (err2) { if (process.env.VERBOSE) { console.error("log parsing failed", err2); } } } return { tunnelID, connectorID, connections, metrics, config }; } function clean() { if (process.platform !== "darwin") { throw new Error(`Not Implemented on platform ${process.platform}`); } if (exists()) { throw new AlreadyInstalledError2(); } import_node_fs.default.rmSync(MACOS_SERVICE_PATH2.OUT, { force: true }); import_node_fs.default.rmSync(MACOS_SERVICE_PATH2.ERR, { force: true }); } function exists() { if (process.platform === "darwin") { return import_node_fs.default.existsSync(MACOS_SERVICE_PATH2.PLIST); } else if (process.platform === "linux") { return is_systemd() ? import_node_fs.default.existsSync(LINUX_SERVICE_PATH.SYSTEMD) : import_node_fs.default.existsSync(LINUX_SERVICE_PATH.SERVICE); } throw new Error(`Not Implemented on platform ${process.platform}`); } function is_root() { var _a; return ((_a = process.getuid) == null ? void 0 : _a.call(process)) === 0; } function is_systemd() { return process.platform === "linux" && import_node_fs.default.existsSync("/run/systemd/system"); } } }); // ../../node_modules/cloudflared/lib/lib.js var require_lib = __commonJS({ "../../node_modules/cloudflared/lib/lib.js"(exports, module) { "use strict"; init_esm_shims(); var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var lib_exports = {}; __export(lib_exports, { AlreadyInstalledError: () => import_service.AlreadyInstalledError, MACOS_SERVICE_PATH: () => import_service.MACOS_SERVICE_PATH, NotInstalledError: () => import_service.NotInstalledError, bin: () => import_constants.bin, identifier: () => import_service.identifier, install: () => import_install.install, service: () => import_service.service, tunnel: () => import_tunnel3.tunnel }); module.exports = __toCommonJS(lib_exports); var import_constants = require_constants(); var import_install = require_install(); var import_tunnel3 = require_tunnel(); var import_service = require_service(); } }); // ../cli-tunnel/src/tunnel.ts init_esm_shims(); import { dirname } from "node:path"; var import_cloudflared = __toESM(require_lib(), 1); async function launchTunnel(port, tunnelClient) { const { localTunnel } = getTestOverrides(); if (!localTunnel && !await pathExists(import_cloudflared.bin)) { try { await (0, import_cloudflared.install)(import_cloudflared.bin); } catch (e) { const err = e; if (e instanceof Error && err.code === "EACCES") { throw new CliError({ code: CliErrorCode.FailedInstallCloudflareNoAccess({ path: dirname(err.path) }), cause: e }); } throw e; } } const tunnel2 = await tunnelClient.createTunnel({ port }); const domain = `http${localTunnel ? "" : "s"}://${tunnel2.domain}`; const createTunnelPromise = new Promise((resolve, reject) => { const tunnelProcess = localTunnel ? execa("echo", [tunnel2.domain, tunnel2.token], { detached: true }) : execa(import_cloudflared.bin, ["tunnel", "run", "--token", tunnel2.token]); const close = () => { tunnelProcess.kill(); }; const listener = async (data) => { const output = data.toString(); const match = output.match(tunnel2.domain)?.[0]; if (match) { resolve({ domain, close }); } }; tunnelProcess.stderr?.on("data", listener); tunnelProcess.stdout?.on("data", listener); tunnelProcess.on("error", (err) => { reject(err); }); }); return { domain, close: async () => { const tunnel3 = await createTunnelPromise; return tunnel3.close(); } }; } // ../cli-tunnel/src/client.ts init_esm_shims(); // ../../node_modules/@wix/ambassador-apps-hosting-v1-deployment/build/es/http.impl.js init_esm_shims(); var _createTunnelRequest = {}; var _createTunnelResponse = {}; var _deleteTunnelRequest = {}; var _deleteTunnelResponse = {}; function resolveWixAppsHostingV1BackendServiceUrl(opts) { var domainToMappings = { "bo._base_domain_": [ { srcPath: "/_serverless/wix-app-backend-manager", destPath: "" } ], "wixbo.ai": [ { srcPath: "/_serverless/wix-app-backend-manager", destPath: "" } ], "wix-bo.com": [ { srcPath: "/_serverless/wix-app-backend-manager", destPath: "" } ], "manage._base_domain_": [ { srcPath: "/_serverless/wix-app-backend-manager", destPath: "" } ] }; return resolveUrl(Object.assign(opts, { domainToMappings })); } function createTunnel(payload) { var _a = serializer(_createTunnelRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_createTunnelResponse, {}).fromJSON; function __createTunnel(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.apps.hosting.v1.deployment", method: "POST", methodFqn: "wix.apps.hosting.v1.BackendService.CreateTunnel", url: resolveWixAppsHostingV1BackendServiceUrl({ protoPath: "/v1/tunnel", data: serializedData, host }), data: serializedData, transformResponse: fromRes }; return metadata; } __createTunnel.fromReq = fromReq; __createTunnel.__isAmbassador = true; return __createTunnel; } function deleteTunnel(payload) { var _a = serializer(_deleteTunnelRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON; var fromRes = serializer(_deleteTunnelResponse, {}).fromJSON; function __deleteTunnel(_a2) { var host = _a2.host; var serializedData = toReq(payload); var metadata = { entityFqdn: "wix.apps.hosting.v1.deployment", method: "DELETE", methodFqn: "wix.apps.hosting.v1.BackendService.DeleteTunnel", url: resolveWixAppsHostingV1BackendServiceUrl({ protoPath: "/v1/tunnel", data: serializedData, host }), params: toURLSearchParams(serializedData), transformResponse: fromRes }; return metadata; } __deleteTunnel.fromReq = fromReq; __deleteTunnel.__isAmbassador = true; return __deleteTunnel; } // ../cli-tunnel/src/schemas.ts init_esm_shims(); var createTunnelSchema = z.object({ id: z.string(), token: z.string(), domain: z.string() }); // ../cli-tunnel/src/client.ts var TunnelClient = class { constructor(httpClient) { this.httpClient = httpClient; const { minRetryTimeout } = getTestOverrides(); this.retryOptions = { retries: 3, minTimeout: minRetryTimeout, maxTimeout: 3 * 1e3 }; } retryOptions; createTunnel = async ({ port }) => { try { const { data } = await pRetry( () => this.httpClient.request(createTunnel({ port })), this.retryOptions ); return createTunnelSchema.parse(data); } catch (error) { throw new CliError({ code: CliErrorCode.FailedToCreateTunnel(), cause: error }); } }; deleteTunnel = async (tunnelId) => { try { await pRetry( () => this.httpClient.request(deleteTunnel({ id: tunnelId })), this.retryOptions ); } catch (error) { throw new CliError({ code: CliErrorCode.FailedToDeleteTunnel(), cause: error }); } }; }; // ../cli-tunnel/src/index.ts init_esm_shims(); // ../cli-tunnel/src/useTunnel.ts init_esm_shims(); var import_react2 = __toESM(require_react(), 1); // ../cli-tunnel/src/bi/events.ts init_esm_shims(); var wixCliTunnelBiEvents = (biLogger) => ({ tunnel: () => { const startTimestamp = Date.now(); return { finish: ({ isSuccess, failureReason }) => { void biLogger.report( wixCliAppsFlowTunnelCreationStatusSrc11Evid5233({ isSuccess, failureReason, tunnelCreationTime: Date.now() - startTimestamp }) ); } }; } }); // ../cli-tunnel/src/useTunnelClient.ts init_esm_shims(); var import_react = __toESM(require_react(), 1); function useTunnelClient() { const httpClient = useHttpClient({ type: "backoffice" }); return (0, import_react.useMemo)(() => new TunnelClient(httpClient), [httpClient]); } // ../cli-tunnel/src/useTunnel.ts function useTunnel() { const connectionRef = (0, import_react2.useRef)(); const tunnelClient = useTunnelClient(); const biLogger = useBiLogger(); (0, import_react2.useEffect)(() => { return () => { connectionRef.current?.close(); }; }, []); return (0, import_react2.useCallback)( async (port) => { const biEvents = wixCliTunnelBiEvents(biLogger); const tunnelCreationBi = biEvents.tunnel(); try { const tunnel2 = await launchTunnel(port, tunnelClient); connectionRef.current = tunnel2; tunnelCreationBi.finish({ isSuccess: true }); return { url: tunnel2.domain }; } catch (ex) { tunnelCreationBi.finish({ isSuccess: false, failureReason: ex instanceof Error ? ex.message : "Unknown error" }); throw ex; } }, [tunnelClient, biLogger] ); } export { launchTunnel, TunnelClient, useTunnel }; //# sourceMappingURL=chunk-QF7GRNRC.js.map