@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.
- package/dist/{chunks-DUObX0Hn.mjs → chunks-CfRneOgh.mjs} +7 -7
- package/dist/chunks-CfRneOgh.mjs.map +1 -0
- package/dist/index.cjs +457 -500
- package/dist/index.mjs +83 -126
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/chunks-DUObX0Hn.mjs.map +0 -1
|
@@ -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
|
|
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
|
|
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-
|
|
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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"}
|