@pipelab/plugin-discord 1.0.0-beta.23 → 1.0.0-beta.26

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.
@@ -44,7 +44,7 @@ function cwd() {
44
44
  if (typeof process !== "undefined" && typeof process.cwd === "function") return process.cwd().replace(/\\/g, "/");
45
45
  return "/";
46
46
  }
47
- const resolve = function(...arguments_) {
47
+ const resolve$1 = function(...arguments_) {
48
48
  arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
49
49
  let resolvedPath = "";
50
50
  let resolvedAbsolute = false;
@@ -120,8 +120,8 @@ const extname = function(p) {
120
120
  return match && match[1] || "";
121
121
  };
122
122
  const relative = function(from, to) {
123
- const _from = resolve(from).replace(_ROOT_FOLDER_RE, "$1").split("/");
124
- const _to = resolve(to).replace(_ROOT_FOLDER_RE, "$1").split("/");
123
+ const _from = resolve$1(from).replace(_ROOT_FOLDER_RE, "$1").split("/");
124
+ const _to = resolve$1(to).replace(_ROOT_FOLDER_RE, "$1").split("/");
125
125
  if (_to[0][1] === ":" && _from[0][1] === ":" && _from[0] !== _to[0]) return _to.join("/");
126
126
  const _fromCopy = [..._from];
127
127
  for (const segment of _fromCopy) {
@@ -142,7 +142,7 @@ const format = function(p) {
142
142
  p.dir,
143
143
  p.base ?? p.name + p.ext
144
144
  ].filter(Boolean);
145
- return normalizeWindowsPath(p.root ? resolve(...segments) : segments.join("/"));
145
+ return normalizeWindowsPath(p.root ? resolve$1(...segments) : segments.join("/"));
146
146
  };
147
147
  const basename$1 = function(p, extension) {
148
148
  const lastSegment = normalizeWindowsPath(p).split("/").pop();
@@ -173,7 +173,7 @@ const path = {
173
173
  normalizeString,
174
174
  parse,
175
175
  relative,
176
- resolve,
176
+ resolve: resolve$1,
177
177
  sep: "/",
178
178
  toNamespacedPath
179
179
  };
@@ -327,4 +327,4 @@ function startCloudflaredTunnel(options = {}) {
327
327
  //#endregion
328
328
  export { cloudflaredBinPath, cloudflaredNotice, installCloudflared, startCloudflaredTunnel };
329
329
 
330
- //# sourceMappingURL=chunks-CfRneOgh.mjs.map
330
+ //# sourceMappingURL=chunks-GrMn87xJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks-GrMn87xJ.mjs","names":["sep","delimiter","join","resolve","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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"}