UNPKG

@shopify/cli

Version:

A CLI tool to build for the Shopify platform

1,038 lines (1,020 loc) • 9.53 MB
import { require_src, require_supports_color } from "./chunk-UMUTXITN.js"; import { require_semver } from "./chunk-HMDWNGIV.js"; import { require_brace_expansion, require_source_map_support } from "./chunk-G5R6YD27.js"; import { require_is_wsl } from "./chunk-G2ZZKGSV.js"; import { require_indent_string } from "./chunk-UV5N2VL7.js"; import { __commonJS, __require, init_cjs_shims } from "./chunk-PKR7KJ6P.js"; // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/util/util.js var require_util = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/util/util.js"(exports) { "use strict"; init_cjs_shims(); Object.defineProperty(exports, "__esModule", { value: !0 }); exports.pickBy = pickBy; exports.compact = compact; exports.uniqBy = uniqBy; exports.last = last; exports.sortBy = sortBy; exports.castArray = castArray; exports.isProd = isProd; exports.maxBy = maxBy; exports.sumBy = sumBy; exports.capitalize = capitalize; exports.isTruthy = isTruthy; exports.isNotFalsy = isNotFalsy; exports.uniq = uniq; exports.mapValues = mapValues; exports.mergeNestedObjects = mergeNestedObjects; function pickBy(obj, fn) { return Object.entries(obj).reduce((o, [k, v]) => (fn(v) && (o[k] = v), o), {}); } function compact(a) { return a.filter((a2) => !!a2); } function uniqBy(arr, fn) { return arr.filter((a, i) => { let aVal = fn(a); return !arr.some((b, j) => j > i && fn(b) === aVal); }); } function last(arr) { if (arr) return arr.at(-1); } function compare(a, b) { if (a = a === void 0 ? 0 : a, b = b === void 0 ? 0 : b, Array.isArray(a) && Array.isArray(b)) { if (a.length === 0 && b.length === 0) return 0; let diff = compare(a[0], b[0]); return diff !== 0 ? diff : compare(a.slice(1), b.slice(1)); } return a < b ? -1 : a > b ? 1 : 0; } function sortBy(arr, fn) { return arr.sort((a, b) => compare(fn(a), fn(b))); } function castArray(input) { return input === void 0 ? [] : Array.isArray(input) ? input : [input]; } function isProd() { return !["development", "test"].includes(process.env.NODE_ENV ?? ""); } function maxBy(arr, fn) { if (arr.length !== 0) return arr.reduce((maxItem, i) => { let curr = fn(i), max = fn(maxItem); return curr > max ? i : maxItem; }); } function sumBy(arr, fn) { return arr.reduce((sum, i) => sum + fn(i), 0); } function capitalize(s) { return s ? s.charAt(0).toUpperCase() + s.slice(1).toLowerCase() : ""; } function isTruthy(input) { return ["1", "true", "y", "yes"].includes(input.toLowerCase()); } function isNotFalsy(input) { return !["0", "false", "n", "no"].includes(input.toLowerCase()); } function uniq(arr) { return [...new Set(arr)].sort(); } function mapValues(obj, fn) { return Object.entries(obj).reduce((o, [k, v]) => (o[k] = fn(v, k), o), {}); } function get(obj, path) { return path.split(".").reduce((o, p) => o?.[p], obj); } function mergeNestedObjects(objs, path) { return Object.fromEntries(objs.flatMap((o) => Object.entries(get(o, path) ?? {})).reverse()); } } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/util/fs.js var require_fs = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/util/fs.js"(exports) { "use strict"; init_cjs_shims(); Object.defineProperty(exports, "__esModule", { value: !0 }); exports.fileExists = exports.dirExists = void 0; exports.readJson = readJson; exports.safeReadJson = safeReadJson; exports.existsSync = existsSync; var node_fs_1 = __require("node:fs"), promises_1 = __require("node:fs/promises"), util_1 = require_util(), dirExists = async (input) => { let dirStat; try { dirStat = await (0, promises_1.stat)(input); } catch { throw new Error(`No directory found at ${input}`); } if (!dirStat.isDirectory()) throw new Error(`${input} exists but is not a directory`); return input; }; exports.dirExists = dirExists; var fileExists = async (input) => { let fileStat; try { fileStat = await (0, promises_1.stat)(input); } catch { throw new Error(`No file found at ${input}`); } if (!fileStat.isFile()) throw new Error(`${input} exists but is not a file`); return input; }; exports.fileExists = fileExists; var ProdOnlyCache = class extends Map { set(key, value) { return ((0, util_1.isProd)() ?? !1) && super.set(key, value), this; } }, cache = new ProdOnlyCache(); async function readJson(path, useCache = !0) { if (useCache && cache.has(path)) return JSON.parse(cache.get(path)); let contents = await (0, promises_1.readFile)(path, "utf8"); return cache.set(path, contents), JSON.parse(contents); } async function safeReadJson(path, useCache = !0) { try { return await readJson(path, useCache); } catch { } } function existsSync(path) { return (0, node_fs_1.existsSync)(path); } } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/args.js var require_args = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/args.js"(exports) { "use strict"; init_cjs_shims(); Object.defineProperty(exports, "__esModule", { value: !0 }); exports.string = exports.url = exports.file = exports.directory = exports.integer = exports.boolean = void 0; exports.custom = custom; var node_url_1 = __require("node:url"), fs_1 = require_fs(), util_1 = require_util(); function custom(defaults) { return (options = {}) => ({ parse: async (i, _context, _opts) => i, ...defaults, ...options, input: [], type: "option" }); } exports.boolean = custom({ parse: async (b) => !!b && (0, util_1.isNotFalsy)(b) }); exports.integer = custom({ async parse(input, _, opts) { if (!/^-?\d+$/.test(input)) throw new Error(`Expected an integer but received: ${input}`); let num = Number.parseInt(input, 10); if (opts.min !== void 0 && num < opts.min) throw new Error(`Expected an integer greater than or equal to ${opts.min} but received: ${input}`); if (opts.max !== void 0 && num > opts.max) throw new Error(`Expected an integer less than or equal to ${opts.max} but received: ${input}`); return num; } }); exports.directory = custom({ async parse(input, _, opts) { return opts.exists ? (0, fs_1.dirExists)(input) : input; } }); exports.file = custom({ async parse(input, _, opts) { return opts.exists ? (0, fs_1.fileExists)(input) : input; } }); exports.url = custom({ async parse(input) { try { return new node_url_1.URL(input); } catch { throw new Error(`Expected a valid url but received: ${input}`); } } }); var stringArg = custom({}); exports.string = stringArg; } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/package.json var require_package = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/package.json"(exports, module) { module.exports = { name: "@oclif/core", description: "base library for oclif CLIs", version: "4.4.0", author: "Salesforce", bugs: "https://github.com/oclif/core/issues", dependencies: { "ansi-escapes": "^4.3.2", ansis: "^3.17.0", "clean-stack": "^3.0.1", "cli-spinners": "^2.9.2", debug: "^4.4.0", ejs: "^3.1.10", "get-package-type": "^0.1.0", "indent-string": "^4.0.0", "is-wsl": "^2.2.0", lilconfig: "^3.1.3", minimatch: "^9.0.5", semver: "^7.6.3", "string-width": "^4.2.3", "supports-color": "^8", tinyglobby: "^0.2.14", "widest-line": "^3.1.0", wordwrap: "^1.0.0", "wrap-ansi": "^7.0.0" }, devDependencies: { "@commitlint/config-conventional": "^19", "@eslint/compat": "^1.3.0", "@oclif/plugin-help": "^6", "@oclif/plugin-plugins": "^5", "@oclif/prettier-config": "^0.2.1", "@oclif/test": "^4", "@types/benchmark": "^2.1.5", "@types/chai": "^4.3.16", "@types/chai-as-promised": "^7.1.8", "@types/clean-stack": "^2.1.1", "@types/debug": "^4.1.10", "@types/ejs": "^3.1.5", "@types/indent-string": "^4.0.1", "@types/mocha": "^10.0.10", "@types/node": "^18", "@types/pnpapi": "^0.0.5", "@types/sinon": "^17.0.3", "@types/supports-color": "^8.1.3", "@types/wordwrap": "^1.0.3", "@types/wrap-ansi": "^3.0.0", benchmark: "^2.1.4", chai: "^4.5.0", "chai-as-promised": "^7.1.2", commitlint: "^19", "cross-env": "^7.0.3", eslint: "^9", "eslint-config-oclif": "^6", "eslint-config-prettier": "^10", husky: "^9.1.7", "lint-staged": "^15", madge: "^6.1.0", mocha: "^10.8.2", nyc: "^15.1.0", prettier: "^3.5.3", shx: "^0.4.0", sinon: "^18", "ts-node": "^10.9.2", tsd: "^0.32.0", typescript: "^5" }, engines: { node: ">=18.0.0" }, files: [ "/lib" ], homepage: "https://github.com/oclif/core", keywords: [ "oclif", "cli", "command", "command line", "parser", "args", "argv" ], license: "MIT", exports: { ".": "./lib/index.js", "./args": "./lib/args.js", "./command": "./lib/command.js", "./config": "./lib/config/index.js", "./errors": "./lib/errors/index.js", "./execute": "./lib/execute.js", "./flags": "./lib/flags.js", "./flush": "./lib/flush.js", "./handle": "./lib/errors/handle.js", "./help": "./lib/help/index.js", "./hooks": "./lib/interfaces/hooks.js", "./interfaces": "./lib/interfaces/index.js", "./logger": "./lib/logger.js", "./package.json": "./package.json", "./parser": "./lib/parser/index.js", "./performance": "./lib/performance.js", "./run": "./lib/main.js", "./settings": "./lib/settings.js", "./util/ids": "./lib/util/ids.js", "./ux": "./lib/ux/index.js" }, repository: "oclif/core", oclif: { bin: "oclif", devPlugins: [ "@oclif/plugin-help", "@oclif/plugin-plugins" ] }, publishConfig: { access: "public" }, scripts: { build: "shx rm -rf lib && tsc", compile: "tsc", format: 'prettier --write "+(src|test)/**/*.+(ts|js|json)"', lint: "eslint", posttest: "yarn lint && yarn test:circular-deps", prepack: "yarn run build", prepare: "husky", "test:circular-deps": "yarn build && madge lib/ -c", "test:debug": 'nyc mocha --debug-brk --inspect "test/**/*.test.ts"', "test:integration": 'mocha --forbid-only "test/**/*.integration.ts" --parallel --timeout 1200000', "test:interoperability": "cross-env DEBUG=integration:* ts-node test/integration/interop.ts", "test:perf": "ts-node test/perf/parser.perf.ts", test: 'nyc mocha --forbid-only "test/**/*.test.ts" --parallel' }, types: "lib/index.d.ts" }; } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/cache.js var require_cache = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/cache.js"(exports) { "use strict"; init_cjs_shims(); Object.defineProperty(exports, "__esModule", { value: !0 }); var node_fs_1 = __require("node:fs"), node_path_1 = __require("node:path"), Cache = class _Cache extends Map { static instance; constructor() { super(), this.set("@oclif/core", this.getOclifCoreMeta()); } static getInstance() { return _Cache.instance || (_Cache.instance = new _Cache()), _Cache.instance; } get(key) { return super.get(key); } getOclifCoreMeta() { try { return { name: "@oclif/core", version: require_package().version }; } catch { try { return { name: "@oclif/core", version: JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, "..", "package.json"), "utf8")).version }; } catch { return { name: "@oclif/core", version: "unknown" }; } } } }; exports.default = Cache; } }); // ../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/lib/utils.js var require_utils = __commonJS({ "../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/lib/utils.js"(exports) { "use strict"; init_cjs_shims(); var regExpChars = /[|\\{}()[\]^$+*?.]/g, hasOwnProperty = Object.prototype.hasOwnProperty, hasOwn = function(obj, key) { return hasOwnProperty.apply(obj, [key]); }; exports.escapeRegExpChars = function(string) { return string ? String(string).replace(regExpChars, "\\$&") : ""; }; var _ENCODE_HTML_RULES = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&#34;", "'": "&#39;" }, _MATCH_HTML = /[&<>'"]/g; function encode_char(c) { return _ENCODE_HTML_RULES[c] || c; } var escapeFuncStr = `var _ENCODE_HTML_RULES = { "&": "&amp;" , "<": "&lt;" , ">": "&gt;" , '"': "&#34;" , "'": "&#39;" } , _MATCH_HTML = /[&<>'"]/g; function encode_char(c) { return _ENCODE_HTML_RULES[c] || c; }; `; exports.escapeXML = function(markup) { return markup == null ? "" : String(markup).replace(_MATCH_HTML, encode_char); }; function escapeXMLToString() { return Function.prototype.toString.call(this) + `; ` + escapeFuncStr; } try { typeof Object.defineProperty == "function" ? Object.defineProperty(exports.escapeXML, "toString", { value: escapeXMLToString }) : exports.escapeXML.toString = escapeXMLToString; } catch { console.warn("Unable to set escapeXML.toString (is the Function prototype frozen?)"); } exports.shallowCopy = function(to, from) { if (from = from || {}, to != null) for (var p in from) hasOwn(from, p) && (p === "__proto__" || p === "constructor" || (to[p] = from[p])); return to; }; exports.shallowCopyFromList = function(to, from, list) { if (list = list || [], from = from || {}, to != null) for (var i = 0; i < list.length; i++) { var p = list[i]; if (typeof from[p] < "u") { if (!hasOwn(from, p) || p === "__proto__" || p === "constructor") continue; to[p] = from[p]; } } return to; }; exports.cache = { _data: {}, set: function(key, val) { this._data[key] = val; }, get: function(key) { return this._data[key]; }, remove: function(key) { delete this._data[key]; }, reset: function() { this._data = {}; } }; exports.hyphenToCamel = function(str) { return str.replace(/-[a-z]/g, function(match) { return match[1].toUpperCase(); }); }; exports.createNullProtoObjWherePossible = function() { return typeof Object.create == "function" ? function() { return /* @__PURE__ */ Object.create(null); } : { __proto__: null } instanceof Object ? function() { return {}; } : function() { return { __proto__: null }; }; }(); exports.hasOwnOnlyObject = function(obj) { var o = exports.createNullProtoObjWherePossible(); for (var p in obj) hasOwn(obj, p) && (o[p] = obj[p]); return o; }; } }); // ../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/package.json var require_package2 = __commonJS({ "../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/package.json"(exports, module) { module.exports = { name: "ejs", description: "Embedded JavaScript templates", keywords: [ "template", "engine", "ejs" ], version: "3.1.10", author: "Matthew Eernisse <mde@fleegix.org> (http://fleegix.org)", license: "Apache-2.0", bin: { ejs: "./bin/cli.js" }, main: "./lib/ejs.js", jsdelivr: "ejs.min.js", unpkg: "ejs.min.js", repository: { type: "git", url: "git://github.com/mde/ejs.git" }, bugs: "https://github.com/mde/ejs/issues", homepage: "https://github.com/mde/ejs", dependencies: { jake: "^10.8.5" }, devDependencies: { browserify: "^16.5.1", eslint: "^6.8.0", "git-directory-deploy": "^1.5.1", jsdoc: "^4.0.2", "lru-cache": "^4.0.1", mocha: "^10.2.0", "uglify-js": "^3.3.16" }, engines: { node: ">=0.10.0" }, scripts: { test: "npx jake test" } }; } }); // ../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/lib/ejs.js var require_ejs = __commonJS({ "../../node_modules/.pnpm/ejs@3.1.10/node_modules/ejs/lib/ejs.js"(exports) { "use strict"; init_cjs_shims(); var fs = __require("fs"), path = __require("path"), utils = require_utils(), scopeOptionWarned = !1, _VERSION_STRING = require_package2().version, _DEFAULT_OPEN_DELIMITER = "<", _DEFAULT_CLOSE_DELIMITER = ">", _DEFAULT_DELIMITER = "%", _DEFAULT_LOCALS_NAME = "locals", _NAME = "ejs", _REGEX_STRING = "(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)", _OPTS_PASSABLE_WITH_DATA = [ "delimiter", "scope", "context", "debug", "compileDebug", "client", "_with", "rmWhitespace", "strict", "filename", "async" ], _OPTS_PASSABLE_WITH_DATA_EXPRESS = _OPTS_PASSABLE_WITH_DATA.concat("cache"), _BOM = /^\uFEFF/, _JS_IDENTIFIER = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/; exports.cache = utils.cache; exports.fileLoader = fs.readFileSync; exports.localsName = _DEFAULT_LOCALS_NAME; exports.promiseImpl = new Function("return this;")().Promise; exports.resolveInclude = function(name, filename, isDir) { var dirname = path.dirname, extname = path.extname, resolve = path.resolve, includePath = resolve(isDir ? filename : dirname(filename), name), ext = extname(name); return ext || (includePath += ".ejs"), includePath; }; function resolvePaths(name, paths) { var filePath; if (paths.some(function(v) { return filePath = exports.resolveInclude(name, v, !0), fs.existsSync(filePath); })) return filePath; } function getIncludePath(path2, options) { var includePath, filePath, views = options.views, match = /^[A-Za-z]+:\\|^\//.exec(path2); if (match && match.length) path2 = path2.replace(/^\/*/, ""), Array.isArray(options.root) ? includePath = resolvePaths(path2, options.root) : includePath = exports.resolveInclude(path2, options.root || "/", !0); else if (options.filename && (filePath = exports.resolveInclude(path2, options.filename), fs.existsSync(filePath) && (includePath = filePath)), !includePath && Array.isArray(views) && (includePath = resolvePaths(path2, views)), !includePath && typeof options.includer != "function") throw new Error('Could not find the include file "' + options.escapeFunction(path2) + '"'); return includePath; } function handleCache(options, template) { var func, filename = options.filename, hasTemplate = arguments.length > 1; if (options.cache) { if (!filename) throw new Error("cache option requires a filename"); if (func = exports.cache.get(filename), func) return func; hasTemplate || (template = fileLoader(filename).toString().replace(_BOM, "")); } else if (!hasTemplate) { if (!filename) throw new Error("Internal EJS error: no file name or template provided"); template = fileLoader(filename).toString().replace(_BOM, ""); } return func = exports.compile(template, options), options.cache && exports.cache.set(filename, func), func; } function tryHandleCache(options, data, cb) { var result; if (cb) { try { result = handleCache(options)(data); } catch (err) { return cb(err); } cb(null, result); } else { if (typeof exports.promiseImpl == "function") return new exports.promiseImpl(function(resolve, reject) { try { result = handleCache(options)(data), resolve(result); } catch (err) { reject(err); } }); throw new Error("Please provide a callback function"); } } function fileLoader(filePath) { return exports.fileLoader(filePath); } function includeFile(path2, options) { var opts = utils.shallowCopy(utils.createNullProtoObjWherePossible(), options); if (opts.filename = getIncludePath(path2, opts), typeof options.includer == "function") { var includerResult = options.includer(path2, opts.filename); if (includerResult && (includerResult.filename && (opts.filename = includerResult.filename), includerResult.template)) return handleCache(opts, includerResult.template); } return handleCache(opts); } function rethrow(err, str, flnm, lineno, esc) { var lines = str.split(` `), start = Math.max(lineno - 3, 0), end = Math.min(lines.length, lineno + 3), filename = esc(flnm), context = lines.slice(start, end).map(function(line, i) { var curr = i + start + 1; return (curr == lineno ? " >> " : " ") + curr + "| " + line; }).join(` `); throw err.path = filename, err.message = (filename || "ejs") + ":" + lineno + ` ` + context + ` ` + err.message, err; } function stripSemi(str) { return str.replace(/;(\s*$)/, "$1"); } exports.compile = function(template, opts) { var templ; return opts && opts.scope && (scopeOptionWarned || (console.warn("`scope` option is deprecated and will be removed in EJS 3"), scopeOptionWarned = !0), opts.context || (opts.context = opts.scope), delete opts.scope), templ = new Template(template, opts), templ.compile(); }; exports.render = function(template, d, o) { var data = d || utils.createNullProtoObjWherePossible(), opts = o || utils.createNullProtoObjWherePossible(); return arguments.length == 2 && utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA), handleCache(opts, template)(data); }; exports.renderFile = function() { var args = Array.prototype.slice.call(arguments), filename = args.shift(), cb, opts = { filename }, data, viewOpts; return typeof arguments[arguments.length - 1] == "function" && (cb = args.pop()), args.length ? (data = args.shift(), args.length ? utils.shallowCopy(opts, args.pop()) : (data.settings && (data.settings.views && (opts.views = data.settings.views), data.settings["view cache"] && (opts.cache = !0), viewOpts = data.settings["view options"], viewOpts && utils.shallowCopy(opts, viewOpts)), utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA_EXPRESS)), opts.filename = filename) : data = utils.createNullProtoObjWherePossible(), tryHandleCache(opts, data, cb); }; exports.Template = Template; exports.clearCache = function() { exports.cache.reset(); }; function Template(text, optsParam) { var opts = utils.hasOwnOnlyObject(optsParam), options = utils.createNullProtoObjWherePossible(); this.templateText = text, this.mode = null, this.truncate = !1, this.currentLine = 1, this.source = "", options.client = opts.client || !1, options.escapeFunction = opts.escape || opts.escapeFunction || utils.escapeXML, options.compileDebug = opts.compileDebug !== !1, options.debug = !!opts.debug, options.filename = opts.filename, options.openDelimiter = opts.openDelimiter || exports.openDelimiter || _DEFAULT_OPEN_DELIMITER, options.closeDelimiter = opts.closeDelimiter || exports.closeDelimiter || _DEFAULT_CLOSE_DELIMITER, options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER, options.strict = opts.strict || !1, options.context = opts.context, options.cache = opts.cache || !1, options.rmWhitespace = opts.rmWhitespace, options.root = opts.root, options.includer = opts.includer, options.outputFunctionName = opts.outputFunctionName, options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME, options.views = opts.views, options.async = opts.async, options.destructuredLocals = opts.destructuredLocals, options.legacyInclude = typeof opts.legacyInclude < "u" ? !!opts.legacyInclude : !0, options.strict ? options._with = !1 : options._with = typeof opts._with < "u" ? opts._with : !0, this.opts = options, this.regex = this.createRegex(); } Template.modes = { EVAL: "eval", ESCAPED: "escaped", RAW: "raw", COMMENT: "comment", LITERAL: "literal" }; Template.prototype = { createRegex: function() { var str = _REGEX_STRING, delim = utils.escapeRegExpChars(this.opts.delimiter), open = utils.escapeRegExpChars(this.opts.openDelimiter), close = utils.escapeRegExpChars(this.opts.closeDelimiter); return str = str.replace(/%/g, delim).replace(/</g, open).replace(/>/g, close), new RegExp(str); }, compile: function() { var src, fn, opts = this.opts, prepended = "", appended = "", escapeFn = opts.escapeFunction, ctor, sanitizedFilename = opts.filename ? JSON.stringify(opts.filename) : "undefined"; if (!this.source) { if (this.generateSource(), prepended += ` var __output = ""; function __append(s) { if (s !== undefined && s !== null) __output += s } `, opts.outputFunctionName) { if (!_JS_IDENTIFIER.test(opts.outputFunctionName)) throw new Error("outputFunctionName is not a valid JS identifier."); prepended += " var " + opts.outputFunctionName + ` = __append; `; } if (opts.localsName && !_JS_IDENTIFIER.test(opts.localsName)) throw new Error("localsName is not a valid JS identifier."); if (opts.destructuredLocals && opts.destructuredLocals.length) { for (var destructuring = " var __locals = (" + opts.localsName + ` || {}), `, i = 0; i < opts.destructuredLocals.length; i++) { var name = opts.destructuredLocals[i]; if (!_JS_IDENTIFIER.test(name)) throw new Error("destructuredLocals[" + i + "] is not a valid JS identifier."); i > 0 && (destructuring += `, `), destructuring += name + " = __locals." + name; } prepended += destructuring + `; `; } opts._with !== !1 && (prepended += " with (" + opts.localsName + ` || {}) { `, appended += ` } `), appended += ` return __output; `, this.source = prepended + this.source + appended; } opts.compileDebug ? src = `var __line = 1 , __lines = ` + JSON.stringify(this.templateText) + ` , __filename = ` + sanitizedFilename + `; try { ` + this.source + `} catch (e) { rethrow(e, __lines, __filename, __line, escapeFn); } ` : src = this.source, opts.client && (src = "escapeFn = escapeFn || " + escapeFn.toString() + `; ` + src, opts.compileDebug && (src = "rethrow = rethrow || " + rethrow.toString() + `; ` + src)), opts.strict && (src = `"use strict"; ` + src), opts.debug && console.log(src), opts.compileDebug && opts.filename && (src = src + ` //# sourceURL=` + sanitizedFilename + ` `); try { if (opts.async) try { ctor = new Function("return (async function(){}).constructor;")(); } catch (e) { throw e instanceof SyntaxError ? new Error("This environment does not support async/await") : e; } else ctor = Function; fn = new ctor(opts.localsName + ", escapeFn, include, rethrow", src); } catch (e) { throw e instanceof SyntaxError && (opts.filename && (e.message += " in " + opts.filename), e.message += ` while compiling ejs `, e.message += `If the above error is not helpful, you may want to try EJS-Lint: `, e.message += "https://github.com/RyanZim/EJS-Lint", opts.async || (e.message += ` `, e.message += "Or, if you meant to create an async function, pass `async: true` as an option.")), e; } var returnedFn = opts.client ? fn : function(data) { var include = function(path2, includeData) { var d = utils.shallowCopy(utils.createNullProtoObjWherePossible(), data); return includeData && (d = utils.shallowCopy(d, includeData)), includeFile(path2, opts)(d); }; return fn.apply( opts.context, [data || utils.createNullProtoObjWherePossible(), escapeFn, include, rethrow] ); }; if (opts.filename && typeof Object.defineProperty == "function") { var filename = opts.filename, basename = path.basename(filename, path.extname(filename)); try { Object.defineProperty(returnedFn, "name", { value: basename, writable: !1, enumerable: !1, configurable: !0 }); } catch { } } return returnedFn; }, generateSource: function() { var opts = this.opts; opts.rmWhitespace && (this.templateText = this.templateText.replace(/[\r\n]+/g, ` `).replace(/^\s+|\s+$/gm, "")), this.templateText = this.templateText.replace(/[ \t]*<%_/gm, "<%_").replace(/_%>[ \t]*/gm, "_%>"); var self = this, matches = this.parseTemplateText(), d = this.opts.delimiter, o = this.opts.openDelimiter, c = this.opts.closeDelimiter; matches && matches.length && matches.forEach(function(line, index) { var closing; if (line.indexOf(o + d) === 0 && line.indexOf(o + d + d) !== 0 && (closing = matches[index + 2], !(closing == d + c || closing == "-" + d + c || closing == "_" + d + c))) throw new Error('Could not find matching close tag for "' + line + '".'); self.scanLine(line); }); }, parseTemplateText: function() { for (var str = this.templateText, pat = this.regex, result = pat.exec(str), arr = [], firstPos; result; ) firstPos = result.index, firstPos !== 0 && (arr.push(str.substring(0, firstPos)), str = str.slice(firstPos)), arr.push(result[0]), str = str.slice(result[0].length), result = pat.exec(str); return str && arr.push(str), arr; }, _addOutput: function(line) { if (this.truncate && (line = line.replace(/^(?:\r\n|\r|\n)/, ""), this.truncate = !1), !line) return line; line = line.replace(/\\/g, "\\\\"), line = line.replace(/\n/g, "\\n"), line = line.replace(/\r/g, "\\r"), line = line.replace(/"/g, '\\"'), this.source += ' ; __append("' + line + `") `; }, scanLine: function(line) { var self = this, d = this.opts.delimiter, o = this.opts.openDelimiter, c = this.opts.closeDelimiter, newLineCount = 0; switch (newLineCount = line.split(` `).length - 1, line) { case o + d: case o + d + "_": this.mode = Template.modes.EVAL; break; case o + d + "=": this.mode = Template.modes.ESCAPED; break; case o + d + "-": this.mode = Template.modes.RAW; break; case o + d + "#": this.mode = Template.modes.COMMENT; break; case o + d + d: this.mode = Template.modes.LITERAL, this.source += ' ; __append("' + line.replace(o + d + d, o + d) + `") `; break; case d + d + c: this.mode = Template.modes.LITERAL, this.source += ' ; __append("' + line.replace(d + d + c, d + c) + `") `; break; case d + c: case "-" + d + c: case "_" + d + c: this.mode == Template.modes.LITERAL && this._addOutput(line), this.mode = null, this.truncate = line.indexOf("-") === 0 || line.indexOf("_") === 0; break; default: if (this.mode) { switch (this.mode) { case Template.modes.EVAL: case Template.modes.ESCAPED: case Template.modes.RAW: line.lastIndexOf("//") > line.lastIndexOf(` `) && (line += ` `); } switch (this.mode) { // Just executing code case Template.modes.EVAL: this.source += " ; " + line + ` `; break; // Exec, esc, and output case Template.modes.ESCAPED: this.source += " ; __append(escapeFn(" + stripSemi(line) + `)) `; break; // Exec and output case Template.modes.RAW: this.source += " ; __append(" + stripSemi(line) + `) `; break; case Template.modes.COMMENT: break; // Literal <%% mode, append as raw output case Template.modes.LITERAL: this._addOutput(line); break; } } else this._addOutput(line); } self.opts.compileDebug && newLineCount && (this.currentLine += newLineCount, this.source += " ; __line = " + this.currentLine + ` `); } }; exports.escapeXML = utils.escapeXML; exports.__express = exports.renderFile; exports.VERSION = _VERSION_STRING; exports.name = _NAME; typeof window < "u" && (window.ejs = exports); } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/logger.js var require_logger = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/logger.js"(exports) { "use strict"; init_cjs_shims(); var __importDefault = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { default: mod }; }; Object.defineProperty(exports, "__esModule", { value: !0 }); exports.getLogger = getLogger; exports.makeDebug = makeDebug; exports.setLogger = setLogger; exports.clearLoggers = clearLoggers; var debug_1 = __importDefault(require_src()), OCLIF_NS = "oclif"; function makeLogger(namespace = OCLIF_NS) { let debug = (0, debug_1.default)(namespace); return { child: (ns, delimiter) => makeLogger(`${namespace}${delimiter ?? ":"}${ns}`), debug, error: (formatter, ...args) => makeLogger(`${namespace}:error`).debug(formatter, ...args), info: debug, namespace, trace: debug, warn: debug }; } var cachedLoggers = /* @__PURE__ */ new Map(); function getLogger(namespace) { let rootLogger = cachedLoggers.get("root"); if (rootLogger || set(makeLogger(OCLIF_NS)), rootLogger = cachedLoggers.get("root"), namespace) { let cachedLogger = cachedLoggers.get(namespace); if (cachedLogger) return cachedLogger; let logger = rootLogger.child(namespace); return cachedLoggers.set(namespace, logger), logger; } return rootLogger; } function ensureItMatchesInterface(newLogger) { return typeof newLogger.child == "function" && typeof newLogger.debug == "function" && typeof newLogger.error == "function" && typeof newLogger.info == "function" && typeof newLogger.trace == "function" && typeof newLogger.warn == "function" && typeof newLogger.namespace == "string"; } function set(newLogger) { cachedLoggers.has(newLogger.namespace) || cachedLoggers.has("root") || (ensureItMatchesInterface(newLogger) ? (cachedLoggers.set(newLogger.namespace, newLogger), cachedLoggers.set("root", newLogger)) : process.emitWarning("Logger does not match the Logger interface. Using default logger.")); } function makeDebug(namespace) { return (formatter, ...args) => getLogger(namespace).debug(formatter, ...args); } function setLogger(loadOptions) { loadOptions && typeof loadOptions != "string" && "logger" in loadOptions && loadOptions.logger ? set(loadOptions.logger) : set(makeLogger(OCLIF_NS)); } function clearLoggers() { cachedLoggers.clear(); } } }); // ../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/ux/write.js var require_write = __commonJS({ "../../node_modules/.pnpm/@oclif+core@4.4.0/node_modules/@oclif/core/lib/ux/write.js"(exports) { "use strict"; init_cjs_shims(); Object.defineProperty(exports, "__esModule", { value: !0 }); exports.stderr = exports.stdout = void 0; var node_util_1 = __require("node:util"), stdout = (str, ...args) => { !str && args ? console.log((0, node_util_1.format)(...args)) : str ? console.log(typeof str == "string" ? (0, node_util_1.format)(str, ...args) : (0, node_util_1.format)(...str, ...args)) : console.log(); }; exports.stdout = stdout; var stderr = (str, ...args) => { !str && args ? console.error((0, node_util_1.format)(...args)) : str ? console.error(typeof str == "string" ? (0, node_util_1.format)(str, ...args) : (0, node_util_1.format)(...str, ...args)) : console.error(); }; exports.stderr = stderr; } }); // ../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js var require_escape_string_regexp = __commonJS({ "../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js"(exports, module) { "use strict"; init_cjs_shims(); module.exports = (string) => { if (typeof string != "string") throw new TypeError("Expected a string"); return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); }; } }); // ../../node_modules/.pnpm/clean-stack@3.0.1/node_modules/clean-stack/index.js var require_clean_stack = __commonJS({ "../../node_modules/.pnpm/clean-stack@3.0.1/node_modules/clean-stack/index.js"(exports, module) { "use strict"; init_cjs_shims(); var os = __require("os"), escapeStringRegexp = require_escape_string_regexp(), extractPathRegex = /\s+at.*[(\s](.*)\)?/, pathRegex = /^(?:(?:(?:node|(?:(?:node:)?internal\/[\w/]*|.*node_modules\/(?:babel-polyfill|pirates)\/.*)?\w+)(?:\.js)?:\d+:\d+)|native)/, homeDir = typeof os.homedir > "u" ? "" : os.homedir(); module.exports = (stack, { pretty = !1, basePath } = {}) => { let basePathRegex = basePath && new RegExp(`(at | \\()${escapeStringRegexp(basePath)}`, "g"); return stack.replace(/\\/g, "/").split(` `).filter((line) => { let pathMatches = line.match(extractPathRegex); if (pathMatches === null || !pathMatches[1]) return !0; let match = pathMatches[1]; return match.includes(".app/Contents/Resources/electron.asar") || match.includes(".app/Contents/Resources/default_app.asar") ? !1 : !pathRegex.test(match); }).filter((line) => line.trim() !== "").map((line) => (basePathRegex && (line = line.replace(basePathRegex, "$1")), pretty && (line = line.replace(extractPathRegex, (m, p1) => m.replace(p1, p1.replace(homeDir, "~")))), line)).join(` `); }; } }); // ../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js var require_ansi_regex = __commonJS({ "../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js"(exports, module) { "use strict"; init_cjs_shims(); module.exports = ({ onlyFirst = !1 } = {}) => { let pattern = [ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" ].join("|"); return new RegExp(pattern, onlyFirst ? void 0 : "g"); }; } }); // ../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js var require_strip_ansi = __commonJS({ "../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js"(exports, module) { "use strict"; init_cjs_shims(); var ansiRegex = require_ansi_regex(); module.exports = (string) => typeof string == "string" ? string.replace(ansiRegex(), "") : string; } }); // ../../node_modules/.pnpm/is-fullwidth-code-point@3.0.0/node_modules/is-fullwidth-code-point/index.js var require_is_fullwidth_code_point = __commonJS({ "../../node_modules/.pnpm/is-fullwidth-code-point@3.0.0/node_modules/is-fullwidth-code-point/index.js"(exports, module) { "use strict"; init_cjs_shims(); var isFullwidthCodePoint = (codePoint) => Number.isNaN(codePoint) ? !1 : codePoint >= 4352 && (codePoint <= 4447 || // Hangul Jamo codePoint === 9001 || // LEFT-POINTING ANGLE BRACKET codePoint === 9002 || // RIGHT-POINTING ANGLE BRACKET // CJK Radicals Supplement .. Enclosed CJK Letters and Months 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A 12880 <= codePoint && codePoint <= 19903 || // CJK Unified Ideographs .. Yi Radicals 19968 <= codePoint && codePoint <= 42182 || // Hangul Jamo Extended-A 43360 <= codePoint && codePoint <= 43388 || // Hangul Syllables 44032 <= codePoint && codePoint <= 55203 || // CJK Compatibility Ideographs 63744 <= codePoint && codePoint <= 64255 || // Vertical Forms 65040 <= codePoint && codePoint <= 65049 || // CJK Compatibility Forms .. Small Form Variants 65072 <= codePoint && codePoint <= 65131 || // Halfwidth and Fullwidth Forms 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || // Kana Supplement 110592 <= codePoint && codePoint <= 110593 || // Enclosed Ideographic Supplement 127488 <= codePoint && codePoint <= 127569 || // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane 131072 <= codePoint && codePoint <= 262141); module.exports = isFullwidthCodePoint; module.exports.default = isFullwidthCodePoint; } }); // ../../node_modules/.pnpm/emoji-regex@8.0.0/node_modules/emoji-regex/index.js var require_emoji_regex = __commonJS({ "../../node_modules/.pnpm/emoji-regex@8.0.0/node_modules/emoji-regex/index.js"(exports, module) { "use strict"; init_cjs_shims(); module.exports = function() { return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[