@pipelab/plugin-discord 1.0.0-beta.17 → 1.0.0-beta.19

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.
@@ -1,4 +1,4 @@
1
- import path from "node:path";
1
+ import path$1 from "node:path";
2
2
  import { tmpdir } from "node:os";
3
3
  import fs from "node:fs";
4
4
  import { execSync, spawn } from "node:child_process";
@@ -160,7 +160,7 @@ const parse = function(p) {
160
160
  name: base.slice(0, base.length - extension.length)
161
161
  };
162
162
  };
163
- const path$1 = {
163
+ const path = {
164
164
  __proto__: null,
165
165
  basename: basename$1,
166
166
  delimiter: ":",
@@ -181,7 +181,7 @@ const path$1 = {
181
181
  //#region ../../node_modules/untun/dist/chunks/index.mjs
182
182
  const CLOUDFLARED_VERSION = process.env.CLOUDFLARED_VERSION || "2023.10.0";
183
183
  const RELEASE_BASE = "https://github.com/cloudflare/cloudflared/releases/";
184
- const cloudflaredBinPath = path$1.join(tmpdir(), "node-untun", process.platform === "win32" ? `cloudflared.${CLOUDFLARED_VERSION}.exe` : `cloudflared.${CLOUDFLARED_VERSION}`);
184
+ const cloudflaredBinPath = path.join(tmpdir(), "node-untun", process.platform === "win32" ? `cloudflared.${CLOUDFLARED_VERSION}.exe` : `cloudflared.${CLOUDFLARED_VERSION}`);
185
185
  const cloudflaredNotice = `
186
186
  \u{1F525} Your installation of cloudflared software constitutes a symbol of your signature
187
187
  indicating that you accept the terms of the Cloudflare License, Terms and Privacy Policy.
@@ -232,9 +232,9 @@ async function installMacos(to, version = CLOUDFLARED_VERSION) {
232
232
  if (file === void 0) throw new Error("Unsupported architecture: " + process.arch);
233
233
  await download(resolveBase(version) + file, `${to}.tgz`);
234
234
  process.env.DEBUG && console.log(`Extracting to ${to}`);
235
- execSync(`tar -xzf ${path.basename(`${to}.tgz`)}`, { cwd: path.dirname(to) });
235
+ execSync(`tar -xzf ${path$1.basename(`${to}.tgz`)}`, { cwd: path$1.dirname(to) });
236
236
  fs.unlinkSync(`${to}.tgz`);
237
- fs.renameSync(`${path.dirname(to)}/cloudflared`, to);
237
+ fs.renameSync(`${path$1.dirname(to)}/cloudflared`, to);
238
238
  return to;
239
239
  }
240
240
  async function installWindows(to, version = CLOUDFLARED_VERSION) {
@@ -247,7 +247,7 @@ function download(url, to, redirect = 0) {
247
247
  if (redirect === 0) process.env.DEBUG && console.log(`Downloading ${url} to ${to}`);
248
248
  else process.env.DEBUG && console.log(`Redirecting to ${url}`);
249
249
  return new Promise((resolve, reject) => {
250
- if (!fs.existsSync(path.dirname(to))) fs.mkdirSync(path.dirname(to), { recursive: true });
250
+ if (!fs.existsSync(path$1.dirname(to))) fs.mkdirSync(path$1.dirname(to), { recursive: true });
251
251
  let done = true;
252
252
  const file = fs.createWriteStream(to);
253
253
  const request = https.get(url, (res) => {
@@ -327,4 +327,4 @@ function startCloudflaredTunnel(options = {}) {
327
327
  //#endregion
328
328
  export { cloudflaredBinPath, cloudflaredNotice, installCloudflared, startCloudflaredTunnel };
329
329
 
330
- //# sourceMappingURL=chunks-DUObX0Hn.mjs.map
330
+ //# sourceMappingURL=chunks-CfRneOgh.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks-CfRneOgh.mjs","names":["sep","delimiter","join","dirname","basename"],"sources":["../../../node_modules/untun/node_modules/pathe/dist/shared/pathe.ff20891b.mjs","../../../node_modules/untun/dist/chunks/index.mjs"],"sourcesContent":["const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\\//;\nfunction normalizeWindowsPath(input = \"\") {\n if (!input) {\n return input;\n }\n return input.replace(/\\\\/g, \"/\").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());\n}\n\nconst _UNC_REGEX = /^[/\\\\]{2}/;\nconst _IS_ABSOLUTE_RE = /^[/\\\\](?![/\\\\])|^[/\\\\]{2}(?!\\.)|^[A-Za-z]:[/\\\\]/;\nconst _DRIVE_LETTER_RE = /^[A-Za-z]:$/;\nconst _ROOT_FOLDER_RE = /^\\/([A-Za-z]:)?$/;\nconst sep = \"/\";\nconst delimiter = \":\";\nconst normalize = function(path) {\n if (path.length === 0) {\n return \".\";\n }\n path = normalizeWindowsPath(path);\n const isUNCPath = path.match(_UNC_REGEX);\n const isPathAbsolute = isAbsolute(path);\n const trailingSeparator = path[path.length - 1] === \"/\";\n path = normalizeString(path, !isPathAbsolute);\n if (path.length === 0) {\n if (isPathAbsolute) {\n return \"/\";\n }\n return trailingSeparator ? \"./\" : \".\";\n }\n if (trailingSeparator) {\n path += \"/\";\n }\n if (_DRIVE_LETTER_RE.test(path)) {\n path += \"/\";\n }\n if (isUNCPath) {\n if (!isPathAbsolute) {\n return `//./${path}`;\n }\n return `//${path}`;\n }\n return isPathAbsolute && !isAbsolute(path) ? `/${path}` : path;\n};\nconst join = function(...arguments_) {\n if (arguments_.length === 0) {\n return \".\";\n }\n let joined;\n for (const argument of arguments_) {\n if (argument && argument.length > 0) {\n if (joined === void 0) {\n joined = argument;\n } else {\n joined += `/${argument}`;\n }\n }\n }\n if (joined === void 0) {\n return \".\";\n }\n return normalize(joined.replace(/\\/\\/+/g, \"/\"));\n};\nfunction cwd() {\n if (typeof process !== \"undefined\" && typeof process.cwd === \"function\") {\n return process.cwd().replace(/\\\\/g, \"/\");\n }\n return \"/\";\n}\nconst resolve = function(...arguments_) {\n arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));\n let resolvedPath = \"\";\n let resolvedAbsolute = false;\n for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {\n const path = index >= 0 ? arguments_[index] : cwd();\n if (!path || path.length === 0) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = isAbsolute(path);\n }\n resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);\n if (resolvedAbsolute && !isAbsolute(resolvedPath)) {\n return `/${resolvedPath}`;\n }\n return resolvedPath.length > 0 ? resolvedPath : \".\";\n};\nfunction normalizeString(path, allowAboveRoot) {\n let res = \"\";\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let char = null;\n for (let index = 0; index <= path.length; ++index) {\n if (index < path.length) {\n char = path[index];\n } else if (char === \"/\") {\n break;\n } else {\n char = \"/\";\n }\n if (char === \"/\") {\n if (lastSlash === index - 1 || dots === 1) ; else if (dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== \".\" || res[res.length - 2] !== \".\") {\n if (res.length > 2) {\n const lastSlashIndex = res.lastIndexOf(\"/\");\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n lastSlash = index;\n dots = 0;\n continue;\n } else if (res.length > 0) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = index;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n res += res.length > 0 ? \"/..\" : \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) {\n res += `/${path.slice(lastSlash + 1, index)}`;\n } else {\n res = path.slice(lastSlash + 1, index);\n }\n lastSegmentLength = index - lastSlash - 1;\n }\n lastSlash = index;\n dots = 0;\n } else if (char === \".\" && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\nconst isAbsolute = function(p) {\n return _IS_ABSOLUTE_RE.test(p);\n};\nconst toNamespacedPath = function(p) {\n return normalizeWindowsPath(p);\n};\nconst _EXTNAME_RE = /.(\\.[^./]+)$/;\nconst extname = function(p) {\n const match = _EXTNAME_RE.exec(normalizeWindowsPath(p));\n return match && match[1] || \"\";\n};\nconst relative = function(from, to) {\n const _from = resolve(from).replace(_ROOT_FOLDER_RE, \"$1\").split(\"/\");\n const _to = resolve(to).replace(_ROOT_FOLDER_RE, \"$1\").split(\"/\");\n if (_to[0][1] === \":\" && _from[0][1] === \":\" && _from[0] !== _to[0]) {\n return _to.join(\"/\");\n }\n const _fromCopy = [..._from];\n for (const segment of _fromCopy) {\n if (_to[0] !== segment) {\n break;\n }\n _from.shift();\n _to.shift();\n }\n return [..._from.map(() => \"..\"), ..._to].join(\"/\");\n};\nconst dirname = function(p) {\n const segments = normalizeWindowsPath(p).replace(/\\/$/, \"\").split(\"/\").slice(0, -1);\n if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) {\n segments[0] += \"/\";\n }\n return segments.join(\"/\") || (isAbsolute(p) ? \"/\" : \".\");\n};\nconst format = function(p) {\n const segments = [p.root, p.dir, p.base ?? p.name + p.ext].filter(Boolean);\n return normalizeWindowsPath(\n p.root ? resolve(...segments) : segments.join(\"/\")\n );\n};\nconst basename = function(p, extension) {\n const lastSegment = normalizeWindowsPath(p).split(\"/\").pop();\n return extension && lastSegment.endsWith(extension) ? lastSegment.slice(0, -extension.length) : lastSegment;\n};\nconst parse = function(p) {\n const root = normalizeWindowsPath(p).split(\"/\").shift() || \"/\";\n const base = basename(p);\n const extension = extname(base);\n return {\n root,\n dir: dirname(p),\n base,\n ext: extension,\n name: base.slice(0, base.length - extension.length)\n };\n};\n\nconst path = {\n __proto__: null,\n basename: basename,\n delimiter: delimiter,\n dirname: dirname,\n extname: extname,\n format: format,\n isAbsolute: isAbsolute,\n join: join,\n normalize: normalize,\n normalizeString: normalizeString,\n parse: parse,\n relative: relative,\n resolve: resolve,\n sep: sep,\n toNamespacedPath: toNamespacedPath\n};\n\nexport { normalize as a, normalizeString as b, relative as c, delimiter as d, extname as e, dirname as f, format as g, basename as h, isAbsolute as i, join as j, parse as k, normalizeWindowsPath as n, path as p, resolve as r, sep as s, toNamespacedPath as t };\n","import { tmpdir } from 'node:os';\nimport path from 'pathe';\nimport fs from 'node:fs';\nimport path$1 from 'node:path';\nimport https from 'node:https';\nimport { execSync, spawn } from 'node:child_process';\n\nconst CLOUDFLARED_VERSION = process.env.CLOUDFLARED_VERSION || \"2023.10.0\";\nconst RELEASE_BASE = \"https://github.com/cloudflare/cloudflared/releases/\";\nconst cloudflaredBinPath = path.join(\n tmpdir(),\n \"node-untun\",\n process.platform === \"win32\" ? `cloudflared.${CLOUDFLARED_VERSION}.exe` : `cloudflared.${CLOUDFLARED_VERSION}`\n);\nconst cloudflaredNotice = `\n\\u{1F525} Your installation of cloudflared software constitutes a symbol of your signature\n indicating that you accept the terms of the Cloudflare License, Terms and Privacy Policy.\n\n\\u276F License: \\`https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/license/\\`\n\\u276F Terms: \\`https://www.cloudflare.com/terms/\\`\n\\u276F Privacy Policy: \\`https://www.cloudflare.com/privacypolicy/\\`\n`;\nconst connRegex = /connection[ =]([\\da-z-]+)/i;\nconst ipRegex = /ip=([\\d.]+)/;\nconst locationRegex = /location=([A-Z]+)/;\nconst indexRegex = /connIndex=(\\d)/;\n\nconst LINUX_URL = {\n arm64: \"cloudflared-linux-arm64\",\n arm: \"cloudflared-linux-arm\",\n x64: \"cloudflared-linux-amd64\",\n ia32: \"cloudflared-linux-386\"\n};\nconst MACOS_URL = {\n arm64: \"cloudflared-darwin-amd64.tgz\",\n x64: \"cloudflared-darwin-amd64.tgz\"\n};\nconst WINDOWS_URL = {\n x64: \"cloudflared-windows-amd64.exe\",\n ia32: \"cloudflared-windows-386.exe\"\n};\nfunction resolveBase(version) {\n if (version === \"latest\") {\n return `${RELEASE_BASE}latest/download/`;\n }\n return `${RELEASE_BASE}download/${version}/`;\n}\nfunction installCloudflared(to = cloudflaredBinPath, version = CLOUDFLARED_VERSION) {\n switch (process.platform) {\n case \"linux\": {\n return installLinux(to, version);\n }\n case \"darwin\": {\n return installMacos(to, version);\n }\n case \"win32\": {\n return installWindows(to, version);\n }\n default: {\n throw new Error(\"Unsupported platform: \" + process.platform);\n }\n }\n}\nasync function installLinux(to, version = CLOUDFLARED_VERSION) {\n const file = LINUX_URL[process.arch];\n if (file === void 0) {\n throw new Error(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolveBase(version) + file, to);\n fs.chmodSync(to, \"755\");\n return to;\n}\nasync function installMacos(to, version = CLOUDFLARED_VERSION) {\n const file = MACOS_URL[process.arch];\n if (file === void 0) {\n throw new Error(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolveBase(version) + file, `${to}.tgz`);\n process.env.DEBUG && console.log(`Extracting to ${to}`);\n execSync(`tar -xzf ${path$1.basename(`${to}.tgz`)}`, { cwd: path$1.dirname(to) });\n fs.unlinkSync(`${to}.tgz`);\n fs.renameSync(`${path$1.dirname(to)}/cloudflared`, to);\n return to;\n}\nasync function installWindows(to, version = CLOUDFLARED_VERSION) {\n const file = WINDOWS_URL[process.arch];\n if (file === void 0) {\n throw new Error(\"Unsupported architecture: \" + process.arch);\n }\n await download(resolveBase(version) + file, to);\n return to;\n}\nfunction download(url, to, redirect = 0) {\n if (redirect === 0) {\n process.env.DEBUG && console.log(`Downloading ${url} to ${to}`);\n } else {\n process.env.DEBUG && console.log(`Redirecting to ${url}`);\n }\n return new Promise((resolve, reject) => {\n if (!fs.existsSync(path$1.dirname(to))) {\n fs.mkdirSync(path$1.dirname(to), { recursive: true });\n }\n let done = true;\n const file = fs.createWriteStream(to);\n const request = https.get(url, (res) => {\n if (res.statusCode === 302 && res.headers.location !== void 0) {\n const redirection = res.headers.location;\n done = false;\n file.close(() => resolve(download(redirection, to, redirect + 1)));\n return;\n }\n res.pipe(file);\n });\n file.on(\"finish\", () => {\n if (done) {\n file.close(() => resolve(to));\n }\n });\n request.on(\"error\", (err) => {\n fs.unlink(to, () => reject(err));\n });\n file.on(\"error\", (err) => {\n fs.unlink(to, () => reject(err));\n });\n request.end();\n });\n}\n\nfunction startCloudflaredTunnel(options = {}) {\n const args = [\"tunnel\"];\n for (const [key, value] of Object.entries(options)) {\n if (typeof value === \"string\") {\n args.push(`${key}`, value);\n } else if (typeof value === \"number\") {\n args.push(`${key}`, value.toString());\n } else if (value === null) {\n args.push(`${key}`);\n }\n }\n if (args.length === 1) {\n args.push(\"--url\", \"localhost:8080\");\n }\n const child = spawn(cloudflaredBinPath, args, {\n stdio: [\"ignore\", \"pipe\", \"pipe\"]\n });\n if (process.env.DEBUG) {\n child.stdout.pipe(process.stdout);\n child.stderr.pipe(process.stderr);\n }\n const urlRegex = /\\|\\s+(https?:\\/\\/\\S+)/;\n let urlResolver = () => void 0;\n let urlRejector = () => void 0;\n const url = new Promise(\n (...pair) => [urlResolver, urlRejector] = pair\n );\n const connectionResolvers = [];\n const connectionRejectors = [];\n const connections = [];\n for (let i = 0; i < 1; i++) {\n connections.push(\n new Promise(\n (...pair) => [connectionResolvers[i], connectionRejectors[i]] = pair\n )\n );\n }\n const parser = (data) => {\n const str = data.toString();\n const urlMatch = str.match(urlRegex);\n urlMatch && urlResolver(urlMatch[1]);\n const connMatch = str.match(connRegex);\n const ipMatch = str.match(ipRegex);\n const locationMatch = str.match(locationRegex);\n const indexMatch = str.match(indexRegex);\n if (connMatch && ipMatch && locationMatch && indexMatch) {\n const [, id] = connMatch;\n const [, ip] = ipMatch;\n const [, location] = locationMatch;\n const [, idx] = indexMatch;\n connectionResolvers[+idx]?.({ id, ip, location });\n }\n };\n child.stdout.on(\"data\", parser).on(\"error\", urlRejector);\n child.stderr.on(\"data\", parser).on(\"error\", urlRejector);\n const stop = () => child.kill(\"SIGINT\");\n return { url, connections, child, stop };\n}\n\nexport { cloudflaredBinPath, cloudflaredNotice, installCloudflared, startCloudflaredTunnel };\n"],"x_google_ignoreList":[0,1],"mappings":"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"}