├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── scripts ├── copy-files.js └── copy-files.ts ├── src ├── bin │ ├── ZXPSignCmd │ └── ZXPSignCmd.exe ├── cep-config.ts ├── copy-node.ts ├── index.ts ├── lib │ ├── lib.ts │ ├── node-built-ins.ts │ ├── package-sync.ts │ ├── require-js.js │ ├── zip.ts │ └── zxp.ts └── templates │ ├── debug-template.ts │ ├── dev-html-template.ts │ ├── extension-template.ts │ ├── manifest-template.ts │ └── menu-html-template.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.p12 3 | /lib 4 | yarn-error.log 5 | *.DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Hyper Brew LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vite CEP Plugin 2 | 3 | ## ⚠️ This Repo is archived. The project has been consolidated to the monorepo for Bolt CEP: 4 | 5 | [Bolt CEP](https://github.com/hyperbrew/bolt-cep) 6 | 7 | --- 8 | 9 | ![npm](https://img.shields.io/npm/v/vite-cep-plugin) 10 | [![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/hyperbrew/vite-cep-plugin/blob/master/LICENSE) 11 | [![Chat](https://img.shields.io/badge/chat-discord-7289da.svg)](https://discord.gg/PC3EvvuRbc) 12 | 13 | A plugin for bundling Adobe CEP Extension panels with the Vite.js bundler. 14 | 15 | Intented to be used with the `Bolt CEP` bolierplate: https://github.com/hyperbrew/bolt-cep 16 | 17 | Install or update with `yarn add vite-cep-plugin` 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-cep-plugin", 3 | "version": "1.3.2", 4 | "description": "A Vite Plugin for building Adobe CEP Extension Panels", 5 | "main": "lib/index.js", 6 | "types": "lib/index.d.ts", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/hyperbrew/vite-cep-plugin.git" 10 | }, 11 | "homepage": "https://github.com/hyperbrew/vite-cep-plugin", 12 | "license": "MIT", 13 | "scripts": { 14 | "build": "tsc && node scripts/copy-files.js", 15 | "prepare": "npm run build", 16 | "publish": "npm publish --access public", 17 | "publish-beta": "npm publish --access public --tag beta" 18 | }, 19 | "devDependencies": { 20 | "@types/fs-extra": "^9.0.13", 21 | "@types/ws": "^8.2.2", 22 | "ts-node": "^10.4.0", 23 | "typescript": "^4.6.4", 24 | "vite": "^4.0.5" 25 | }, 26 | "dependencies": { 27 | "@types/archiver": "^5.3.1", 28 | "archiver": "^5.3.1", 29 | "fs-extra": "^10.0.0", 30 | "jszip": "^3.10.1", 31 | "magic-string": "^0.25.7", 32 | "prettify-xml": "^1.2.0" 33 | }, 34 | "optionalDependencies": { 35 | "jsxbin": "^2.3.0" 36 | }, 37 | "files": [ 38 | "lib/**/*" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /scripts/copy-files.js: -------------------------------------------------------------------------------- 1 | var fs = require("fs-extra"); 2 | var path = require("path"); 3 | var src = path.join(process.cwd(), "src", "bin"); 4 | var dst = path.join(process.cwd(), "lib", "bin"); 5 | fs.ensureDirSync(dst); 6 | fs.copySync(src, dst); 7 | -------------------------------------------------------------------------------- /scripts/copy-files.ts: -------------------------------------------------------------------------------- 1 | //@ts-nocheck 2 | import * as fs from "fs-extra"; 3 | import * as path from "path"; 4 | 5 | const src = path.join(process.cwd(), "src", "bin"); 6 | const dst = path.join(process.cwd(), "lib", "bin"); 7 | fs.ensureDirSync(dst); 8 | fs.copySync(src, dst); 9 | -------------------------------------------------------------------------------- /src/bin/ZXPSignCmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperbrew/vite-cep-plugin/1ff281742b7fafac31ad23d6d8f22bf22dc3132f/src/bin/ZXPSignCmd -------------------------------------------------------------------------------- /src/bin/ZXPSignCmd.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyperbrew/vite-cep-plugin/1ff281742b7fafac31ad23d6d8f22bf22dc3132f/src/bin/ZXPSignCmd.exe -------------------------------------------------------------------------------- /src/cep-config.ts: -------------------------------------------------------------------------------- 1 | // For more details on Manifest Preferences see: 2 | // https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_11.x/Documentation/CEP%2011.1%20HTML%20Extension%20Cookbook.md 3 | 4 | type CEP_Host_Name = 5 | | "PHSP" 6 | | "PHXS" 7 | | "IDSN" 8 | | "AICY" 9 | | "ILST" 10 | | "PPRO" 11 | | "PRLD" 12 | | "AEFT" 13 | | "FLPR" 14 | | "AUDT" 15 | | "DRWV" 16 | | "KBRG" 17 | | "AME" 18 | | "MUSE" 19 | | "LTRM" 20 | | "DEMO" 21 | | "BRDG" 22 | | "RUSH"; 23 | 24 | type CEP_Host = { 25 | name: CEP_Host_Name; 26 | version: string; 27 | }; 28 | 29 | export type JSXBIN_MODE = "off" | "copy" | "replace"; 30 | 31 | type CEF_Command = 32 | | "--enable-media-stream" 33 | | "--enable-speech-input" 34 | | "--enable-file-cookies" 35 | | "--enable-nodejs" 36 | | "--persist-session-cookies" 37 | | "--disable-image-loading" 38 | | "--disable-javascript-open-windows" 39 | | "--disable-javascript-close-windows" 40 | | "--disable-javascript-access-clipboard" 41 | | "--disable-site-isolation-trials" 42 | | "--enable-caret-browsing" 43 | | "--proxy-auto-detect" 44 | | "--user-agent" 45 | | "--disable-application-cache" 46 | | "--disable-pinch" 47 | | "--mixed-context" 48 | | "--allow-file-access" 49 | | "--allow-file-access-from-files" 50 | | "--disable-popup-blocking" 51 | | "--aggressive-cache-discard" 52 | | "--winhttp-proxy-resolver" 53 | | "--v=0" 54 | | "--v=1" 55 | | "--v=2" 56 | | "--v=3" 57 | | "--v=4" 58 | | "--v=5"; 59 | 60 | type CEP_Panel_Type = 61 | | "Panel" 62 | | "ModalDialog" 63 | | "Modeless" 64 | | "Custom" 65 | | "Embedded"; 66 | 67 | export interface CEP_Panel { 68 | mainPath: string; 69 | name: string; 70 | panelDisplayName?: string | null; 71 | autoVisible: boolean; 72 | width?: number; 73 | height?: number; 74 | maxWidth?: number; 75 | maxHeight?: number; 76 | minWidth?: number; 77 | minHeight?: number; 78 | scriptPath?: string; 79 | host?: string; 80 | type?: CEP_Panel_Type; 81 | id?: string; 82 | iconDarkNormal?: string; 83 | iconNormal?: string; 84 | iconDarkNormalRollOver?: string; 85 | iconNormalRollOver?: string; 86 | parameters?: CEF_Command[]; 87 | startOnEvents?: string[]; 88 | } 89 | 90 | export interface CEP_Extended_Panel extends CEP_Panel { 91 | id: string; 92 | parameters: CEF_Command[]; 93 | type: CEP_Panel_Type; 94 | } 95 | 96 | export interface CEP_Config { 97 | port: number; 98 | servePort: number; 99 | symlink: "local" | "global"; 100 | startingDebugPort: number; 101 | version: string; 102 | id: string; 103 | displayName: string; 104 | extensionManifestVersion: number; 105 | requiredRuntimeVersion: number; 106 | hosts: CEP_Host[]; 107 | type: CEP_Panel_Type; 108 | iconDarkNormal?: string; 109 | iconNormal?: string; 110 | iconDarkNormalRollOver?: string; 111 | iconNormalRollOver?: string; 112 | parameters: CEF_Command[]; 113 | scriptPath?: string; 114 | width?: number; 115 | height?: number; 116 | maxWidth?: number; 117 | maxHeight?: number; 118 | minWidth?: number; 119 | minHeight?: number; 120 | standalone?: boolean; 121 | 122 | panels: CEP_Panel[]; 123 | 124 | build?: { 125 | sourceMap?: boolean; 126 | jsxBin?: JSXBIN_MODE; 127 | }; 128 | zxp: { 129 | country: string; 130 | province: string; 131 | org: string; 132 | password: string; 133 | tsa?: string | string[]; 134 | allowSkipTSA?: boolean; 135 | sourceMap?: boolean; 136 | jsxBin?: JSXBIN_MODE; 137 | }; 138 | installModules?: string[]; 139 | copyAssets?: string[]; 140 | copyZipAssets?: string[]; 141 | } 142 | 143 | export interface CEP_Config_Extended extends CEP_Config { 144 | panels: CEP_Extended_Panel[]; 145 | } 146 | -------------------------------------------------------------------------------- /src/copy-node.ts: -------------------------------------------------------------------------------- 1 | import * as path from "path"; 2 | import * as fs from "fs-extra"; 3 | 4 | export const unique = (array: any) => { 5 | return array.filter((v: string, i: number, a: string) => a.indexOf(v) === i); 6 | }; 7 | 8 | interface NodeSolveArgs { 9 | src: string; 10 | pkg: string; 11 | keepDevDependencies: boolean; 12 | } 13 | 14 | const nodeSolve = ({ src, pkg, keepDevDependencies }: NodeSolveArgs) => { 15 | let allDependencies = [pkg]; 16 | const fullPath = path.join(src, "node_modules", pkg); 17 | // console.log(`getting pkgs for ${fullPath}`); 18 | const pkgJson = path.join(fullPath, "package.json"); 19 | if (fs.existsSync(pkgJson)) { 20 | const raw = fs.readFileSync(pkgJson, { encoding: "utf-8" }); 21 | const json = JSON.parse(raw); 22 | let { dependencies, devDependencies } = json; 23 | const depList = dependencies ? Object.keys(dependencies) : []; 24 | const devDepList = devDependencies ? Object.keys(devDependencies) : []; 25 | const resDepList = keepDevDependencies 26 | ? depList.concat(devDepList) 27 | : depList; 28 | if (resDepList.length > 0) { 29 | allDependencies = allDependencies.concat(resDepList); 30 | resDepList.map((name) => { 31 | allDependencies = allDependencies.concat( 32 | nodeSolve({ src, pkg: name, keepDevDependencies }) 33 | ); 34 | }); 35 | } 36 | } 37 | return allDependencies || []; 38 | }; 39 | 40 | interface CopyModulesArgs { 41 | packages: string[]; 42 | src: string; 43 | dest: string; 44 | symlink: boolean; 45 | } 46 | 47 | export const copyModules = ({ 48 | packages, 49 | src, 50 | dest, 51 | symlink, 52 | }: CopyModulesArgs) => { 53 | const allPkg = packages.flatMap((pkg) => 54 | nodeSolve({ src, pkg, keepDevDependencies: false }) 55 | ); 56 | const uniqePkg = unique(allPkg); 57 | console.log( 58 | `Copying ${packages.length} Node Module(s) (${ 59 | uniqePkg.length 60 | } Dependencies) : ${packages.join(",")}` 61 | ); 62 | fs.ensureDirSync(path.join(dest, "node_modules")); 63 | uniqePkg.map((pkg: string) => { 64 | const fullSrcPath = path.join(process.cwd(), src, "node_modules", pkg); 65 | const fullDstPath = path.join(process.cwd(), dest, "node_modules", pkg); 66 | fs.ensureDirSync(path.dirname(fullDstPath)); 67 | if (!symlink) { 68 | fs.copySync(fullSrcPath, fullDstPath, {dereference: true}); 69 | } else { 70 | fs.ensureSymlink(fullSrcPath, fullDstPath, "dir"); 71 | } 72 | }); 73 | }; 74 | 75 | interface CopyFilesArgs { 76 | src: string; 77 | dest: string; 78 | assets: string[]; 79 | } 80 | 81 | export const copyFiles = ({ src, dest, assets }: CopyFilesArgs) => { 82 | console.log(`Copying ${assets.length} Assets`); 83 | // fs.ensureDirSync(path.join(dest, "node_modules")); 84 | assets.map((asset: string) => { 85 | const fullSrcPath = path.join(src, asset); 86 | if (asset.indexOf("/*") === asset.length - 2) { 87 | // flatten folder 88 | const folder = asset.substring(0, asset.length - 2); 89 | const files = fs.readdirSync(path.join(src, folder)); 90 | 91 | files.map((file) => { 92 | const fullSrcPath = path.join(src, folder, file); 93 | const fullDstPath = path.join(dest, file); 94 | console.log(`COPY ${fullSrcPath} to ${fullDstPath}`); 95 | fs.ensureDirSync(path.dirname(fullDstPath)); 96 | fs.copySync(fullSrcPath, fullDstPath); 97 | }); 98 | } else { 99 | const fullDstPath = path.join(dest, asset); 100 | console.log(`COPY ${fullSrcPath} to ${fullDstPath}`); 101 | fs.ensureDirSync(path.dirname(fullDstPath)); 102 | fs.copySync(fullSrcPath, fullDstPath); 103 | } 104 | }); 105 | }; 106 | 107 | const rollupNodeCopyPlugin = ({ 108 | packages, 109 | src, 110 | dest, 111 | symlink, 112 | }: CopyModulesArgs) => { 113 | return { 114 | name: "copy-node-modules", 115 | buildEnd: async () => { 116 | copyModules({ packages, src, dest, symlink }); 117 | }, 118 | }; 119 | }; 120 | 121 | export default rollupNodeCopyPlugin; 122 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import * as os from "os"; 2 | import * as path from "path"; 3 | 4 | import { Plugin } from "rollup"; 5 | 6 | import { copyFiles, copyModules, unique } from "./copy-node"; 7 | 8 | import * as fs from "fs-extra"; 9 | const prettifyXml = require("prettify-xml"); 10 | 11 | // import { requirejs } from "./lib/require-js"; 12 | 13 | import { 14 | log, 15 | conColors, 16 | posix, 17 | resetLog, 18 | fixAssetPathCSS, 19 | fixAssetPathJS, 20 | fixAssetPathHTML, 21 | removeModuleTags, 22 | } from "./lib/lib"; 23 | import { signZXP } from "./lib/zxp"; 24 | import { manifestTemplate } from "./templates/manifest-template"; 25 | import { debugTemplate } from "./templates/debug-template"; 26 | import { devHtmlTemplate } from "./templates/dev-html-template"; 27 | import type { HtmlTagDescriptor, ResolvedConfig } from "vite"; 28 | import { menuHtmlTemplate } from "./templates/menu-html-template"; 29 | import { CEP_Config, CEP_Config_Extended, JSXBIN_MODE } from "./cep-config"; 30 | // export { CEP_Config } from "./cep-config"; 31 | export type { CEP_Config }; 32 | import { nodeBuiltIns } from "./lib/node-built-ins"; 33 | import MagicString from "magic-string"; 34 | import { metaPackage } from "./lib/zip"; 35 | import { packageSync } from "./lib/package-sync"; 36 | 37 | const homedir = os.homedir(); 38 | const tmpDir = path.join(__dirname, ".tmp"); 39 | fs.ensureDirSync(tmpDir); 40 | 41 | const ccGlobalExtensionFolder = 42 | os.platform() == "win32" 43 | ? "C:/Program Files (x86)/Common Files/Adobe/CEP/extensions" 44 | : "/Library/Application Support/Adobe/CEP/extensions/"; 45 | 46 | const ccLocalExtensionFolder = 47 | os.platform() == "win32" 48 | ? path.join(homedir, "/AppData/Roaming/Adobe/CEP/extensions") 49 | : path.join(homedir, `/Library/Application Support/Adobe/CEP/extensions`); 50 | 51 | const removeZeroByteFiles = async (dir: string) => { 52 | const dirents = await fs.readdir(dir, { withFileTypes: true }); 53 | for (const dirent of dirents) { 54 | const res = path.resolve(dir, dirent.name); 55 | if (dirent.isDirectory()) { 56 | await removeZeroByteFiles(res); 57 | } else { 58 | if ((await fs.stat(res)).size == 0) { 59 | await fs.unlink(res); 60 | } 61 | } 62 | } 63 | }; 64 | 65 | const makeSymlink = (dist: string, dest: string) => { 66 | try { 67 | if (symlinkExists(dest)) { 68 | if (path.resolve(fs.readlinkSync(dest)) === path.resolve(dist)) { 69 | log("symlink already exists", true); 70 | return "exists"; 71 | } else { 72 | // incorrect link, remove and re-create 73 | fs.unlinkSync(dest); 74 | } 75 | } 76 | fs.mkdirSync(path.dirname(dest), { recursive: true }); 77 | fs.symlinkSync(dist, dest, "junction"); 78 | log("symlink created", true); 79 | return "created"; 80 | } catch (e) { 81 | console.log(e); 82 | log("symlink failed. Try running 'sudo yarn symlink'", false); 83 | return "error"; 84 | } 85 | }; 86 | 87 | const removeSymlink = (dist: string, dest: string) => { 88 | try { 89 | if (symlinkExists(dest)) { 90 | fs.unlinkSync(dest); 91 | log("symlink removed successfully", true); 92 | return "removed"; 93 | } else { 94 | log("no symlink exists", true); 95 | return "none"; 96 | } 97 | } catch (e) { 98 | log( 99 | "symlink removal failed. Try removing with 'sudo yarn delsymlink'", 100 | false 101 | ); 102 | return "error"; 103 | } 104 | }; 105 | 106 | const symlinkExists = (dir: string) => { 107 | let exists, readlink, lstat; 108 | // try { 109 | // exists = fs.existsSync(dir); 110 | // } catch (e) {} 111 | // try { 112 | // readlink = fs.readlinkSync(dir); 113 | // } catch (e) {} 114 | try { 115 | lstat = fs.lstatSync(dir); 116 | exists = true; 117 | } catch (e) { 118 | exists = false; 119 | } 120 | return exists; 121 | }; 122 | 123 | const injectRequire = fs.readFileSync( 124 | path.join(__dirname, "./lib/require-js.js"), 125 | { 126 | encoding: "utf-8", 127 | } 128 | ); 129 | 130 | let foundPackages: string[] = []; 131 | 132 | interface CepOptions { 133 | cepConfig: CEP_Config; 134 | dir: string; 135 | isProduction: boolean; 136 | isPackage: boolean; 137 | isMetaPackage: boolean; 138 | debugReact: boolean; 139 | isServe: boolean; 140 | cepDist: string; 141 | zxpDir: string; 142 | zipDir: string; 143 | packages: string[]; 144 | } 145 | export const cep = (opts: CepOptions) => { 146 | const { 147 | cepConfig, 148 | dir, 149 | isProduction, 150 | isPackage, 151 | isMetaPackage, 152 | isServe, 153 | debugReact, 154 | cepDist, 155 | zxpDir, 156 | zipDir, 157 | packages, 158 | } = opts; 159 | 160 | if (cepConfig && cepConfig.panels && isServe) { 161 | console.clear(); 162 | console.log(`${conColors.green}CEP Panels Served at:`); 163 | console.log(""); 164 | cepConfig.panels.map((panel) => { 165 | const relativePath = panel.mainPath; 166 | const name = panel.name; 167 | console.log( 168 | `${conColors.white} > ${name}: ${conColors.cyan}http://localhost:${cepConfig.servePort}/${name}/` 169 | ); 170 | }); 171 | resetLog(); 172 | console.log(""); 173 | } 174 | 175 | return { 176 | name: "cep", 177 | transformIndexHtml(code: string, opts: any) { 178 | const browserRequireIgnore: HtmlTagDescriptor = { 179 | tag: "script", 180 | children: injectRequire, 181 | }; 182 | 183 | if (opts && opts.bundle) { 184 | Object.keys(opts.bundle).filter((file) => { 185 | if (path.extname(file) === ".css") { 186 | let newCode = opts.bundle[file].source; 187 | if (newCode) { 188 | opts.bundle[file].source = fixAssetPathCSS(newCode); 189 | } else { 190 | console.log("missing code: ", file); 191 | } 192 | } 193 | }); 194 | } 195 | 196 | // console.log("HTML Transform"); 197 | const isDev = opts.server !== undefined; 198 | if (isDev) { 199 | const tags: HtmlTagDescriptor[] = [browserRequireIgnore]; 200 | return tags; 201 | } 202 | let cssFileNameMatches = code.match(/(href=\".*.css\")/g); 203 | const cssFileNames = 204 | cssFileNameMatches && 205 | Array.from(cssFileNameMatches).map((file) => 206 | file.replace('href="', "").replace('"', "") 207 | ); 208 | const jsFileNameMatch = code.match(/(src=\".*.js\")/); 209 | const jsFileName = 210 | jsFileNameMatch && 211 | //@ts-ignore 212 | jsFileNameMatch.pop().replace('src="', "").replace('"', ""); 213 | 214 | // TODO: better require transformations 215 | //@ts-ignore 216 | const jsName = jsFileName.substr(1); 217 | 218 | let newCode = opts.bundle[jsName].code; 219 | 220 | const allRequires = newCode.match( 221 | /(require\(\"([A-z]|[0-9]|\.|\/|\-)*\"\)(\;|\,))/g 222 | ); 223 | if (allRequires) { 224 | const requireNames = allRequires.map((req: string) => 225 | //@ts-ignore 226 | req.match(/(["'])(?:(?=(\\?))\2.)*?\1/)[0].replace(/\"/g, "") 227 | ); 228 | const copyModules = requireNames.filter( 229 | (name: string) => 230 | !nodeBuiltIns.includes(name) && ![".", "/", "\\"].includes(name[0]) 231 | ); 232 | foundPackages = foundPackages.concat(copyModules); 233 | } 234 | 235 | const matches = newCode.match( 236 | /(require\(\"\.([A-z]|[0-9]|\.|\/|\-)*\"\)(\;|\,|\)))/g 237 | ); 238 | // console.log(`REQUIRE USED ${matches?.length} times!`); 239 | matches?.map((match: string) => { 240 | const jsPath = match.match(/\".*\"/); 241 | //@ts-ignore 242 | const jsBasename = path.basename(jsPath[0]); 243 | if (jsPath) { 244 | newCode = newCode.replace( 245 | match.substring(0, match.length - 1), 246 | `typeof cep_node !== 'undefined'?cep_node.require(cep_node.global["__dir"+"name"] + "/assets/${jsBasename}):require("../assets/${jsBasename})` 247 | ); 248 | } 249 | }); 250 | newCode = newCode.replace( 251 | `"use strict"`, 252 | `"use strict";var exports = typeof exports === "undefined" ? {} : exports;` 253 | ); 254 | opts.bundle[jsName].code = newCode; 255 | 256 | Object.keys(opts.bundle).map((key) => { 257 | if (path.extname(key) === ".js") { 258 | let { code, source } = opts.bundle[key]; 259 | if (code && code.replace) { 260 | opts.bundle[key].code = fixAssetPathJS(code); 261 | } else if (source && source.replace) { 262 | opts.bundle[key].source = fixAssetPathJS(source); 263 | } else { 264 | console.log("missing code and source: ", opts.bundle[key]); 265 | } 266 | } 267 | }); 268 | 269 | const tags: HtmlTagDescriptor[] = [ 270 | browserRequireIgnore, 271 | { 272 | tag: "script", 273 | attrs: { src: `..${jsFileName}` }, 274 | injectTo: "body", 275 | }, 276 | ]; 277 | 278 | code = removeModuleTags(code); 279 | code = fixAssetPathHTML(code); 280 | 281 | if (debugReact) { 282 | tags.push({ 283 | tag: "script", 284 | attrs: { src: "http://localhost:8097" }, 285 | injectTo: "body", 286 | }); 287 | } 288 | 289 | return { 290 | tags, 291 | html: code, 292 | }; 293 | }, 294 | 295 | configResolved(config: ResolvedConfig | any) { 296 | if (!isProduction) { 297 | console.clear(); 298 | console.log(`${conColors.green}CEP Panels Served at:`); 299 | console.log(""); 300 | //@ts-ignore 301 | Object.keys(config.build.rollupOptions.input).map((key: string) => { 302 | //@ts-ignore 303 | const filePath = config.build.rollupOptions.input[key]; 304 | const relativePath = path.relative(config.root, filePath); 305 | const destPath = path.resolve(config.build.outDir, relativePath); 306 | const panelHtmlFile = { 307 | type: "asset", 308 | source: devHtmlTemplate({ 309 | ...cepConfig, 310 | url: `http://localhost:${cepConfig.port}/${posix(relativePath)}`, 311 | injectRequire, 312 | }), 313 | name: "CEP HTML Dev File", 314 | fileName: "index.html", 315 | }; 316 | fs.writeFileSync(destPath, panelHtmlFile.source); 317 | console.log( 318 | `${conColors.white} > ${path.dirname(relativePath)}: ${ 319 | conColors.cyan 320 | }http://localhost:${cepConfig.port}/${posix( 321 | path.dirname(relativePath) 322 | )}/` 323 | ); 324 | }); 325 | } 326 | }, 327 | async writeBundle() { 328 | // console.log(" BUILD END"); 329 | const root = "./"; 330 | const src = "./src"; 331 | const dest = `dist/${cepDist}`; 332 | const symlink = false; 333 | const allPackages = unique(packages.concat(foundPackages)); 334 | copyModules({ packages: allPackages, src: root, dest, symlink }); 335 | if (cepConfig.copyAssets) { 336 | copyFiles({ 337 | src: path.join(process.cwd(), src), 338 | dest: path.join(process.cwd(), dest), 339 | assets: cepConfig.copyAssets, 340 | }); 341 | } 342 | 343 | const input = path.join(dir, cepDist); 344 | await removeZeroByteFiles(input); 345 | if (isPackage) { 346 | const zxpPath = await signZXP(cepConfig, input, zxpDir, tmpDir); 347 | if (isMetaPackage) { 348 | await metaPackage( 349 | cepConfig, 350 | zipDir, 351 | zxpPath, 352 | src, 353 | cepConfig.copyZipAssets 354 | ); 355 | } 356 | } 357 | }, 358 | async generateBundle(output: any, bundle: any) { 359 | console.log( 360 | `${conColors.green}cep process: ${ 361 | (isPackage && "zxp package") || (isProduction && "build") || "dev" 362 | }` 363 | ); 364 | 365 | // Fill any empty panel fields with extension's defaults 366 | const fillPanelFields = (config: CEP_Config) => { 367 | let newConfig: CEP_Config_Extended = { 368 | ...config, 369 | panels: config.panels.map((panel) => { 370 | let newProps: any = { ...config, ...panel }; 371 | return { 372 | id: panel.id ? panel.id : `${config.id}.${panel.name}`, 373 | name: newProps.name, 374 | parameters: newProps.parameters, 375 | autoVisible: newProps.autoVisible, 376 | mainPath: newProps.mainPath, 377 | type: newProps.type, 378 | host: newProps.host, 379 | panelDisplayName: newProps.panelDisplayName, 380 | width: newProps.width, 381 | height: newProps.height, 382 | minWidth: newProps.minWidth, 383 | minHeight: newProps.minHeight, 384 | maxWidth: newProps.maxWidth, 385 | maxHeight: newProps.maxHeight, 386 | iconNormal: newProps.iconNormal, 387 | iconDarkNormal: newProps.iconDarkNormal, 388 | iconNormalRollOver: newProps.iconNormalRollOver, 389 | iconDarkNormalRollOver: newProps.iconDarkNormalRollOver, 390 | scriptPath: newProps.scriptPath, 391 | startOnEvents: newProps.startOnEvents, 392 | }; 393 | }), 394 | }; 395 | return newConfig; 396 | }; 397 | 398 | const extendedConfig = fillPanelFields(cepConfig); 399 | 400 | const manifestFile = { 401 | type: "asset", 402 | source: prettifyXml(manifestTemplate(extendedConfig), { 403 | indent: 2, 404 | newline: "\n", 405 | }), 406 | name: "CEP Manifest File", 407 | fileName: path.join("CSXS", "manifest.xml"), 408 | }; 409 | //@ts-ignore 410 | this.emitFile(manifestFile); 411 | log("manifest created", true); 412 | 413 | // const menuFile = { 414 | // type: "asset", 415 | // source: menuHtmlTemplate({ 416 | // displayName: cepConfig.displayName, 417 | // menu: cepConfig.panels.map((panel) => { 418 | // return { 419 | // name: panel.name, 420 | // url: panel.mainPath, 421 | // }; 422 | // }), 423 | // }), 424 | // name: "Menu File", 425 | // fileName: path.join("index.html"), 426 | // }; 427 | //@ts-ignore 428 | // this.emitFile(menuFile); 429 | // log("menu created", true); 430 | 431 | const debugFile = { 432 | type: "asset", 433 | 434 | source: prettifyXml(debugTemplate(extendedConfig)), 435 | name: "CEP Debug File", 436 | fileName: path.join(".debug"), 437 | }; 438 | //@ts-ignore 439 | this.emitFile(debugFile); 440 | log("debug file created", true); 441 | 442 | try { 443 | const symlinkPath = 444 | cepConfig.symlink === "global" 445 | ? ccGlobalExtensionFolder 446 | : ccLocalExtensionFolder; 447 | const res = makeSymlink( 448 | path.join(dir, cepDist), 449 | path.join(symlinkPath, cepConfig.id) 450 | ); 451 | } catch (e) { 452 | console.warn(e); 453 | } 454 | 455 | console.log(""); 456 | }, 457 | }; 458 | }; 459 | 460 | export const jsxInclude = ({ 461 | iife, 462 | globalThis, 463 | }: { 464 | iife: boolean; 465 | globalThis: string; 466 | }): Plugin | any => { 467 | const foundIncludes: string[] = []; 468 | return { 469 | name: "extendscript-include-resolver", 470 | generateBundle: ( 471 | output: any, 472 | bundle: { [key: string]: { code: string } } 473 | ) => { 474 | const esFile = Object.keys(bundle).pop() as keyof object; 475 | const core = [ 476 | "// ----- EXTENDSCRIPT INCLUDES ------ //", 477 | ...foundIncludes, 478 | "// ---------------------------------- //", 479 | bundle[esFile].code, 480 | ]; 481 | if (iife) { 482 | const banner = `(function (${globalThis}) {`; 483 | const footer = "})(this);"; 484 | bundle[esFile].code = [banner, ...core, footer].join("\r"); 485 | } else { 486 | bundle[esFile].code = core.join("\r"); 487 | } 488 | }, 489 | transform: (code: string, id: string) => { 490 | const s = new MagicString(code); 491 | // console.log("looking for JSXINCLUDE"); 492 | const includeMatches = code.match(/^\/\/(\s|)\@include(.*)/gm); 493 | if (includeMatches) { 494 | // console.log("FOUND!", matches); 495 | includeMatches.map((match: string) => { 496 | const innerMatches = match.match(/(?:'|").*(?:'|")/); 497 | const firstMatch = innerMatches?.pop(); 498 | if (firstMatch) { 499 | const relativeDir = firstMatch.replace(/(\"|\')/g, ""); 500 | const filePath = path.join(path.dirname(id), relativeDir); 501 | let text = ""; 502 | if (fs.existsSync(filePath)) { 503 | text = fs.readFileSync(filePath, { encoding: "utf-8" }); 504 | foundIncludes.push(text); 505 | } else { 506 | console.warn( 507 | `WARNING: File cannot be found for include ${match}` 508 | ); 509 | } 510 | // console.log("INDEX :: ", code.indexOf(match)); 511 | // console.log("CODE :: ", code); 512 | s.overwrite( 513 | code.indexOf(match), 514 | code.indexOf(match) + match.length, 515 | "" 516 | ); 517 | } 518 | }); 519 | } 520 | const commentMatches = code.match(/\/\/(\s|)\@(.*)/gm); 521 | if (commentMatches) { 522 | let end = 0; 523 | commentMatches.map((comment) => { 524 | const start = code.indexOf(comment, end); 525 | end = start + comment.length; 526 | s.overwrite(start, end, ""); 527 | }); 528 | } 529 | return { 530 | code: s.toString(), 531 | map: s.generateMap({ 532 | source: id, 533 | file: `${id}.map`, 534 | includeContent: true, 535 | }), 536 | }; 537 | }, 538 | }; 539 | }; 540 | 541 | interface PonyFillItem { 542 | find: string; 543 | replace: string; 544 | inject: string; 545 | } 546 | export const jsxPonyfill = (extraPonyfills?: PonyFillItem[]): Plugin | any => { 547 | let usedPonyfills = new Set(); 548 | let ponyfills: PonyFillItem[] = [ 549 | { 550 | find: "Object.freeze", 551 | replace: "__objectFreeze", 552 | inject: `function __objectFreeze(obj) { return obj; }`, 553 | }, 554 | { 555 | find: "Array.isArray", 556 | replace: "__isArray", 557 | inject: `function __isArray(arr) { try { return arr instanceof Array; } catch (e) { return false; } };`, 558 | }, 559 | ]; 560 | if (extraPonyfills) { 561 | ponyfills = [...ponyfills, ...extraPonyfills]; 562 | } 563 | return { 564 | name: "extendscript-ponyfill-resolver", 565 | generateBundle: ( 566 | output: any, 567 | bundle: { [key: string]: { code: string } } 568 | ) => { 569 | const esFile = Object.keys(bundle).pop() as keyof object; 570 | 571 | let ponyfillStr = [ 572 | `// ----- EXTENDSCRIPT PONYFILLS -----`, 573 | Array.from(usedPonyfills) 574 | .map((p) => p.inject) 575 | .join("\r"), 576 | "// ---------------------------------- //", 577 | ].join("\r"); 578 | 579 | const core = [ponyfillStr, bundle[esFile].code]; 580 | bundle[esFile].code = core.join("\r"); 581 | }, 582 | renderChunk: (code: string, chunk: any) => { 583 | const id = chunk.fileName; 584 | const s = new MagicString(code); 585 | // console.log("Ponyfill Time"); 586 | 587 | ponyfills.map((pony) => { 588 | const regexp = new RegExp(pony.find, "g"); 589 | const gen = code.matchAll(regexp); 590 | // console.log("GEN", gen); 591 | if (gen) { 592 | const matches = [...gen]; 593 | // console.log("FOUND!", pony.find); 594 | matches.map((match) => { 595 | usedPonyfills.add(pony); 596 | const index = match.index; 597 | const length = match[0].length; 598 | if (index) { 599 | // console.log("REPLACING :: ", index, index + length); 600 | s.overwrite( 601 | index, 602 | index + length, 603 | pony.replace 604 | // text 605 | ); 606 | } 607 | }); 608 | } 609 | }); 610 | 611 | return { 612 | code: s.toString(), 613 | map: s.generateMap({ 614 | source: id, 615 | file: `${id}.map`, 616 | includeContent: true, 617 | }), 618 | }; 619 | }, 620 | }; 621 | }; 622 | 623 | export const runAction = (opts: CepOptions, action: string) => { 624 | const { 625 | cepConfig, 626 | dir, 627 | isProduction, 628 | isPackage, 629 | isServe, 630 | debugReact, 631 | cepDist, 632 | zxpDir, 633 | packages, 634 | } = opts; 635 | 636 | const symlinkPath = 637 | cepConfig.symlink === "global" 638 | ? ccGlobalExtensionFolder 639 | : ccLocalExtensionFolder; 640 | const symlinkSrc = path.join(dir, cepDist); 641 | const symlinkDst = path.join(symlinkPath, cepConfig.id); 642 | 643 | if (action === "symlink") { 644 | makeSymlink(symlinkSrc, symlinkDst); 645 | } else if (action === "delsymlink") { 646 | removeSymlink(symlinkSrc, symlinkDst); 647 | } else if (action === "dependencyCheck") { 648 | console.log("Checking Dependencies"); 649 | packageSync(); 650 | } else { 651 | console.warn(`Unknown Action: ${action}`); 652 | } 653 | resetLog(); 654 | }; 655 | 656 | export const jsxBin = (jsxBinMode?: JSXBIN_MODE) => { 657 | return { 658 | name: "extendscript-jsxbin", 659 | generateBundle: async function (output: any, bundle: any) { 660 | if (jsxBinMode === "copy" || jsxBinMode === "replace") { 661 | const esFile = Object.keys(bundle).pop(); 662 | if (esFile) { 663 | // console.log("GENERATE JSXBIN"); 664 | const srcFilePathTmp = path.join(tmpDir, esFile); 665 | const esFileBin = esFile.replace("js", "jsxbin"); 666 | const dstFilePathTmp = path.join(tmpDir, esFileBin); 667 | const tmpSrc = fs.writeFileSync(srcFilePathTmp, bundle[esFile].code, { 668 | encoding: "utf-8", 669 | }); 670 | const jsxbin = require("jsxbin"); 671 | await jsxbin(srcFilePathTmp, dstFilePathTmp); 672 | const output = fs.readFileSync(dstFilePathTmp, { encoding: "utf-8" }); 673 | const jsxBinFile = { 674 | type: "asset", 675 | source: output, 676 | name: "JSXBIN", 677 | fileName: esFileBin, 678 | }; 679 | //@ts-ignore 680 | this.emitFile(jsxBinFile); 681 | console.log(`JSXBIN Created: ${esFileBin}`); 682 | if (jsxBinMode === "replace") { 683 | delete bundle[esFile]; 684 | } 685 | } 686 | } 687 | }, 688 | }; 689 | }; 690 | -------------------------------------------------------------------------------- /src/lib/lib.ts: -------------------------------------------------------------------------------- 1 | import * as os from "os"; 2 | import * as fs from "fs-extra"; 3 | 4 | export const conColors = { 5 | white: "\u001b[0m", 6 | whiteBold: "\u001b[1;37m", 7 | cyan: "\u001b[1;36m", 8 | purple: "\u001b[1;35m", 9 | blue: "\u001b[1;34m", 10 | yellow: "\u001b[1;33m", 11 | green: "\u001b[1;32m", 12 | red: "\u001b[1;31m", 13 | grey: "\u001b[1;30m", 14 | }; 15 | 16 | export const log = (str: string, succeeded: boolean, info?: string) => { 17 | const res = succeeded ? "succeeded √" : "failed ×"; 18 | const color = succeeded ? conColors.cyan : conColors.red; 19 | console.log(`${color}${str} → ${res} ${(info && ":") || ""} ${info || ""}`); 20 | if (!succeeded) throw info; 21 | }; 22 | 23 | export const resetLog = () => { 24 | console.log(conColors.white); 25 | }; 26 | 27 | export const sep = os.platform() == "win32" ? "\\" : "/"; 28 | 29 | export const removeIfExists = (dir: string) => { 30 | try { 31 | fs.existsSync(dir) && fs.removeSync(dir); 32 | return [true, "Removed"]; 33 | } catch (e) { 34 | return [false, e]; 35 | } 36 | }; 37 | 38 | export const safeCreate = (dir: string) => { 39 | try { 40 | if (!fs.existsSync(dir)) { 41 | fs.mkdirSync(dir); 42 | return [true, "Created"]; 43 | } 44 | return [true, "Already Exists"]; 45 | } catch (e) { 46 | return [false, e]; 47 | } 48 | }; 49 | 50 | export const posix = (str: string) => str.replace(/\\/g, "/"); 51 | 52 | export const fixAssetPathJS = (code: string) => { 53 | code = code.replace(/\=\"\.\/assets/g, `="../assets`); 54 | code = code.replace(/\=\"\/assets/g, `="../assets`); 55 | code = code.replace(/\(\"\.\/assets/g, `("../assets`); 56 | code = code.replace(/\(\"\/assets/g, `("../assets`); 57 | return code; 58 | }; 59 | 60 | export const fixAssetPathCSS = (code: string) => { 61 | code = code.replace(/\(\.\/assets/g, `(../assets`); 62 | code = code.replace(/\(\/assets/g, `(./`); 63 | return code; 64 | }; 65 | 66 | export const fixAssetPathHTML = (code: string) => { 67 | code = code.replace(/\=\"\/assets/g, `="../assets`); 68 | return code; 69 | }; 70 | 71 | export const removeModuleTags = (code: string) => { 72 | code = code.replace(/\/g, ""); 73 | code = code.replace(/\ 18 | 19 | 20 | 21 |
22 | 25 | 26 | 27 | 28 | `; 29 | -------------------------------------------------------------------------------- /src/templates/extension-template.ts: -------------------------------------------------------------------------------- 1 | import type { CEP_Extended_Panel } from "../cep-config"; 2 | 3 | export const extensionTemplate = ({ 4 | id, 5 | name, 6 | parameters, 7 | autoVisible, 8 | mainPath, 9 | type, 10 | host, 11 | panelDisplayName, 12 | width, 13 | height, 14 | minWidth, 15 | minHeight, 16 | maxWidth, 17 | maxHeight, 18 | iconNormal, 19 | iconDarkNormal, 20 | iconNormalRollOver, 21 | iconDarkNormalRollOver, 22 | scriptPath, 23 | startOnEvents, 24 | }: CEP_Extended_Panel) => ` 25 | 26 | 27 | ${mainPath}${ 28 | (scriptPath && `${scriptPath}`) || "" 29 | }${ 30 | (parameters && 31 | parameters 32 | .map((item) => `\n${item.toString()}`) 33 | .join("")) || 34 | "" 35 | } 36 | 37 | 38 | 39 | ${autoVisible}${ 40 | (startOnEvents && 41 | `${startOnEvents 42 | .map((event) => `\n${event}`) 43 | .join("")}`) || 44 | "" 45 | } 46 | 47 | 48 | ${type} 49 | ${panelDisplayName ? `${panelDisplayName}` : ""} 50 | ${ 51 | width && height 52 | ? ` 53 | ${width} 54 | ${height} 55 | ` 56 | : "" 57 | }${ 58 | maxWidth && maxHeight 59 | ? ` 60 | ${maxWidth} 61 | ${maxHeight} 62 | ` 63 | : "" 64 | }${ 65 | minWidth && minHeight 66 | ? ` 67 | ${minWidth} 68 | ${minHeight} 69 | ` 70 | : "" 71 | } 72 | 73 | ${iconNormal} 74 | ${iconDarkNormal} 75 | ${iconNormalRollOver} 76 | ${iconDarkNormalRollOver} 77 | 78 | 79 | 80 | 81 | `; 82 | -------------------------------------------------------------------------------- /src/templates/manifest-template.ts: -------------------------------------------------------------------------------- 1 | import type { CEP_Config_Extended } from "../cep-config"; 2 | import { extensionTemplate } from "./extension-template"; 3 | export const manifestTemplate = (props: CEP_Config_Extended) => { 4 | const { 5 | extensionManifestVersion, 6 | id, 7 | displayName, 8 | version, 9 | hosts, 10 | requiredRuntimeVersion, 11 | standalone, 12 | panels, 13 | } = props; 14 | return ` 17 | 24 | 25 | ${panels 26 | .map((panel) => ``) 27 | .filter((value, index, self) => self.indexOf(value) === index) // remove duplicates 28 | .join("")} 29 | 30 | 31 | 32 | ${hosts 33 | .map((host) => ``) 34 | .join("")} 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | ${panels 44 | .map((panel) => extensionTemplate(panel)) 45 | .join("")} 46 | `; 47 | }; 48 | -------------------------------------------------------------------------------- /src/templates/menu-html-template.ts: -------------------------------------------------------------------------------- 1 | export const menuHtmlTemplate = ({ 2 | displayName, 3 | menu, 4 | }: { 5 | displayName: string; 6 | menu: [{ name: string; url: string }]; 7 | }) => ` 8 | 9 | 10 | 11 | 12 | 13 | 14 | ${displayName} 15 | 34 | 35 | 36 | 37 |

Select Panel

38 | 43 | 44 | 45 | 46 | `; 47 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2015", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "./lib", 7 | "strict": true, 8 | "allowJs": true, 9 | "skipLibCheck": true 10 | }, 11 | "include": ["src", "src/lib/require-js.js", "src/bin/*"], 12 | "exclude": ["node_modules"] 13 | } 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@colors/colors@1.6.0", "@colors/colors@^1.6.0": 6 | version "1.6.0" 7 | resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" 8 | integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== 9 | 10 | "@cspotcode/source-map-consumer@0.8.0": 11 | version "0.8.0" 12 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" 13 | integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== 14 | 15 | "@cspotcode/source-map-support@0.7.0": 16 | version "0.7.0" 17 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" 18 | integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== 19 | dependencies: 20 | "@cspotcode/source-map-consumer" "0.8.0" 21 | 22 | "@dabh/diagnostics@^2.0.2": 23 | version "2.0.2" 24 | resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" 25 | integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== 26 | dependencies: 27 | colorspace "1.1.x" 28 | enabled "2.0.x" 29 | kuler "^2.0.0" 30 | 31 | "@esbuild/android-arm64@0.18.20": 32 | version "0.18.20" 33 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" 34 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== 35 | 36 | "@esbuild/android-arm@0.18.20": 37 | version "0.18.20" 38 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" 39 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== 40 | 41 | "@esbuild/android-x64@0.18.20": 42 | version "0.18.20" 43 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" 44 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== 45 | 46 | "@esbuild/darwin-arm64@0.18.20": 47 | version "0.18.20" 48 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" 49 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== 50 | 51 | "@esbuild/darwin-x64@0.18.20": 52 | version "0.18.20" 53 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" 54 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== 55 | 56 | "@esbuild/freebsd-arm64@0.18.20": 57 | version "0.18.20" 58 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" 59 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== 60 | 61 | "@esbuild/freebsd-x64@0.18.20": 62 | version "0.18.20" 63 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" 64 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== 65 | 66 | "@esbuild/linux-arm64@0.18.20": 67 | version "0.18.20" 68 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" 69 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== 70 | 71 | "@esbuild/linux-arm@0.18.20": 72 | version "0.18.20" 73 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" 74 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== 75 | 76 | "@esbuild/linux-ia32@0.18.20": 77 | version "0.18.20" 78 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" 79 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== 80 | 81 | "@esbuild/linux-loong64@0.18.20": 82 | version "0.18.20" 83 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" 84 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== 85 | 86 | "@esbuild/linux-mips64el@0.18.20": 87 | version "0.18.20" 88 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" 89 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== 90 | 91 | "@esbuild/linux-ppc64@0.18.20": 92 | version "0.18.20" 93 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" 94 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== 95 | 96 | "@esbuild/linux-riscv64@0.18.20": 97 | version "0.18.20" 98 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" 99 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== 100 | 101 | "@esbuild/linux-s390x@0.18.20": 102 | version "0.18.20" 103 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" 104 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== 105 | 106 | "@esbuild/linux-x64@0.18.20": 107 | version "0.18.20" 108 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" 109 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== 110 | 111 | "@esbuild/netbsd-x64@0.18.20": 112 | version "0.18.20" 113 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" 114 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== 115 | 116 | "@esbuild/openbsd-x64@0.18.20": 117 | version "0.18.20" 118 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" 119 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== 120 | 121 | "@esbuild/sunos-x64@0.18.20": 122 | version "0.18.20" 123 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" 124 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== 125 | 126 | "@esbuild/win32-arm64@0.18.20": 127 | version "0.18.20" 128 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" 129 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== 130 | 131 | "@esbuild/win32-ia32@0.18.20": 132 | version "0.18.20" 133 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" 134 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== 135 | 136 | "@esbuild/win32-x64@0.18.20": 137 | version "0.18.20" 138 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" 139 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== 140 | 141 | "@isaacs/cliui@^8.0.2": 142 | version "8.0.2" 143 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 144 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 145 | dependencies: 146 | string-width "^5.1.2" 147 | string-width-cjs "npm:string-width@^4.2.0" 148 | strip-ansi "^7.0.1" 149 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 150 | wrap-ansi "^8.1.0" 151 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 152 | 153 | "@tsconfig/node10@^1.0.7": 154 | version "1.0.8" 155 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 156 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 157 | 158 | "@tsconfig/node12@^1.0.7": 159 | version "1.0.9" 160 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 161 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 162 | 163 | "@tsconfig/node14@^1.0.0": 164 | version "1.0.1" 165 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 166 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 167 | 168 | "@tsconfig/node16@^1.0.2": 169 | version "1.0.2" 170 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 171 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 172 | 173 | "@types/archiver@^5.3.1": 174 | version "5.3.1" 175 | resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.1.tgz#02991e940a03dd1a32678fead4b4ca03d0e387ca" 176 | integrity sha512-wKYZaSXaDvTZuInAWjCeGG7BEAgTWG2zZW0/f7IYFcoHB2X2d9lkVFnrOlXl3W6NrvO6Ml3FLLu8Uksyymcpnw== 177 | dependencies: 178 | "@types/glob" "*" 179 | 180 | "@types/fs-extra@^9.0.13": 181 | version "9.0.13" 182 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" 183 | integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== 184 | dependencies: 185 | "@types/node" "*" 186 | 187 | "@types/glob@*": 188 | version "8.0.0" 189 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.0.tgz#321607e9cbaec54f687a0792b2d1d370739455d2" 190 | integrity sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA== 191 | dependencies: 192 | "@types/minimatch" "*" 193 | "@types/node" "*" 194 | 195 | "@types/minimatch@*": 196 | version "5.1.2" 197 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" 198 | integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== 199 | 200 | "@types/node@*": 201 | version "16.11.12" 202 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" 203 | integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== 204 | 205 | "@types/triple-beam@^1.3.2": 206 | version "1.3.5" 207 | resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" 208 | integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== 209 | 210 | "@types/ws@^8.2.2": 211 | version "8.2.2" 212 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21" 213 | integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg== 214 | dependencies: 215 | "@types/node" "*" 216 | 217 | acorn-walk@^8.1.1: 218 | version "8.2.0" 219 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 220 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 221 | 222 | acorn@^8.4.1: 223 | version "8.7.0" 224 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 225 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 226 | 227 | ansi-regex@^5.0.1: 228 | version "5.0.1" 229 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 230 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 231 | 232 | ansi-regex@^6.0.1: 233 | version "6.1.0" 234 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" 235 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== 236 | 237 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 238 | version "4.3.0" 239 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 240 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 241 | dependencies: 242 | color-convert "^2.0.1" 243 | 244 | ansi-styles@^6.1.0: 245 | version "6.2.1" 246 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 247 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 248 | 249 | archiver-utils@^2.1.0: 250 | version "2.1.0" 251 | resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" 252 | integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== 253 | dependencies: 254 | glob "^7.1.4" 255 | graceful-fs "^4.2.0" 256 | lazystream "^1.0.0" 257 | lodash.defaults "^4.2.0" 258 | lodash.difference "^4.5.0" 259 | lodash.flatten "^4.4.0" 260 | lodash.isplainobject "^4.0.6" 261 | lodash.union "^4.6.0" 262 | normalize-path "^3.0.0" 263 | readable-stream "^2.0.0" 264 | 265 | archiver@^5.3.1: 266 | version "5.3.1" 267 | resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" 268 | integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== 269 | dependencies: 270 | archiver-utils "^2.1.0" 271 | async "^3.2.3" 272 | buffer-crc32 "^0.2.1" 273 | readable-stream "^3.6.0" 274 | readdir-glob "^1.0.0" 275 | tar-stream "^2.2.0" 276 | zip-stream "^4.1.0" 277 | 278 | arg@^4.1.0: 279 | version "4.1.3" 280 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 281 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 282 | 283 | array-back@^6.2.2: 284 | version "6.2.2" 285 | resolved "https://registry.yarnpkg.com/array-back/-/array-back-6.2.2.tgz#f567d99e9af88a6d3d2f9dfcc21db6f9ba9fd157" 286 | integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw== 287 | 288 | async@^3.2.3: 289 | version "3.2.3" 290 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" 291 | integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== 292 | 293 | balanced-match@^1.0.0: 294 | version "1.0.2" 295 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 296 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 297 | 298 | base64-js@^1.3.1: 299 | version "1.5.1" 300 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 301 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 302 | 303 | bl@^4.0.3: 304 | version "4.1.0" 305 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 306 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 307 | dependencies: 308 | buffer "^5.5.0" 309 | inherits "^2.0.4" 310 | readable-stream "^3.4.0" 311 | 312 | brace-expansion@^1.1.7: 313 | version "1.1.11" 314 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 315 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 316 | dependencies: 317 | balanced-match "^1.0.0" 318 | concat-map "0.0.1" 319 | 320 | brace-expansion@^2.0.1: 321 | version "2.0.1" 322 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 323 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 324 | dependencies: 325 | balanced-match "^1.0.0" 326 | 327 | buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: 328 | version "0.2.13" 329 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 330 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== 331 | 332 | buffer@^5.5.0: 333 | version "5.7.1" 334 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 335 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 336 | dependencies: 337 | base64-js "^1.3.1" 338 | ieee754 "^1.1.13" 339 | 340 | chalk-template@^0.4.0: 341 | version "0.4.0" 342 | resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-0.4.0.tgz#692c034d0ed62436b9062c1707fadcd0f753204b" 343 | integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== 344 | dependencies: 345 | chalk "^4.1.2" 346 | 347 | chalk@^4.1.2: 348 | version "4.1.2" 349 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 350 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 351 | dependencies: 352 | ansi-styles "^4.1.0" 353 | supports-color "^7.1.0" 354 | 355 | color-convert@^1.9.3: 356 | version "1.9.3" 357 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 358 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 359 | dependencies: 360 | color-name "1.1.3" 361 | 362 | color-convert@^2.0.1: 363 | version "2.0.1" 364 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 365 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 366 | dependencies: 367 | color-name "~1.1.4" 368 | 369 | color-name@1.1.3: 370 | version "1.1.3" 371 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 372 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 373 | 374 | color-name@^1.0.0, color-name@~1.1.4: 375 | version "1.1.4" 376 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 377 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 378 | 379 | color-string@^1.6.0: 380 | version "1.9.0" 381 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" 382 | integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== 383 | dependencies: 384 | color-name "^1.0.0" 385 | simple-swizzle "^0.2.2" 386 | 387 | color@^3.1.3: 388 | version "3.2.1" 389 | resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" 390 | integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== 391 | dependencies: 392 | color-convert "^1.9.3" 393 | color-string "^1.6.0" 394 | 395 | colorspace@1.1.x: 396 | version "1.1.4" 397 | resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" 398 | integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== 399 | dependencies: 400 | color "^3.1.3" 401 | text-hex "1.0.x" 402 | 403 | command-line-args@^6.0.1: 404 | version "6.0.1" 405 | resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-6.0.1.tgz#cbd1efb4f72b285dbd54bde9a8585c2d9694b070" 406 | integrity sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg== 407 | dependencies: 408 | array-back "^6.2.2" 409 | find-replace "^5.0.2" 410 | lodash.camelcase "^4.3.0" 411 | typical "^7.2.0" 412 | 413 | command-line-usage@^7.0.3: 414 | version "7.0.3" 415 | resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-7.0.3.tgz#6bce992354f6af10ecea2b631bfdf0c8b3bfaea3" 416 | integrity sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q== 417 | dependencies: 418 | array-back "^6.2.2" 419 | chalk-template "^0.4.0" 420 | table-layout "^4.1.0" 421 | typical "^7.1.1" 422 | 423 | compress-commons@^4.1.0: 424 | version "4.1.1" 425 | resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" 426 | integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== 427 | dependencies: 428 | buffer-crc32 "^0.2.13" 429 | crc32-stream "^4.0.2" 430 | normalize-path "^3.0.0" 431 | readable-stream "^3.6.0" 432 | 433 | concat-map@0.0.1: 434 | version "0.0.1" 435 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 436 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 437 | 438 | core-util-is@~1.0.0: 439 | version "1.0.3" 440 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 441 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 442 | 443 | crc-32@^1.2.0: 444 | version "1.2.2" 445 | resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" 446 | integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== 447 | 448 | crc32-stream@^4.0.2: 449 | version "4.0.2" 450 | resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" 451 | integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== 452 | dependencies: 453 | crc-32 "^1.2.0" 454 | readable-stream "^3.4.0" 455 | 456 | create-require@^1.1.0: 457 | version "1.1.1" 458 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 459 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 460 | 461 | cross-spawn@^7.0.6: 462 | version "7.0.6" 463 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 464 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 465 | dependencies: 466 | path-key "^3.1.0" 467 | shebang-command "^2.0.0" 468 | which "^2.0.1" 469 | 470 | diff@^4.0.1: 471 | version "4.0.2" 472 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 473 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 474 | 475 | eastasianwidth@^0.2.0: 476 | version "0.2.0" 477 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 478 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 479 | 480 | emoji-regex@^8.0.0: 481 | version "8.0.0" 482 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 483 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 484 | 485 | emoji-regex@^9.2.2: 486 | version "9.2.2" 487 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 488 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 489 | 490 | enabled@2.0.x: 491 | version "2.0.0" 492 | resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" 493 | integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== 494 | 495 | end-of-stream@^1.4.1: 496 | version "1.4.4" 497 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 498 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 499 | dependencies: 500 | once "^1.4.0" 501 | 502 | esbuild@^0.18.10: 503 | version "0.18.20" 504 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" 505 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== 506 | optionalDependencies: 507 | "@esbuild/android-arm" "0.18.20" 508 | "@esbuild/android-arm64" "0.18.20" 509 | "@esbuild/android-x64" "0.18.20" 510 | "@esbuild/darwin-arm64" "0.18.20" 511 | "@esbuild/darwin-x64" "0.18.20" 512 | "@esbuild/freebsd-arm64" "0.18.20" 513 | "@esbuild/freebsd-x64" "0.18.20" 514 | "@esbuild/linux-arm" "0.18.20" 515 | "@esbuild/linux-arm64" "0.18.20" 516 | "@esbuild/linux-ia32" "0.18.20" 517 | "@esbuild/linux-loong64" "0.18.20" 518 | "@esbuild/linux-mips64el" "0.18.20" 519 | "@esbuild/linux-ppc64" "0.18.20" 520 | "@esbuild/linux-riscv64" "0.18.20" 521 | "@esbuild/linux-s390x" "0.18.20" 522 | "@esbuild/linux-x64" "0.18.20" 523 | "@esbuild/netbsd-x64" "0.18.20" 524 | "@esbuild/openbsd-x64" "0.18.20" 525 | "@esbuild/sunos-x64" "0.18.20" 526 | "@esbuild/win32-arm64" "0.18.20" 527 | "@esbuild/win32-ia32" "0.18.20" 528 | "@esbuild/win32-x64" "0.18.20" 529 | 530 | fecha@^4.2.0: 531 | version "4.2.1" 532 | resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" 533 | integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== 534 | 535 | find-replace@^5.0.2: 536 | version "5.0.2" 537 | resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-5.0.2.tgz#fe27ff0be05975aef6fc679c1139bbabea564e26" 538 | integrity sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q== 539 | 540 | fn.name@1.x.x: 541 | version "1.1.0" 542 | resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" 543 | integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== 544 | 545 | foreground-child@^3.1.0: 546 | version "3.3.1" 547 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" 548 | integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== 549 | dependencies: 550 | cross-spawn "^7.0.6" 551 | signal-exit "^4.0.1" 552 | 553 | fs-constants@^1.0.0: 554 | version "1.0.0" 555 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 556 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 557 | 558 | fs-extra@^10.0.0: 559 | version "10.0.0" 560 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" 561 | integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== 562 | dependencies: 563 | graceful-fs "^4.2.0" 564 | jsonfile "^6.0.1" 565 | universalify "^2.0.0" 566 | 567 | fs.realpath@^1.0.0: 568 | version "1.0.0" 569 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 570 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 571 | 572 | fsevents@~2.3.2: 573 | version "2.3.2" 574 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 575 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 576 | 577 | glob@^11.0.2: 578 | version "11.0.2" 579 | resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.2.tgz#3261e3897bbc603030b041fd77ba636022d51ce0" 580 | integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== 581 | dependencies: 582 | foreground-child "^3.1.0" 583 | jackspeak "^4.0.1" 584 | minimatch "^10.0.0" 585 | minipass "^7.1.2" 586 | package-json-from-dist "^1.0.0" 587 | path-scurry "^2.0.0" 588 | 589 | glob@^7.1.4: 590 | version "7.2.3" 591 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 592 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 593 | dependencies: 594 | fs.realpath "^1.0.0" 595 | inflight "^1.0.4" 596 | inherits "2" 597 | minimatch "^3.1.1" 598 | once "^1.3.0" 599 | path-is-absolute "^1.0.0" 600 | 601 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 602 | version "4.2.8" 603 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 604 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 605 | 606 | has-flag@^4.0.0: 607 | version "4.0.0" 608 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 609 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 610 | 611 | ieee754@^1.1.13: 612 | version "1.2.1" 613 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 614 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 615 | 616 | immediate@~3.0.5: 617 | version "3.0.6" 618 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 619 | integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== 620 | 621 | inflight@^1.0.4: 622 | version "1.0.6" 623 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 624 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 625 | dependencies: 626 | once "^1.3.0" 627 | wrappy "1" 628 | 629 | inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: 630 | version "2.0.4" 631 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 632 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 633 | 634 | is-arrayish@^0.3.1: 635 | version "0.3.2" 636 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" 637 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 638 | 639 | is-fullwidth-code-point@^3.0.0: 640 | version "3.0.0" 641 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 642 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 643 | 644 | is-stream@^2.0.0: 645 | version "2.0.1" 646 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 647 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 648 | 649 | isarray@~1.0.0: 650 | version "1.0.0" 651 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 652 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 653 | 654 | isexe@^2.0.0: 655 | version "2.0.0" 656 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 657 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 658 | 659 | jackspeak@^4.0.1: 660 | version "4.1.0" 661 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" 662 | integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== 663 | dependencies: 664 | "@isaacs/cliui" "^8.0.2" 665 | 666 | jsonfile@^6.0.1: 667 | version "6.1.0" 668 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 669 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 670 | dependencies: 671 | universalify "^2.0.0" 672 | optionalDependencies: 673 | graceful-fs "^4.1.6" 674 | 675 | jsxbin@^2.3.0: 676 | version "2.3.0" 677 | resolved "https://registry.yarnpkg.com/jsxbin/-/jsxbin-2.3.0.tgz#45614b1a60c740292804823962127526c9371308" 678 | integrity sha512-3BS8fdbyNVrMQDE9Q+h65KHhVRMnWPbK4AMjOZsLnuObwEe9ewn2USs2LRLU4Tlwjd9FiuoA9nXjI/F8zzMiZQ== 679 | dependencies: 680 | command-line-args "^6.0.1" 681 | command-line-usage "^7.0.3" 682 | glob "^11.0.2" 683 | mkdirp "^3.0.1" 684 | winston "^3.17.0" 685 | 686 | jszip@^3.10.1: 687 | version "3.10.1" 688 | resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" 689 | integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== 690 | dependencies: 691 | lie "~3.3.0" 692 | pako "~1.0.2" 693 | readable-stream "~2.3.6" 694 | setimmediate "^1.0.5" 695 | 696 | kuler@^2.0.0: 697 | version "2.0.0" 698 | resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" 699 | integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== 700 | 701 | lazystream@^1.0.0: 702 | version "1.0.1" 703 | resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" 704 | integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== 705 | dependencies: 706 | readable-stream "^2.0.5" 707 | 708 | lie@~3.3.0: 709 | version "3.3.0" 710 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" 711 | integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== 712 | dependencies: 713 | immediate "~3.0.5" 714 | 715 | lodash.camelcase@^4.3.0: 716 | version "4.3.0" 717 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 718 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 719 | 720 | lodash.defaults@^4.2.0: 721 | version "4.2.0" 722 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 723 | integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== 724 | 725 | lodash.difference@^4.5.0: 726 | version "4.5.0" 727 | resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 728 | integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== 729 | 730 | lodash.flatten@^4.4.0: 731 | version "4.4.0" 732 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 733 | integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== 734 | 735 | lodash.isplainobject@^4.0.6: 736 | version "4.0.6" 737 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 738 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== 739 | 740 | lodash.union@^4.6.0: 741 | version "4.6.0" 742 | resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" 743 | integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== 744 | 745 | logform@^2.7.0: 746 | version "2.7.0" 747 | resolved "https://registry.yarnpkg.com/logform/-/logform-2.7.0.tgz#cfca97528ef290f2e125a08396805002b2d060d1" 748 | integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ== 749 | dependencies: 750 | "@colors/colors" "1.6.0" 751 | "@types/triple-beam" "^1.3.2" 752 | fecha "^4.2.0" 753 | ms "^2.1.1" 754 | safe-stable-stringify "^2.3.1" 755 | triple-beam "^1.3.0" 756 | 757 | lru-cache@^11.0.0: 758 | version "11.1.0" 759 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" 760 | integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== 761 | 762 | magic-string@^0.25.7: 763 | version "0.25.7" 764 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" 765 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 766 | dependencies: 767 | sourcemap-codec "^1.4.4" 768 | 769 | make-error@^1.1.1: 770 | version "1.3.6" 771 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 772 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 773 | 774 | minimatch@^10.0.0: 775 | version "10.0.1" 776 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" 777 | integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== 778 | dependencies: 779 | brace-expansion "^2.0.1" 780 | 781 | minimatch@^3.1.1: 782 | version "3.1.2" 783 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 784 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 785 | dependencies: 786 | brace-expansion "^1.1.7" 787 | 788 | minimatch@^5.1.0: 789 | version "5.1.2" 790 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" 791 | integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== 792 | dependencies: 793 | brace-expansion "^2.0.1" 794 | 795 | minipass@^7.1.2: 796 | version "7.1.2" 797 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" 798 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 799 | 800 | mkdirp@^3.0.1: 801 | version "3.0.1" 802 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" 803 | integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== 804 | 805 | ms@^2.1.1: 806 | version "2.1.3" 807 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 808 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 809 | 810 | nanoid@^3.3.7: 811 | version "3.3.7" 812 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" 813 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== 814 | 815 | normalize-path@^3.0.0: 816 | version "3.0.0" 817 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 818 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 819 | 820 | once@^1.3.0, once@^1.4.0: 821 | version "1.4.0" 822 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 823 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 824 | dependencies: 825 | wrappy "1" 826 | 827 | one-time@^1.0.0: 828 | version "1.0.0" 829 | resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" 830 | integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== 831 | dependencies: 832 | fn.name "1.x.x" 833 | 834 | package-json-from-dist@^1.0.0: 835 | version "1.0.1" 836 | resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" 837 | integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== 838 | 839 | pako@~1.0.2: 840 | version "1.0.11" 841 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 842 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 843 | 844 | path-is-absolute@^1.0.0: 845 | version "1.0.1" 846 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 847 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 848 | 849 | path-key@^3.1.0: 850 | version "3.1.1" 851 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 852 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 853 | 854 | path-scurry@^2.0.0: 855 | version "2.0.0" 856 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" 857 | integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== 858 | dependencies: 859 | lru-cache "^11.0.0" 860 | minipass "^7.1.2" 861 | 862 | picocolors@^1.0.0: 863 | version "1.0.0" 864 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 865 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 866 | 867 | postcss@^8.4.27: 868 | version "8.4.32" 869 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" 870 | integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== 871 | dependencies: 872 | nanoid "^3.3.7" 873 | picocolors "^1.0.0" 874 | source-map-js "^1.0.2" 875 | 876 | prettify-xml@^1.2.0: 877 | version "1.2.0" 878 | resolved "https://registry.yarnpkg.com/prettify-xml/-/prettify-xml-1.2.0.tgz#46dcf1ee8a8d8b73db30b7e06ef26dc9cf3f6f18" 879 | integrity sha1-Rtzx7oqNi3PbMLfgbvJtyc8/bxg= 880 | 881 | process-nextick-args@~2.0.0: 882 | version "2.0.1" 883 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 884 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 885 | 886 | readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@~2.3.6: 887 | version "2.3.7" 888 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 889 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 890 | dependencies: 891 | core-util-is "~1.0.0" 892 | inherits "~2.0.3" 893 | isarray "~1.0.0" 894 | process-nextick-args "~2.0.0" 895 | safe-buffer "~5.1.1" 896 | string_decoder "~1.1.1" 897 | util-deprecate "~1.0.1" 898 | 899 | readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: 900 | version "3.6.0" 901 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 902 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 903 | dependencies: 904 | inherits "^2.0.3" 905 | string_decoder "^1.1.1" 906 | util-deprecate "^1.0.1" 907 | 908 | readable-stream@^3.6.2: 909 | version "3.6.2" 910 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 911 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 912 | dependencies: 913 | inherits "^2.0.3" 914 | string_decoder "^1.1.1" 915 | util-deprecate "^1.0.1" 916 | 917 | readdir-glob@^1.0.0: 918 | version "1.1.2" 919 | resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c" 920 | integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA== 921 | dependencies: 922 | minimatch "^5.1.0" 923 | 924 | rollup@^3.27.1: 925 | version "3.29.4" 926 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" 927 | integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== 928 | optionalDependencies: 929 | fsevents "~2.3.2" 930 | 931 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 932 | version "5.1.2" 933 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 934 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 935 | 936 | safe-buffer@~5.2.0: 937 | version "5.2.1" 938 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 939 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 940 | 941 | safe-stable-stringify@^2.3.1: 942 | version "2.3.1" 943 | resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" 944 | integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== 945 | 946 | setimmediate@^1.0.5: 947 | version "1.0.5" 948 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 949 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== 950 | 951 | shebang-command@^2.0.0: 952 | version "2.0.0" 953 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 954 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 955 | dependencies: 956 | shebang-regex "^3.0.0" 957 | 958 | shebang-regex@^3.0.0: 959 | version "3.0.0" 960 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 961 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 962 | 963 | signal-exit@^4.0.1: 964 | version "4.1.0" 965 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" 966 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 967 | 968 | simple-swizzle@^0.2.2: 969 | version "0.2.2" 970 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" 971 | integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= 972 | dependencies: 973 | is-arrayish "^0.3.1" 974 | 975 | source-map-js@^1.0.2: 976 | version "1.0.2" 977 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 978 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 979 | 980 | sourcemap-codec@^1.4.4: 981 | version "1.4.8" 982 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 983 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 984 | 985 | stack-trace@0.0.x: 986 | version "0.0.10" 987 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 988 | integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= 989 | 990 | "string-width-cjs@npm:string-width@^4.2.0": 991 | version "4.2.3" 992 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 993 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 994 | dependencies: 995 | emoji-regex "^8.0.0" 996 | is-fullwidth-code-point "^3.0.0" 997 | strip-ansi "^6.0.1" 998 | 999 | string-width@^4.1.0: 1000 | version "4.2.3" 1001 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1002 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1003 | dependencies: 1004 | emoji-regex "^8.0.0" 1005 | is-fullwidth-code-point "^3.0.0" 1006 | strip-ansi "^6.0.1" 1007 | 1008 | string-width@^5.0.1, string-width@^5.1.2: 1009 | version "5.1.2" 1010 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 1011 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1012 | dependencies: 1013 | eastasianwidth "^0.2.0" 1014 | emoji-regex "^9.2.2" 1015 | strip-ansi "^7.0.1" 1016 | 1017 | string_decoder@^1.1.1: 1018 | version "1.3.0" 1019 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1020 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1021 | dependencies: 1022 | safe-buffer "~5.2.0" 1023 | 1024 | string_decoder@~1.1.1: 1025 | version "1.1.1" 1026 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1027 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1028 | dependencies: 1029 | safe-buffer "~5.1.0" 1030 | 1031 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1": 1032 | version "6.0.1" 1033 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1034 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1035 | dependencies: 1036 | ansi-regex "^5.0.1" 1037 | 1038 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1039 | version "6.0.1" 1040 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1041 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1042 | dependencies: 1043 | ansi-regex "^5.0.1" 1044 | 1045 | strip-ansi@^7.0.1: 1046 | version "7.1.0" 1047 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 1048 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1049 | dependencies: 1050 | ansi-regex "^6.0.1" 1051 | 1052 | supports-color@^7.1.0: 1053 | version "7.2.0" 1054 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1055 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1056 | dependencies: 1057 | has-flag "^4.0.0" 1058 | 1059 | table-layout@^4.1.0: 1060 | version "4.1.1" 1061 | resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-4.1.1.tgz#0f72965de1a5c0c1419c9ba21cae4e73a2f73a42" 1062 | integrity sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA== 1063 | dependencies: 1064 | array-back "^6.2.2" 1065 | wordwrapjs "^5.1.0" 1066 | 1067 | tar-stream@^2.2.0: 1068 | version "2.2.0" 1069 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 1070 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 1071 | dependencies: 1072 | bl "^4.0.3" 1073 | end-of-stream "^1.4.1" 1074 | fs-constants "^1.0.0" 1075 | inherits "^2.0.3" 1076 | readable-stream "^3.1.1" 1077 | 1078 | text-hex@1.0.x: 1079 | version "1.0.0" 1080 | resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" 1081 | integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== 1082 | 1083 | triple-beam@^1.3.0: 1084 | version "1.3.0" 1085 | resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" 1086 | integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== 1087 | 1088 | ts-node@^10.4.0: 1089 | version "10.4.0" 1090 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" 1091 | integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== 1092 | dependencies: 1093 | "@cspotcode/source-map-support" "0.7.0" 1094 | "@tsconfig/node10" "^1.0.7" 1095 | "@tsconfig/node12" "^1.0.7" 1096 | "@tsconfig/node14" "^1.0.0" 1097 | "@tsconfig/node16" "^1.0.2" 1098 | acorn "^8.4.1" 1099 | acorn-walk "^8.1.1" 1100 | arg "^4.1.0" 1101 | create-require "^1.1.0" 1102 | diff "^4.0.1" 1103 | make-error "^1.1.1" 1104 | yn "3.1.1" 1105 | 1106 | typescript@^4.6.4: 1107 | version "4.9.5" 1108 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 1109 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 1110 | 1111 | typical@^7.1.1, typical@^7.2.0: 1112 | version "7.3.0" 1113 | resolved "https://registry.yarnpkg.com/typical/-/typical-7.3.0.tgz#930376be344228709f134613911fa22aa09617a4" 1114 | integrity sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw== 1115 | 1116 | universalify@^2.0.0: 1117 | version "2.0.0" 1118 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1119 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1120 | 1121 | util-deprecate@^1.0.1, util-deprecate@~1.0.1: 1122 | version "1.0.2" 1123 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1124 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1125 | 1126 | vite@^4.0.5: 1127 | version "4.5.1" 1128 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.1.tgz#3370986e1ed5dbabbf35a6c2e1fb1e18555b968a" 1129 | integrity sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA== 1130 | dependencies: 1131 | esbuild "^0.18.10" 1132 | postcss "^8.4.27" 1133 | rollup "^3.27.1" 1134 | optionalDependencies: 1135 | fsevents "~2.3.2" 1136 | 1137 | which@^2.0.1: 1138 | version "2.0.2" 1139 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1140 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1141 | dependencies: 1142 | isexe "^2.0.0" 1143 | 1144 | winston-transport@^4.9.0: 1145 | version "4.9.0" 1146 | resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.9.0.tgz#3bba345de10297654ea6f33519424560003b3bf9" 1147 | integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A== 1148 | dependencies: 1149 | logform "^2.7.0" 1150 | readable-stream "^3.6.2" 1151 | triple-beam "^1.3.0" 1152 | 1153 | winston@^3.17.0: 1154 | version "3.17.0" 1155 | resolved "https://registry.yarnpkg.com/winston/-/winston-3.17.0.tgz#74b8665ce9b4ea7b29d0922cfccf852a08a11423" 1156 | integrity sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw== 1157 | dependencies: 1158 | "@colors/colors" "^1.6.0" 1159 | "@dabh/diagnostics" "^2.0.2" 1160 | async "^3.2.3" 1161 | is-stream "^2.0.0" 1162 | logform "^2.7.0" 1163 | one-time "^1.0.0" 1164 | readable-stream "^3.4.0" 1165 | safe-stable-stringify "^2.3.1" 1166 | stack-trace "0.0.x" 1167 | triple-beam "^1.3.0" 1168 | winston-transport "^4.9.0" 1169 | 1170 | wordwrapjs@^5.1.0: 1171 | version "5.1.0" 1172 | resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-5.1.0.tgz#4c4d20446dcc670b14fa115ef4f8fd9947af2b3a" 1173 | integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg== 1174 | 1175 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1176 | version "7.0.0" 1177 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1178 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1179 | dependencies: 1180 | ansi-styles "^4.0.0" 1181 | string-width "^4.1.0" 1182 | strip-ansi "^6.0.0" 1183 | 1184 | wrap-ansi@^8.1.0: 1185 | version "8.1.0" 1186 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 1187 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1188 | dependencies: 1189 | ansi-styles "^6.1.0" 1190 | string-width "^5.0.1" 1191 | strip-ansi "^7.0.1" 1192 | 1193 | wrappy@1: 1194 | version "1.0.2" 1195 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1196 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1197 | 1198 | yn@3.1.1: 1199 | version "3.1.1" 1200 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1201 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1202 | 1203 | zip-stream@^4.1.0: 1204 | version "4.1.0" 1205 | resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" 1206 | integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== 1207 | dependencies: 1208 | archiver-utils "^2.1.0" 1209 | compress-commons "^4.1.0" 1210 | readable-stream "^3.6.0" 1211 | --------------------------------------------------------------------------------