├── .gitignore
├── README.md
├── app.js
├── bootstrap
└── bootstrap.min.css
├── build
└── icon.png
├── images
├── comquas.png
└── folder.png
├── index.html
├── main.js
├── package-lock.json
├── package.json
├── rabbit.js
├── styles
├── controls.css
├── dropper.css
├── sponsor.css
└── wrapper.css
└── ui.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Rabbit Electron
2 |
3 | 
4 |
5 | [](https://snapcraft.io/rabbit-electron)
6 |
7 | [](https://snapcraft.io/rabbit-electron)
8 |
9 | Convert all zawgyi text to unicode. Supporting
10 |
11 | - text file format
12 | - docx
13 | - xlsx
14 | - pptx
15 |
16 | > Before processing, please make sure do the backup original folder first.
17 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | var sourcePath = "";
4 | var targetPath = "";
5 |
6 | function setPath(path, isSource = true) {
7 | isSource ? sourcePath = path : targetPath = path
8 | }
9 |
10 | function getPath(isSource = true) {
11 | return isSource ? sourcePath : targetPath
12 | }
13 |
14 | let ui = new UI({
15 | setPath, getPath,
16 | openFolder: openFolderAll,
17 | getBaseName: path.basename,
18 | convert: convertNow,
19 | openSponsorLink: openWeb
20 | })
21 |
22 | function openFolder() {
23 | openFolderAll(sourcePath, true);
24 | }
25 |
26 | function openTargetFolder() {
27 | var targetPath = document.getElementById("targetPath");
28 | openFolderAll(targetPath, false);
29 | }
30 |
31 | function openWeb() {
32 | const shell = require('electron').shell;
33 | shell.openExternal("https://www.comquas.com");
34 | }
35 |
36 |
37 | async function openFolderAll() {
38 | const electron = require("electron").remote;
39 | const dialog = electron.dialog;
40 |
41 | let result = await dialog.showOpenDialog({ properties: ["openDirectory"] });
42 |
43 | if (result.filePaths.length > 0) {
44 | return result.filePaths[0]
45 | }
46 |
47 | return null
48 | }
49 |
50 | function convertDocx(source, dest,docx) {
51 | const fs = require("fs");
52 | var zipper = require('zip-local');
53 |
54 | if (!fs.existsSync(dest)){
55 | fs.mkdirSync(dest);
56 | }
57 |
58 | zipper.sync.unzip(source).save(dest);
59 |
60 | var docXMLPath = dest + "/word/document.xml";
61 | docXML = fs.readFileSync(docXMLPath).toString();
62 | docXML = docXML.replace(/=\"Zawgyi-One\"/g, "=\"Myanmar Text\"")
63 | let content = Rabbit.zg2uni(docXML);
64 | fs.writeFileSync(docXMLPath, content, 'utf8');
65 | zipper.sync.zip(dest).compress().save(docx);
66 | fs.rmdirSync(dest,{ recursive: true });
67 | }
68 |
69 | function convertXlsx(source, dest,xlsx) {
70 | const fs = require("fs");
71 | var zipper = require('zip-local');
72 |
73 | if (!fs.existsSync(dest)){
74 | fs.mkdirSync(dest);
75 | }
76 |
77 | zipper.sync.unzip(source).save(dest);
78 |
79 | var docXMLPath = dest + "/xl/sharedStrings.xml";
80 | docXML = fs.readFileSync(docXMLPath).toString();
81 | let content = Rabbit.zg2uni(docXML);
82 |
83 | fs.writeFileSync(docXMLPath, content, 'utf8');
84 |
85 | var stylePath = dest + "/xl/styles.xml";
86 | docXML = fs.readFileSync(stylePath).toString();
87 | content = docXML.replace(/val\=\"Zawgyi-One\"/g, "val\=\"Myanmar Text\"")
88 | fs.writeFileSync(stylePath, content, 'utf8');
89 |
90 | zipper.sync.zip(dest).compress().save(xlsx);
91 | fs.rmdirSync(dest,{ recursive: true });
92 | }
93 |
94 | function convertPptx(source, dest,xlsx) {
95 | const fs = require("fs");
96 | var zipper = require('zip-local');
97 | const path = require("path");
98 |
99 |
100 |
101 | if (!fs.existsSync(dest)){
102 | fs.mkdirSync(dest);
103 | }
104 |
105 | zipper.sync.unzip(source).save(dest);
106 |
107 | slides = dest + "/ppt/slides";
108 |
109 | let filenames = fs.readdirSync(slides);
110 |
111 | filenames.forEach(file => {
112 | var fullSlides = slides + "/" + file;
113 |
114 | let extension = path.extname(fullSlides);
115 | if (extension == ".xml") {
116 | docXML = fs.readFileSync(fullSlides).toString();
117 | let content = Rabbit.zg2uni(docXML);
118 | content = content.replace(/\stypeface\=\"Zawgyi-One\"\s/g, " typeface=\"Myanmar Text\" ")
119 | fs.writeFileSync(fullSlides, content, 'utf8');
120 | }
121 | });
122 |
123 | zipper.sync.zip(dest).compress().save(xlsx);
124 | fs.rmdirSync(dest,{ recursive: true });
125 | }
126 |
127 | async function convertNow() {
128 | if (!!!sourcePath) {
129 | ui.error = UI.Errors.SOURCE_EMPTY
130 | } else if (!!!targetPath) {
131 | ui.error = UI.Errors.TARGET_EMPTY
132 | } else if (targetPath === sourcePath) {
133 | ui.error = UI.Errors.SOURCE_EQ_TARGET
134 | }
135 | else {
136 | ui.conversionInProgress = true
137 | const { shell } = require('electron')
138 | const { resolve } = require("path");
139 | const fs = require("fs");
140 | const { readdir } = require("fs").promises;
141 | const path = require("path");
142 | const { isText, isBinary, getEncoding } = require('istextorbinary')
143 | async function getFiles(dir) {
144 | const dirents = await readdir(dir, { withFileTypes: true });
145 | const files = await Promise.all(
146 | dirents.map((dirent) => {
147 | const res = resolve(dir, dirent.name);
148 |
149 | var full = res.substr(sourcePath.length);
150 |
151 | if (dirent.isDirectory()) {
152 | //create directory
153 | let realPath = targetPath + full;
154 | if (!fs.existsSync(realPath)) {
155 | fs.mkdirSync(realPath);
156 | }
157 | } else {
158 | var myfile = path.basename(res);
159 | let extension = path.extname(res);
160 |
161 | if (extension == ".docx") {
162 | let realPath = targetPath + full;
163 | let folder = realPath.substring(0, realPath.length-5);
164 | convertDocx(res, folder, realPath);
165 | }
166 | else if (extension == ".xlsx") {
167 | let realPath = targetPath + full;
168 | let folder = realPath.substring(0, realPath.length-5);
169 | convertXlsx(res, folder, realPath);
170 | }
171 | else if (extension == ".pptx") {
172 | let realPath = targetPath + full;
173 | let folder = realPath.substring(0, realPath.length-5);
174 | convertPptx(res, folder, realPath);
175 | }
176 | else if (myfile != ".DS_Store") {
177 | //read file
178 | if (!isText(res)) {
179 | //copy file
180 | let realPath = targetPath + full;
181 | fs.copyFileSync(res, realPath);
182 | }
183 | else {
184 | let file = fs.readFileSync(res);
185 | let zawgyi = file.toString();
186 |
187 | let content = Rabbit.zg2uni(zawgyi);
188 |
189 | let realPath = targetPath + full;
190 | fs.writeFileSync(realPath, content, 'utf8');
191 | }
192 | }
193 |
194 | }
195 | return dirent.isDirectory() ? getFiles(res) : res;
196 | })
197 | );
198 | }
199 |
200 | await getFiles(sourcePath);
201 |
202 | shell.openPath(targetPath)
203 | ui.showSuccessStatus()
204 | }
205 | }
--------------------------------------------------------------------------------
/build/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saturngod/rabbit-folder/6224ac2886a7594c9ce31e243a0e32bcf0e73095/build/icon.png
--------------------------------------------------------------------------------
/images/comquas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saturngod/rabbit-folder/6224ac2886a7594c9ce31e243a0e32bcf0e73095/images/comquas.png
--------------------------------------------------------------------------------
/images/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saturngod/rabbit-folder/6224ac2886a7594c9ce31e243a0e32bcf0e73095/images/folder.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Hello Rabbit 🐇
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |

20 |
Choose source folder.
21 |
Path to source folder.
22 |
Click or drag a folder here.
23 |
Rabbit Electron supports text files, docx, xlsx, pptx files.
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | const { app, BrowserWindow } = require('electron')
2 | const path = require('path')
3 |
4 |
5 |
6 | function createWindow () {
7 | // Create the browser window.
8 | const mainWindow = new BrowserWindow({
9 | width: 600,
10 | height: 444,
11 | webPreferences: {
12 | enableRemoteModule: true,
13 | nodeIntegration: true
14 | }
15 | })
16 |
17 | // and load the index.html of the app.
18 | mainWindow.setResizable(false)
19 | mainWindow.setMaximizable(false)
20 | mainWindow.loadFile('index.html')
21 | // mainWindow.webContents.openDevTools()
22 | }
23 |
24 | // This method will be called when Electron has finished
25 | // initialization and is ready to create browser windows.
26 | // Some APIs can only be used after this event occurs.
27 | app.whenReady().then(createWindow)
28 |
29 | // Quit when all windows are closed, except on macOS. There, it's common
30 | // for applications and their menu bar to stay active until the user quits
31 | // explicitly with Cmd + Q.
32 | app.on('window-all-closed', () => {
33 | //if (process.platform !== 'darwin') {
34 | app.quit()
35 | //}
36 | })
37 |
38 | app.on('activate', () => {
39 | // On macOS it's common to re-create a window in the app when the
40 | // dock icon is clicked and there are no other windows open.
41 | if (BrowserWindow.getAllWindows().length === 0) {
42 | createWindow()
43 | }
44 | })
45 |
46 | // In this file you can include the rest of your app's specific main process
47 | // code. You can also put them in separate files and require them here.
48 |
49 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rabbit-electron",
3 | "version": "0.3.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "7zip-bin": {
8 | "version": "5.0.3",
9 | "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz",
10 | "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==",
11 | "dev": true
12 | },
13 | "@develar/schema-utils": {
14 | "version": "2.6.5",
15 | "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz",
16 | "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==",
17 | "dev": true,
18 | "requires": {
19 | "ajv": "^6.12.0",
20 | "ajv-keywords": "^3.4.1"
21 | }
22 | },
23 | "@electron/get": {
24 | "version": "1.12.2",
25 | "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz",
26 | "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==",
27 | "dev": true,
28 | "requires": {
29 | "debug": "^4.1.1",
30 | "env-paths": "^2.2.0",
31 | "fs-extra": "^8.1.0",
32 | "global-agent": "^2.0.2",
33 | "global-tunnel-ng": "^2.7.1",
34 | "got": "^9.6.0",
35 | "progress": "^2.0.3",
36 | "sanitize-filename": "^1.6.2",
37 | "sumchecker": "^3.0.1"
38 | }
39 | },
40 | "@sindresorhus/is": {
41 | "version": "0.14.0",
42 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
43 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
44 | "dev": true
45 | },
46 | "@szmarczak/http-timer": {
47 | "version": "1.1.2",
48 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
49 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
50 | "dev": true,
51 | "requires": {
52 | "defer-to-connect": "^1.0.1"
53 | }
54 | },
55 | "@types/color-name": {
56 | "version": "1.1.1",
57 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
58 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
59 | "dev": true
60 | },
61 | "@types/debug": {
62 | "version": "4.1.5",
63 | "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz",
64 | "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==",
65 | "dev": true
66 | },
67 | "@types/fs-extra": {
68 | "version": "9.0.1",
69 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz",
70 | "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==",
71 | "dev": true,
72 | "requires": {
73 | "@types/node": "*"
74 | }
75 | },
76 | "@types/node": {
77 | "version": "12.12.47",
78 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz",
79 | "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==",
80 | "dev": true
81 | },
82 | "@types/yargs": {
83 | "version": "15.0.5",
84 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
85 | "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
86 | "dev": true,
87 | "requires": {
88 | "@types/yargs-parser": "*"
89 | }
90 | },
91 | "@types/yargs-parser": {
92 | "version": "15.0.0",
93 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
94 | "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
95 | "dev": true
96 | },
97 | "ajv": {
98 | "version": "6.12.2",
99 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
100 | "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
101 | "dev": true,
102 | "requires": {
103 | "fast-deep-equal": "^3.1.1",
104 | "fast-json-stable-stringify": "^2.0.0",
105 | "json-schema-traverse": "^0.4.1",
106 | "uri-js": "^4.2.2"
107 | }
108 | },
109 | "ajv-keywords": {
110 | "version": "3.5.0",
111 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz",
112 | "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==",
113 | "dev": true
114 | },
115 | "ansi-align": {
116 | "version": "3.0.0",
117 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
118 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
119 | "dev": true,
120 | "requires": {
121 | "string-width": "^3.0.0"
122 | },
123 | "dependencies": {
124 | "string-width": {
125 | "version": "3.1.0",
126 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
127 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
128 | "dev": true,
129 | "requires": {
130 | "emoji-regex": "^7.0.1",
131 | "is-fullwidth-code-point": "^2.0.0",
132 | "strip-ansi": "^5.1.0"
133 | }
134 | }
135 | }
136 | },
137 | "ansi-regex": {
138 | "version": "4.1.0",
139 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
140 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
141 | "dev": true
142 | },
143 | "ansi-styles": {
144 | "version": "4.2.1",
145 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
146 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
147 | "dev": true,
148 | "requires": {
149 | "@types/color-name": "^1.1.1",
150 | "color-convert": "^2.0.1"
151 | }
152 | },
153 | "app-builder-bin": {
154 | "version": "3.5.9",
155 | "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz",
156 | "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==",
157 | "dev": true
158 | },
159 | "app-builder-lib": {
160 | "version": "22.7.0",
161 | "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.7.0.tgz",
162 | "integrity": "sha512-blRKwV8h0ztualXS50ciCTo39tbuDGNS+ldcy8+KLvKXuT6OpYnSJ7M6MSfPT+xWatshMHJV1rJx3Tl+k/Sn/g==",
163 | "dev": true,
164 | "requires": {
165 | "7zip-bin": "~5.0.3",
166 | "@develar/schema-utils": "~2.6.5",
167 | "async-exit-hook": "^2.0.1",
168 | "bluebird-lst": "^1.0.9",
169 | "builder-util": "22.7.0",
170 | "builder-util-runtime": "8.7.1",
171 | "chromium-pickle-js": "^0.2.0",
172 | "debug": "^4.2.0",
173 | "ejs": "^3.1.3",
174 | "electron-publish": "22.7.0",
175 | "fs-extra": "^9.0.0",
176 | "hosted-git-info": "^3.0.4",
177 | "is-ci": "^2.0.0",
178 | "isbinaryfile": "^4.0.6",
179 | "js-yaml": "^3.14.0",
180 | "lazy-val": "^1.0.4",
181 | "minimatch": "^3.0.4",
182 | "normalize-package-data": "^2.5.0",
183 | "read-config-file": "6.0.0",
184 | "sanitize-filename": "^1.6.3",
185 | "semver": "^7.3.2",
186 | "temp-file": "^3.3.7"
187 | },
188 | "dependencies": {
189 | "debug": {
190 | "version": "4.2.0",
191 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
192 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
193 | "dev": true,
194 | "requires": {
195 | "ms": "2.1.2"
196 | }
197 | },
198 | "fs-extra": {
199 | "version": "9.0.1",
200 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
201 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
202 | "dev": true,
203 | "requires": {
204 | "at-least-node": "^1.0.0",
205 | "graceful-fs": "^4.2.0",
206 | "jsonfile": "^6.0.1",
207 | "universalify": "^1.0.0"
208 | }
209 | },
210 | "jsonfile": {
211 | "version": "6.0.1",
212 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
213 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
214 | "dev": true,
215 | "requires": {
216 | "graceful-fs": "^4.1.6",
217 | "universalify": "^1.0.0"
218 | }
219 | },
220 | "universalify": {
221 | "version": "1.0.0",
222 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
223 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
224 | "dev": true
225 | }
226 | }
227 | },
228 | "argparse": {
229 | "version": "1.0.10",
230 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
231 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
232 | "dev": true,
233 | "requires": {
234 | "sprintf-js": "~1.0.2"
235 | },
236 | "dependencies": {
237 | "sprintf-js": {
238 | "version": "1.0.3",
239 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
240 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
241 | "dev": true
242 | }
243 | }
244 | },
245 | "async": {
246 | "version": "0.9.2",
247 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
248 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
249 | "dev": true
250 | },
251 | "async-exit-hook": {
252 | "version": "2.0.1",
253 | "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
254 | "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
255 | "dev": true
256 | },
257 | "at-least-node": {
258 | "version": "1.0.0",
259 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
260 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
261 | "dev": true
262 | },
263 | "balanced-match": {
264 | "version": "1.0.0",
265 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
266 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
267 | "dev": true
268 | },
269 | "binaryextensions": {
270 | "version": "4.2.0",
271 | "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.2.0.tgz",
272 | "integrity": "sha512-NDhpEpOr1/KCDDs2Gf6oX9ymn4Gkooz7ZRlTEK7br9aaFn5Kd7t7G3L3pl5f2Wxyfe/aUbEfip0/BuGG3XQbjw=="
273 | },
274 | "bluebird": {
275 | "version": "3.7.2",
276 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
277 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
278 | "dev": true
279 | },
280 | "bluebird-lst": {
281 | "version": "1.0.9",
282 | "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
283 | "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
284 | "dev": true,
285 | "requires": {
286 | "bluebird": "^3.5.5"
287 | }
288 | },
289 | "boolean": {
290 | "version": "3.0.2",
291 | "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz",
292 | "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==",
293 | "dev": true,
294 | "optional": true
295 | },
296 | "boxen": {
297 | "version": "4.2.0",
298 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
299 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
300 | "dev": true,
301 | "requires": {
302 | "ansi-align": "^3.0.0",
303 | "camelcase": "^5.3.1",
304 | "chalk": "^3.0.0",
305 | "cli-boxes": "^2.2.0",
306 | "string-width": "^4.1.0",
307 | "term-size": "^2.1.0",
308 | "type-fest": "^0.8.1",
309 | "widest-line": "^3.1.0"
310 | },
311 | "dependencies": {
312 | "chalk": {
313 | "version": "3.0.0",
314 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
315 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
316 | "dev": true,
317 | "requires": {
318 | "ansi-styles": "^4.1.0",
319 | "supports-color": "^7.1.0"
320 | }
321 | },
322 | "type-fest": {
323 | "version": "0.8.1",
324 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
325 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
326 | "dev": true
327 | }
328 | }
329 | },
330 | "brace-expansion": {
331 | "version": "1.1.11",
332 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
333 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
334 | "dev": true,
335 | "requires": {
336 | "balanced-match": "^1.0.0",
337 | "concat-map": "0.0.1"
338 | }
339 | },
340 | "buffer-crc32": {
341 | "version": "0.2.13",
342 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
343 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
344 | "dev": true
345 | },
346 | "buffer-from": {
347 | "version": "1.1.1",
348 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
349 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
350 | "dev": true
351 | },
352 | "builder-util": {
353 | "version": "22.7.0",
354 | "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.7.0.tgz",
355 | "integrity": "sha512-UV3MKL0mwjMq2y9JlBf28Cegpj0CrIXcjGkO0TXn+QZ6Yy9rY6lHOuUvpQ19ct2Qh1o+QSwH3Q1nKUf5viJBBg==",
356 | "dev": true,
357 | "requires": {
358 | "7zip-bin": "~5.0.3",
359 | "@types/debug": "^4.1.5",
360 | "@types/fs-extra": "^9.0.1",
361 | "app-builder-bin": "3.5.9",
362 | "bluebird-lst": "^1.0.9",
363 | "builder-util-runtime": "8.7.1",
364 | "chalk": "^4.0.0",
365 | "debug": "^4.2.0",
366 | "fs-extra": "^9.0.0",
367 | "is-ci": "^2.0.0",
368 | "js-yaml": "^3.14.0",
369 | "source-map-support": "^0.5.19",
370 | "stat-mode": "^1.0.0",
371 | "temp-file": "^3.3.7"
372 | },
373 | "dependencies": {
374 | "debug": {
375 | "version": "4.2.0",
376 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
377 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
378 | "dev": true,
379 | "requires": {
380 | "ms": "2.1.2"
381 | }
382 | },
383 | "fs-extra": {
384 | "version": "9.0.1",
385 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
386 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
387 | "dev": true,
388 | "requires": {
389 | "at-least-node": "^1.0.0",
390 | "graceful-fs": "^4.2.0",
391 | "jsonfile": "^6.0.1",
392 | "universalify": "^1.0.0"
393 | }
394 | },
395 | "jsonfile": {
396 | "version": "6.0.1",
397 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
398 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
399 | "dev": true,
400 | "requires": {
401 | "graceful-fs": "^4.1.6",
402 | "universalify": "^1.0.0"
403 | }
404 | },
405 | "universalify": {
406 | "version": "1.0.0",
407 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
408 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
409 | "dev": true
410 | }
411 | }
412 | },
413 | "builder-util-runtime": {
414 | "version": "8.7.1",
415 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz",
416 | "integrity": "sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg==",
417 | "dev": true,
418 | "requires": {
419 | "debug": "^4.2.0",
420 | "sax": "^1.2.4"
421 | },
422 | "dependencies": {
423 | "debug": {
424 | "version": "4.2.0",
425 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
426 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
427 | "dev": true,
428 | "requires": {
429 | "ms": "2.1.2"
430 | }
431 | }
432 | }
433 | },
434 | "cacheable-request": {
435 | "version": "6.1.0",
436 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
437 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
438 | "dev": true,
439 | "requires": {
440 | "clone-response": "^1.0.2",
441 | "get-stream": "^5.1.0",
442 | "http-cache-semantics": "^4.0.0",
443 | "keyv": "^3.0.0",
444 | "lowercase-keys": "^2.0.0",
445 | "normalize-url": "^4.1.0",
446 | "responselike": "^1.0.2"
447 | },
448 | "dependencies": {
449 | "get-stream": {
450 | "version": "5.1.0",
451 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
452 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
453 | "dev": true,
454 | "requires": {
455 | "pump": "^3.0.0"
456 | }
457 | },
458 | "lowercase-keys": {
459 | "version": "2.0.0",
460 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
461 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
462 | "dev": true
463 | }
464 | }
465 | },
466 | "camelcase": {
467 | "version": "5.3.1",
468 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
469 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
470 | "dev": true
471 | },
472 | "chalk": {
473 | "version": "4.1.0",
474 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
475 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
476 | "dev": true,
477 | "requires": {
478 | "ansi-styles": "^4.1.0",
479 | "supports-color": "^7.1.0"
480 | }
481 | },
482 | "chromium-pickle-js": {
483 | "version": "0.2.0",
484 | "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
485 | "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
486 | "dev": true
487 | },
488 | "ci-info": {
489 | "version": "2.0.0",
490 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
491 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
492 | "dev": true
493 | },
494 | "cli-boxes": {
495 | "version": "2.2.0",
496 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
497 | "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
498 | "dev": true
499 | },
500 | "cliui": {
501 | "version": "6.0.0",
502 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
503 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
504 | "dev": true,
505 | "requires": {
506 | "string-width": "^4.2.0",
507 | "strip-ansi": "^6.0.0",
508 | "wrap-ansi": "^6.2.0"
509 | },
510 | "dependencies": {
511 | "ansi-regex": {
512 | "version": "5.0.0",
513 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
514 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
515 | "dev": true
516 | },
517 | "strip-ansi": {
518 | "version": "6.0.0",
519 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
520 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
521 | "dev": true,
522 | "requires": {
523 | "ansi-regex": "^5.0.0"
524 | }
525 | }
526 | }
527 | },
528 | "clone-response": {
529 | "version": "1.0.2",
530 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
531 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
532 | "dev": true,
533 | "requires": {
534 | "mimic-response": "^1.0.0"
535 | }
536 | },
537 | "color-convert": {
538 | "version": "2.0.1",
539 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
540 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
541 | "dev": true,
542 | "requires": {
543 | "color-name": "~1.1.4"
544 | }
545 | },
546 | "color-name": {
547 | "version": "1.1.4",
548 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
549 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
550 | "dev": true
551 | },
552 | "concat-map": {
553 | "version": "0.0.1",
554 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
555 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
556 | "dev": true
557 | },
558 | "concat-stream": {
559 | "version": "1.6.2",
560 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
561 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
562 | "dev": true,
563 | "requires": {
564 | "buffer-from": "^1.0.0",
565 | "inherits": "^2.0.3",
566 | "readable-stream": "^2.2.2",
567 | "typedarray": "^0.0.6"
568 | }
569 | },
570 | "config-chain": {
571 | "version": "1.1.12",
572 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
573 | "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
574 | "dev": true,
575 | "optional": true,
576 | "requires": {
577 | "ini": "^1.3.4",
578 | "proto-list": "~1.2.1"
579 | }
580 | },
581 | "configstore": {
582 | "version": "5.0.1",
583 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
584 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
585 | "dev": true,
586 | "requires": {
587 | "dot-prop": "^5.2.0",
588 | "graceful-fs": "^4.1.2",
589 | "make-dir": "^3.0.0",
590 | "unique-string": "^2.0.0",
591 | "write-file-atomic": "^3.0.0",
592 | "xdg-basedir": "^4.0.0"
593 | }
594 | },
595 | "core-js": {
596 | "version": "3.8.1",
597 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz",
598 | "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==",
599 | "dev": true,
600 | "optional": true
601 | },
602 | "core-util-is": {
603 | "version": "1.0.2",
604 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
605 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
606 | "dev": true
607 | },
608 | "crypto-random-string": {
609 | "version": "2.0.0",
610 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
611 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
612 | "dev": true
613 | },
614 | "debug": {
615 | "version": "4.3.1",
616 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
617 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
618 | "dev": true,
619 | "requires": {
620 | "ms": "2.1.2"
621 | }
622 | },
623 | "decamelize": {
624 | "version": "1.2.0",
625 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
626 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
627 | "dev": true
628 | },
629 | "decompress-response": {
630 | "version": "3.3.0",
631 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
632 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
633 | "dev": true,
634 | "requires": {
635 | "mimic-response": "^1.0.0"
636 | }
637 | },
638 | "deep-extend": {
639 | "version": "0.6.0",
640 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
641 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
642 | "dev": true
643 | },
644 | "defer-to-connect": {
645 | "version": "1.1.3",
646 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
647 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
648 | "dev": true
649 | },
650 | "define-properties": {
651 | "version": "1.1.3",
652 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
653 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
654 | "dev": true,
655 | "optional": true,
656 | "requires": {
657 | "object-keys": "^1.0.12"
658 | }
659 | },
660 | "detect-node": {
661 | "version": "2.0.4",
662 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
663 | "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
664 | "dev": true,
665 | "optional": true
666 | },
667 | "dmg-builder": {
668 | "version": "22.7.0",
669 | "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.7.0.tgz",
670 | "integrity": "sha512-5Ea2YEz6zSNbyGzZD+O9/MzmaXb6oa15cSKWo4JQ1xP4rorOpte7IOj2jcwYjtc+Los2gu1lvT314OC1OZIWgg==",
671 | "dev": true,
672 | "requires": {
673 | "app-builder-lib": "22.7.0",
674 | "builder-util": "22.7.0",
675 | "fs-extra": "^9.0.0",
676 | "iconv-lite": "^0.5.1",
677 | "js-yaml": "^3.14.0",
678 | "sanitize-filename": "^1.6.3"
679 | },
680 | "dependencies": {
681 | "fs-extra": {
682 | "version": "9.0.1",
683 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
684 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
685 | "dev": true,
686 | "requires": {
687 | "at-least-node": "^1.0.0",
688 | "graceful-fs": "^4.2.0",
689 | "jsonfile": "^6.0.1",
690 | "universalify": "^1.0.0"
691 | }
692 | },
693 | "jsonfile": {
694 | "version": "6.0.1",
695 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
696 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
697 | "dev": true,
698 | "requires": {
699 | "graceful-fs": "^4.1.6",
700 | "universalify": "^1.0.0"
701 | }
702 | },
703 | "universalify": {
704 | "version": "1.0.0",
705 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
706 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
707 | "dev": true
708 | }
709 | }
710 | },
711 | "dot-prop": {
712 | "version": "5.2.0",
713 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
714 | "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
715 | "dev": true,
716 | "requires": {
717 | "is-obj": "^2.0.0"
718 | }
719 | },
720 | "dotenv": {
721 | "version": "8.2.0",
722 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
723 | "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
724 | "dev": true
725 | },
726 | "dotenv-expand": {
727 | "version": "5.1.0",
728 | "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
729 | "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
730 | "dev": true
731 | },
732 | "duplexer3": {
733 | "version": "0.1.4",
734 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
735 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
736 | "dev": true
737 | },
738 | "editions": {
739 | "version": "3.5.0",
740 | "resolved": "https://registry.npmjs.org/editions/-/editions-3.5.0.tgz",
741 | "integrity": "sha512-iSTtszoco9ln3m3NdCUXOVBrOTArjWww76RK2o1PK/kCZTKCHH8GtvXYYi2h0/71bbFZncUVGFW54WClijGdVg==",
742 | "requires": {
743 | "errlop": "^3.5.0",
744 | "semver": "6.3.0"
745 | },
746 | "dependencies": {
747 | "semver": {
748 | "version": "6.3.0",
749 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
750 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
751 | }
752 | }
753 | },
754 | "ejs": {
755 | "version": "3.1.3",
756 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz",
757 | "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==",
758 | "dev": true,
759 | "requires": {
760 | "jake": "^10.6.1"
761 | }
762 | },
763 | "electron": {
764 | "version": "9.3.1",
765 | "resolved": "https://registry.npmjs.org/electron/-/electron-9.3.1.tgz",
766 | "integrity": "sha512-DScrhqBT4a54KfdF0EoipALpHmdQTn3m7SSCtbpTcEcG+UDUiXad2cOfW6DHeVH7N+CVDKDG12q2PhVJjXkFAA==",
767 | "dev": true,
768 | "requires": {
769 | "@electron/get": "^1.0.1",
770 | "@types/node": "^12.0.12",
771 | "extract-zip": "^1.0.3"
772 | }
773 | },
774 | "electron-builder": {
775 | "version": "22.7.0",
776 | "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.7.0.tgz",
777 | "integrity": "sha512-t6E3oMutpST64YWbZCg7HodEwJOsnjUF1vnDIHm2MW6CFZPX8tlCK6efqaV66LU0E0Nkp/JH6TE5bCqQ1+VdPQ==",
778 | "dev": true,
779 | "requires": {
780 | "@types/yargs": "^15.0.5",
781 | "app-builder-lib": "22.7.0",
782 | "bluebird-lst": "^1.0.9",
783 | "builder-util": "22.7.0",
784 | "builder-util-runtime": "8.7.1",
785 | "chalk": "^4.0.0",
786 | "dmg-builder": "22.7.0",
787 | "fs-extra": "^9.0.0",
788 | "is-ci": "^2.0.0",
789 | "lazy-val": "^1.0.4",
790 | "read-config-file": "6.0.0",
791 | "sanitize-filename": "^1.6.3",
792 | "update-notifier": "^4.1.0",
793 | "yargs": "^15.3.1"
794 | },
795 | "dependencies": {
796 | "fs-extra": {
797 | "version": "9.0.1",
798 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
799 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
800 | "dev": true,
801 | "requires": {
802 | "at-least-node": "^1.0.0",
803 | "graceful-fs": "^4.2.0",
804 | "jsonfile": "^6.0.1",
805 | "universalify": "^1.0.0"
806 | }
807 | },
808 | "jsonfile": {
809 | "version": "6.0.1",
810 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
811 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
812 | "dev": true,
813 | "requires": {
814 | "graceful-fs": "^4.1.6",
815 | "universalify": "^1.0.0"
816 | }
817 | },
818 | "universalify": {
819 | "version": "1.0.0",
820 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
821 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
822 | "dev": true
823 | }
824 | }
825 | },
826 | "electron-publish": {
827 | "version": "22.7.0",
828 | "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.7.0.tgz",
829 | "integrity": "sha512-hmU69xlb6vvAV3QfpHYDlkdZMFdBAgDbptoxbLFrnTq5bOkcL8AaDbvxeoZ4+lvqgs29NwqGpkHo2oN+p/hCfg==",
830 | "dev": true,
831 | "requires": {
832 | "@types/fs-extra": "^9.0.1",
833 | "bluebird-lst": "^1.0.9",
834 | "builder-util": "22.7.0",
835 | "builder-util-runtime": "8.7.1",
836 | "chalk": "^4.0.0",
837 | "fs-extra": "^9.0.0",
838 | "lazy-val": "^1.0.4",
839 | "mime": "^2.4.5"
840 | },
841 | "dependencies": {
842 | "fs-extra": {
843 | "version": "9.0.1",
844 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
845 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
846 | "dev": true,
847 | "requires": {
848 | "at-least-node": "^1.0.0",
849 | "graceful-fs": "^4.2.0",
850 | "jsonfile": "^6.0.1",
851 | "universalify": "^1.0.0"
852 | }
853 | },
854 | "jsonfile": {
855 | "version": "6.0.1",
856 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
857 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
858 | "dev": true,
859 | "requires": {
860 | "graceful-fs": "^4.1.6",
861 | "universalify": "^1.0.0"
862 | }
863 | },
864 | "universalify": {
865 | "version": "1.0.0",
866 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
867 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
868 | "dev": true
869 | }
870 | }
871 | },
872 | "emoji-regex": {
873 | "version": "7.0.3",
874 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
875 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
876 | "dev": true
877 | },
878 | "encodeurl": {
879 | "version": "1.0.2",
880 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
881 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
882 | "dev": true,
883 | "optional": true
884 | },
885 | "end-of-stream": {
886 | "version": "1.4.4",
887 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
888 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
889 | "dev": true,
890 | "requires": {
891 | "once": "^1.4.0"
892 | }
893 | },
894 | "env-paths": {
895 | "version": "2.2.0",
896 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
897 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==",
898 | "dev": true
899 | },
900 | "errlop": {
901 | "version": "3.6.0",
902 | "resolved": "https://registry.npmjs.org/errlop/-/errlop-3.6.0.tgz",
903 | "integrity": "sha512-3v5QTdRjtvr7FQPkGoDb1H1qMpEECQqDm+QrpNj/WPFT8KJkasqRkXWEqPTjO96ABLWQyZf8Uz+/MTdQl3A2CQ=="
904 | },
905 | "es6-error": {
906 | "version": "4.1.1",
907 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
908 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
909 | "dev": true,
910 | "optional": true
911 | },
912 | "escape-goat": {
913 | "version": "2.1.1",
914 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
915 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
916 | "dev": true
917 | },
918 | "escape-string-regexp": {
919 | "version": "4.0.0",
920 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
921 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
922 | "dev": true,
923 | "optional": true
924 | },
925 | "esprima": {
926 | "version": "4.0.1",
927 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
928 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
929 | "dev": true
930 | },
931 | "extract-zip": {
932 | "version": "1.7.0",
933 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
934 | "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
935 | "dev": true,
936 | "requires": {
937 | "concat-stream": "^1.6.2",
938 | "debug": "^2.6.9",
939 | "mkdirp": "^0.5.4",
940 | "yauzl": "^2.10.0"
941 | },
942 | "dependencies": {
943 | "debug": {
944 | "version": "2.6.9",
945 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
946 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
947 | "dev": true,
948 | "requires": {
949 | "ms": "2.0.0"
950 | }
951 | },
952 | "ms": {
953 | "version": "2.0.0",
954 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
955 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
956 | "dev": true
957 | }
958 | }
959 | },
960 | "fast-deep-equal": {
961 | "version": "3.1.3",
962 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
963 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
964 | "dev": true
965 | },
966 | "fast-json-stable-stringify": {
967 | "version": "2.1.0",
968 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
969 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
970 | "dev": true
971 | },
972 | "fd-slicer": {
973 | "version": "1.1.0",
974 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
975 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
976 | "dev": true,
977 | "requires": {
978 | "pend": "~1.2.0"
979 | }
980 | },
981 | "filelist": {
982 | "version": "1.0.1",
983 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
984 | "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
985 | "dev": true,
986 | "requires": {
987 | "minimatch": "^3.0.4"
988 | }
989 | },
990 | "find-up": {
991 | "version": "4.1.0",
992 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
993 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
994 | "dev": true,
995 | "requires": {
996 | "locate-path": "^5.0.0",
997 | "path-exists": "^4.0.0"
998 | }
999 | },
1000 | "fs-extra": {
1001 | "version": "8.1.0",
1002 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1003 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1004 | "dev": true,
1005 | "requires": {
1006 | "graceful-fs": "^4.2.0",
1007 | "jsonfile": "^4.0.0",
1008 | "universalify": "^0.1.0"
1009 | }
1010 | },
1011 | "get-caller-file": {
1012 | "version": "2.0.5",
1013 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1014 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1015 | "dev": true
1016 | },
1017 | "get-stream": {
1018 | "version": "4.1.0",
1019 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
1020 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
1021 | "dev": true,
1022 | "requires": {
1023 | "pump": "^3.0.0"
1024 | }
1025 | },
1026 | "global-agent": {
1027 | "version": "2.1.12",
1028 | "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz",
1029 | "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==",
1030 | "dev": true,
1031 | "optional": true,
1032 | "requires": {
1033 | "boolean": "^3.0.1",
1034 | "core-js": "^3.6.5",
1035 | "es6-error": "^4.1.1",
1036 | "matcher": "^3.0.0",
1037 | "roarr": "^2.15.3",
1038 | "semver": "^7.3.2",
1039 | "serialize-error": "^7.0.1"
1040 | }
1041 | },
1042 | "global-dirs": {
1043 | "version": "2.0.1",
1044 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
1045 | "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
1046 | "dev": true,
1047 | "requires": {
1048 | "ini": "^1.3.5"
1049 | }
1050 | },
1051 | "global-tunnel-ng": {
1052 | "version": "2.7.1",
1053 | "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz",
1054 | "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==",
1055 | "dev": true,
1056 | "optional": true,
1057 | "requires": {
1058 | "encodeurl": "^1.0.2",
1059 | "lodash": "^4.17.10",
1060 | "npm-conf": "^1.1.3",
1061 | "tunnel": "^0.0.6"
1062 | }
1063 | },
1064 | "globalthis": {
1065 | "version": "1.0.1",
1066 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz",
1067 | "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==",
1068 | "dev": true,
1069 | "optional": true,
1070 | "requires": {
1071 | "define-properties": "^1.1.3"
1072 | }
1073 | },
1074 | "got": {
1075 | "version": "9.6.0",
1076 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
1077 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
1078 | "dev": true,
1079 | "requires": {
1080 | "@sindresorhus/is": "^0.14.0",
1081 | "@szmarczak/http-timer": "^1.1.2",
1082 | "cacheable-request": "^6.0.0",
1083 | "decompress-response": "^3.3.0",
1084 | "duplexer3": "^0.1.4",
1085 | "get-stream": "^4.1.0",
1086 | "lowercase-keys": "^1.0.1",
1087 | "mimic-response": "^1.0.1",
1088 | "p-cancelable": "^1.0.0",
1089 | "to-readable-stream": "^1.0.0",
1090 | "url-parse-lax": "^3.0.0"
1091 | }
1092 | },
1093 | "graceful-fs": {
1094 | "version": "4.2.4",
1095 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
1096 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
1097 | },
1098 | "has-flag": {
1099 | "version": "4.0.0",
1100 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1101 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1102 | "dev": true
1103 | },
1104 | "has-yarn": {
1105 | "version": "2.1.0",
1106 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
1107 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
1108 | "dev": true
1109 | },
1110 | "hosted-git-info": {
1111 | "version": "3.0.4",
1112 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
1113 | "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
1114 | "dev": true,
1115 | "requires": {
1116 | "lru-cache": "^5.1.1"
1117 | }
1118 | },
1119 | "http-cache-semantics": {
1120 | "version": "4.1.0",
1121 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
1122 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
1123 | "dev": true
1124 | },
1125 | "iconv-lite": {
1126 | "version": "0.5.2",
1127 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz",
1128 | "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==",
1129 | "dev": true,
1130 | "requires": {
1131 | "safer-buffer": ">= 2.1.2 < 3"
1132 | }
1133 | },
1134 | "import-lazy": {
1135 | "version": "2.1.0",
1136 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
1137 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
1138 | "dev": true
1139 | },
1140 | "imurmurhash": {
1141 | "version": "0.1.4",
1142 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1143 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1144 | "dev": true
1145 | },
1146 | "inherits": {
1147 | "version": "2.0.4",
1148 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1149 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1150 | "dev": true
1151 | },
1152 | "ini": {
1153 | "version": "1.3.8",
1154 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
1155 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
1156 | "dev": true
1157 | },
1158 | "is-ci": {
1159 | "version": "2.0.0",
1160 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
1161 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
1162 | "dev": true,
1163 | "requires": {
1164 | "ci-info": "^2.0.0"
1165 | }
1166 | },
1167 | "is-fullwidth-code-point": {
1168 | "version": "2.0.0",
1169 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1170 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1171 | "dev": true
1172 | },
1173 | "is-installed-globally": {
1174 | "version": "0.3.2",
1175 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
1176 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
1177 | "dev": true,
1178 | "requires": {
1179 | "global-dirs": "^2.0.1",
1180 | "is-path-inside": "^3.0.1"
1181 | }
1182 | },
1183 | "is-npm": {
1184 | "version": "4.0.0",
1185 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
1186 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
1187 | "dev": true
1188 | },
1189 | "is-obj": {
1190 | "version": "2.0.0",
1191 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
1192 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
1193 | "dev": true
1194 | },
1195 | "is-path-inside": {
1196 | "version": "3.0.2",
1197 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
1198 | "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
1199 | "dev": true
1200 | },
1201 | "is-typedarray": {
1202 | "version": "1.0.0",
1203 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1204 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1205 | "dev": true
1206 | },
1207 | "is-yarn-global": {
1208 | "version": "0.3.0",
1209 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
1210 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
1211 | "dev": true
1212 | },
1213 | "isarray": {
1214 | "version": "1.0.0",
1215 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1216 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1217 | "dev": true
1218 | },
1219 | "isbinaryfile": {
1220 | "version": "4.0.6",
1221 | "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz",
1222 | "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==",
1223 | "dev": true
1224 | },
1225 | "istextorbinary": {
1226 | "version": "5.2.0",
1227 | "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-5.2.0.tgz",
1228 | "integrity": "sha512-fbEqLouwOcWyzGP2spAENxfTsU00ksZuQWXKyLQiLhbw5UEsgBeYKBsF9YI6hp9n3b4HVDaTMYA1zucd2bFyHQ==",
1229 | "requires": {
1230 | "binaryextensions": "^4.2.0",
1231 | "editions": "^3.5.0",
1232 | "textextensions": "^5.2.0"
1233 | }
1234 | },
1235 | "jake": {
1236 | "version": "10.8.2",
1237 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
1238 | "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
1239 | "dev": true,
1240 | "requires": {
1241 | "async": "0.9.x",
1242 | "chalk": "^2.4.2",
1243 | "filelist": "^1.0.1",
1244 | "minimatch": "^3.0.4"
1245 | },
1246 | "dependencies": {
1247 | "ansi-styles": {
1248 | "version": "3.2.1",
1249 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1250 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1251 | "dev": true,
1252 | "requires": {
1253 | "color-convert": "^1.9.0"
1254 | }
1255 | },
1256 | "chalk": {
1257 | "version": "2.4.2",
1258 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1259 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1260 | "dev": true,
1261 | "requires": {
1262 | "ansi-styles": "^3.2.1",
1263 | "escape-string-regexp": "^1.0.5",
1264 | "supports-color": "^5.3.0"
1265 | }
1266 | },
1267 | "color-convert": {
1268 | "version": "1.9.3",
1269 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1270 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1271 | "dev": true,
1272 | "requires": {
1273 | "color-name": "1.1.3"
1274 | }
1275 | },
1276 | "color-name": {
1277 | "version": "1.1.3",
1278 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1279 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1280 | "dev": true
1281 | },
1282 | "escape-string-regexp": {
1283 | "version": "1.0.5",
1284 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1285 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1286 | "dev": true
1287 | },
1288 | "has-flag": {
1289 | "version": "3.0.0",
1290 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1291 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1292 | "dev": true
1293 | },
1294 | "supports-color": {
1295 | "version": "5.5.0",
1296 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1297 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1298 | "dev": true,
1299 | "requires": {
1300 | "has-flag": "^3.0.0"
1301 | }
1302 | }
1303 | }
1304 | },
1305 | "js-yaml": {
1306 | "version": "3.14.0",
1307 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
1308 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
1309 | "dev": true,
1310 | "requires": {
1311 | "argparse": "^1.0.7",
1312 | "esprima": "^4.0.0"
1313 | }
1314 | },
1315 | "json-buffer": {
1316 | "version": "3.0.0",
1317 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1318 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
1319 | "dev": true
1320 | },
1321 | "json-schema-traverse": {
1322 | "version": "0.4.1",
1323 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1324 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1325 | "dev": true
1326 | },
1327 | "json-stringify-safe": {
1328 | "version": "5.0.1",
1329 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1330 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1331 | "dev": true,
1332 | "optional": true
1333 | },
1334 | "json5": {
1335 | "version": "2.1.3",
1336 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
1337 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
1338 | "dev": true,
1339 | "requires": {
1340 | "minimist": "^1.2.5"
1341 | }
1342 | },
1343 | "jsonfile": {
1344 | "version": "4.0.0",
1345 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1346 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
1347 | "dev": true,
1348 | "requires": {
1349 | "graceful-fs": "^4.1.6"
1350 | }
1351 | },
1352 | "jszip": {
1353 | "version": "2.6.1",
1354 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-2.6.1.tgz",
1355 | "integrity": "sha1-uI86ey5noqBIFSmCx6N1bZxIKPA=",
1356 | "requires": {
1357 | "pako": "~1.0.2"
1358 | }
1359 | },
1360 | "keyv": {
1361 | "version": "3.1.0",
1362 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1363 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1364 | "dev": true,
1365 | "requires": {
1366 | "json-buffer": "3.0.0"
1367 | }
1368 | },
1369 | "latest-version": {
1370 | "version": "5.1.0",
1371 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
1372 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
1373 | "dev": true,
1374 | "requires": {
1375 | "package-json": "^6.3.0"
1376 | }
1377 | },
1378 | "lazy-val": {
1379 | "version": "1.0.4",
1380 | "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz",
1381 | "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==",
1382 | "dev": true
1383 | },
1384 | "locate-path": {
1385 | "version": "5.0.0",
1386 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1387 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1388 | "dev": true,
1389 | "requires": {
1390 | "p-locate": "^4.1.0"
1391 | }
1392 | },
1393 | "lodash": {
1394 | "version": "4.17.20",
1395 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
1396 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
1397 | "dev": true,
1398 | "optional": true
1399 | },
1400 | "lowercase-keys": {
1401 | "version": "1.0.1",
1402 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1403 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
1404 | "dev": true
1405 | },
1406 | "lru-cache": {
1407 | "version": "5.1.1",
1408 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
1409 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
1410 | "dev": true,
1411 | "requires": {
1412 | "yallist": "^3.0.2"
1413 | }
1414 | },
1415 | "make-dir": {
1416 | "version": "3.1.0",
1417 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1418 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1419 | "dev": true,
1420 | "requires": {
1421 | "semver": "^6.0.0"
1422 | },
1423 | "dependencies": {
1424 | "semver": {
1425 | "version": "6.3.0",
1426 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1427 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1428 | "dev": true
1429 | }
1430 | }
1431 | },
1432 | "matcher": {
1433 | "version": "3.0.0",
1434 | "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
1435 | "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
1436 | "dev": true,
1437 | "optional": true,
1438 | "requires": {
1439 | "escape-string-regexp": "^4.0.0"
1440 | }
1441 | },
1442 | "mime": {
1443 | "version": "2.4.6",
1444 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
1445 | "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
1446 | "dev": true
1447 | },
1448 | "mimic-response": {
1449 | "version": "1.0.1",
1450 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1451 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
1452 | "dev": true
1453 | },
1454 | "minimatch": {
1455 | "version": "3.0.4",
1456 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1457 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1458 | "dev": true,
1459 | "requires": {
1460 | "brace-expansion": "^1.1.7"
1461 | }
1462 | },
1463 | "minimist": {
1464 | "version": "1.2.5",
1465 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1466 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1467 | "dev": true
1468 | },
1469 | "mkdirp": {
1470 | "version": "0.5.5",
1471 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1472 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1473 | "dev": true,
1474 | "requires": {
1475 | "minimist": "^1.2.5"
1476 | }
1477 | },
1478 | "ms": {
1479 | "version": "2.1.2",
1480 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1481 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1482 | "dev": true
1483 | },
1484 | "normalize-package-data": {
1485 | "version": "2.5.0",
1486 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1487 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1488 | "dev": true,
1489 | "requires": {
1490 | "hosted-git-info": "^2.1.4",
1491 | "resolve": "^1.10.0",
1492 | "semver": "2 || 3 || 4 || 5",
1493 | "validate-npm-package-license": "^3.0.1"
1494 | },
1495 | "dependencies": {
1496 | "hosted-git-info": {
1497 | "version": "2.8.8",
1498 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
1499 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
1500 | "dev": true
1501 | },
1502 | "semver": {
1503 | "version": "5.7.1",
1504 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1505 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1506 | "dev": true
1507 | }
1508 | }
1509 | },
1510 | "normalize-url": {
1511 | "version": "4.5.0",
1512 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
1513 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
1514 | "dev": true
1515 | },
1516 | "npm-conf": {
1517 | "version": "1.1.3",
1518 | "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
1519 | "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
1520 | "dev": true,
1521 | "optional": true,
1522 | "requires": {
1523 | "config-chain": "^1.1.11",
1524 | "pify": "^3.0.0"
1525 | }
1526 | },
1527 | "object-keys": {
1528 | "version": "1.1.1",
1529 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1530 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1531 | "dev": true,
1532 | "optional": true
1533 | },
1534 | "once": {
1535 | "version": "1.4.0",
1536 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1537 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1538 | "dev": true,
1539 | "requires": {
1540 | "wrappy": "1"
1541 | }
1542 | },
1543 | "p-cancelable": {
1544 | "version": "1.1.0",
1545 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1546 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
1547 | "dev": true
1548 | },
1549 | "p-limit": {
1550 | "version": "2.3.0",
1551 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1552 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1553 | "dev": true,
1554 | "requires": {
1555 | "p-try": "^2.0.0"
1556 | }
1557 | },
1558 | "p-locate": {
1559 | "version": "4.1.0",
1560 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1561 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1562 | "dev": true,
1563 | "requires": {
1564 | "p-limit": "^2.2.0"
1565 | }
1566 | },
1567 | "p-try": {
1568 | "version": "2.2.0",
1569 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1570 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1571 | "dev": true
1572 | },
1573 | "package-json": {
1574 | "version": "6.5.0",
1575 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
1576 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
1577 | "dev": true,
1578 | "requires": {
1579 | "got": "^9.6.0",
1580 | "registry-auth-token": "^4.0.0",
1581 | "registry-url": "^5.0.0",
1582 | "semver": "^6.2.0"
1583 | },
1584 | "dependencies": {
1585 | "semver": {
1586 | "version": "6.3.0",
1587 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1588 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1589 | "dev": true
1590 | }
1591 | }
1592 | },
1593 | "pako": {
1594 | "version": "1.0.11",
1595 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
1596 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
1597 | },
1598 | "path-exists": {
1599 | "version": "4.0.0",
1600 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1601 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1602 | "dev": true
1603 | },
1604 | "path-parse": {
1605 | "version": "1.0.6",
1606 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1607 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1608 | "dev": true
1609 | },
1610 | "pend": {
1611 | "version": "1.2.0",
1612 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1613 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
1614 | "dev": true
1615 | },
1616 | "pify": {
1617 | "version": "3.0.0",
1618 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1619 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1620 | "dev": true,
1621 | "optional": true
1622 | },
1623 | "prepend-http": {
1624 | "version": "2.0.0",
1625 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1626 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
1627 | "dev": true
1628 | },
1629 | "process-nextick-args": {
1630 | "version": "2.0.1",
1631 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1632 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1633 | "dev": true
1634 | },
1635 | "progress": {
1636 | "version": "2.0.3",
1637 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1638 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1639 | "dev": true
1640 | },
1641 | "proto-list": {
1642 | "version": "1.2.4",
1643 | "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
1644 | "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
1645 | "dev": true,
1646 | "optional": true
1647 | },
1648 | "pump": {
1649 | "version": "3.0.0",
1650 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1651 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1652 | "dev": true,
1653 | "requires": {
1654 | "end-of-stream": "^1.1.0",
1655 | "once": "^1.3.1"
1656 | }
1657 | },
1658 | "punycode": {
1659 | "version": "2.1.1",
1660 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1661 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1662 | "dev": true
1663 | },
1664 | "pupa": {
1665 | "version": "2.0.1",
1666 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz",
1667 | "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==",
1668 | "dev": true,
1669 | "requires": {
1670 | "escape-goat": "^2.0.0"
1671 | }
1672 | },
1673 | "q": {
1674 | "version": "1.5.1",
1675 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
1676 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
1677 | },
1678 | "rc": {
1679 | "version": "1.2.8",
1680 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
1681 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
1682 | "dev": true,
1683 | "requires": {
1684 | "deep-extend": "^0.6.0",
1685 | "ini": "~1.3.0",
1686 | "minimist": "^1.2.0",
1687 | "strip-json-comments": "~2.0.1"
1688 | }
1689 | },
1690 | "read-config-file": {
1691 | "version": "6.0.0",
1692 | "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz",
1693 | "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==",
1694 | "dev": true,
1695 | "requires": {
1696 | "dotenv": "^8.2.0",
1697 | "dotenv-expand": "^5.1.0",
1698 | "js-yaml": "^3.13.1",
1699 | "json5": "^2.1.2",
1700 | "lazy-val": "^1.0.4"
1701 | }
1702 | },
1703 | "readable-stream": {
1704 | "version": "2.3.7",
1705 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1706 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1707 | "dev": true,
1708 | "requires": {
1709 | "core-util-is": "~1.0.0",
1710 | "inherits": "~2.0.3",
1711 | "isarray": "~1.0.0",
1712 | "process-nextick-args": "~2.0.0",
1713 | "safe-buffer": "~5.1.1",
1714 | "string_decoder": "~1.1.1",
1715 | "util-deprecate": "~1.0.1"
1716 | }
1717 | },
1718 | "registry-auth-token": {
1719 | "version": "4.1.1",
1720 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz",
1721 | "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==",
1722 | "dev": true,
1723 | "requires": {
1724 | "rc": "^1.2.8"
1725 | }
1726 | },
1727 | "registry-url": {
1728 | "version": "5.1.0",
1729 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
1730 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
1731 | "dev": true,
1732 | "requires": {
1733 | "rc": "^1.2.8"
1734 | }
1735 | },
1736 | "require-directory": {
1737 | "version": "2.1.1",
1738 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1739 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1740 | "dev": true
1741 | },
1742 | "require-main-filename": {
1743 | "version": "2.0.0",
1744 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1745 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1746 | "dev": true
1747 | },
1748 | "resolve": {
1749 | "version": "1.17.0",
1750 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
1751 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
1752 | "dev": true,
1753 | "requires": {
1754 | "path-parse": "^1.0.6"
1755 | }
1756 | },
1757 | "responselike": {
1758 | "version": "1.0.2",
1759 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
1760 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
1761 | "dev": true,
1762 | "requires": {
1763 | "lowercase-keys": "^1.0.0"
1764 | }
1765 | },
1766 | "roarr": {
1767 | "version": "2.15.4",
1768 | "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
1769 | "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
1770 | "dev": true,
1771 | "optional": true,
1772 | "requires": {
1773 | "boolean": "^3.0.1",
1774 | "detect-node": "^2.0.4",
1775 | "globalthis": "^1.0.1",
1776 | "json-stringify-safe": "^5.0.1",
1777 | "semver-compare": "^1.0.0",
1778 | "sprintf-js": "^1.1.2"
1779 | }
1780 | },
1781 | "safe-buffer": {
1782 | "version": "5.1.2",
1783 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1784 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1785 | "dev": true
1786 | },
1787 | "safer-buffer": {
1788 | "version": "2.1.2",
1789 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1790 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1791 | "dev": true
1792 | },
1793 | "sanitize-filename": {
1794 | "version": "1.6.3",
1795 | "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
1796 | "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
1797 | "dev": true,
1798 | "requires": {
1799 | "truncate-utf8-bytes": "^1.0.0"
1800 | }
1801 | },
1802 | "sax": {
1803 | "version": "1.2.4",
1804 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
1805 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
1806 | "dev": true
1807 | },
1808 | "semver": {
1809 | "version": "7.3.2",
1810 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
1811 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
1812 | "dev": true
1813 | },
1814 | "semver-compare": {
1815 | "version": "1.0.0",
1816 | "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
1817 | "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
1818 | "dev": true,
1819 | "optional": true
1820 | },
1821 | "semver-diff": {
1822 | "version": "3.1.1",
1823 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
1824 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
1825 | "dev": true,
1826 | "requires": {
1827 | "semver": "^6.3.0"
1828 | },
1829 | "dependencies": {
1830 | "semver": {
1831 | "version": "6.3.0",
1832 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1833 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1834 | "dev": true
1835 | }
1836 | }
1837 | },
1838 | "serialize-error": {
1839 | "version": "7.0.1",
1840 | "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
1841 | "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
1842 | "dev": true,
1843 | "optional": true,
1844 | "requires": {
1845 | "type-fest": "^0.13.1"
1846 | }
1847 | },
1848 | "set-blocking": {
1849 | "version": "2.0.0",
1850 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1851 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1852 | "dev": true
1853 | },
1854 | "signal-exit": {
1855 | "version": "3.0.3",
1856 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1857 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
1858 | "dev": true
1859 | },
1860 | "source-map": {
1861 | "version": "0.6.1",
1862 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1863 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1864 | "dev": true
1865 | },
1866 | "source-map-support": {
1867 | "version": "0.5.19",
1868 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
1869 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
1870 | "dev": true,
1871 | "requires": {
1872 | "buffer-from": "^1.0.0",
1873 | "source-map": "^0.6.0"
1874 | }
1875 | },
1876 | "spdx-correct": {
1877 | "version": "3.1.1",
1878 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
1879 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
1880 | "dev": true,
1881 | "requires": {
1882 | "spdx-expression-parse": "^3.0.0",
1883 | "spdx-license-ids": "^3.0.0"
1884 | }
1885 | },
1886 | "spdx-exceptions": {
1887 | "version": "2.3.0",
1888 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
1889 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
1890 | "dev": true
1891 | },
1892 | "spdx-expression-parse": {
1893 | "version": "3.0.1",
1894 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
1895 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
1896 | "dev": true,
1897 | "requires": {
1898 | "spdx-exceptions": "^2.1.0",
1899 | "spdx-license-ids": "^3.0.0"
1900 | }
1901 | },
1902 | "spdx-license-ids": {
1903 | "version": "3.0.5",
1904 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
1905 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
1906 | "dev": true
1907 | },
1908 | "sprintf-js": {
1909 | "version": "1.1.2",
1910 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
1911 | "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
1912 | "dev": true,
1913 | "optional": true
1914 | },
1915 | "stat-mode": {
1916 | "version": "1.0.0",
1917 | "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
1918 | "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==",
1919 | "dev": true
1920 | },
1921 | "string-width": {
1922 | "version": "4.2.0",
1923 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
1924 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
1925 | "dev": true,
1926 | "requires": {
1927 | "emoji-regex": "^8.0.0",
1928 | "is-fullwidth-code-point": "^3.0.0",
1929 | "strip-ansi": "^6.0.0"
1930 | },
1931 | "dependencies": {
1932 | "ansi-regex": {
1933 | "version": "5.0.0",
1934 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
1935 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
1936 | "dev": true
1937 | },
1938 | "emoji-regex": {
1939 | "version": "8.0.0",
1940 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1941 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1942 | "dev": true
1943 | },
1944 | "is-fullwidth-code-point": {
1945 | "version": "3.0.0",
1946 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1947 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1948 | "dev": true
1949 | },
1950 | "strip-ansi": {
1951 | "version": "6.0.0",
1952 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1953 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1954 | "dev": true,
1955 | "requires": {
1956 | "ansi-regex": "^5.0.0"
1957 | }
1958 | }
1959 | }
1960 | },
1961 | "string_decoder": {
1962 | "version": "1.1.1",
1963 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1964 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1965 | "dev": true,
1966 | "requires": {
1967 | "safe-buffer": "~5.1.0"
1968 | }
1969 | },
1970 | "strip-ansi": {
1971 | "version": "5.2.0",
1972 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1973 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1974 | "dev": true,
1975 | "requires": {
1976 | "ansi-regex": "^4.1.0"
1977 | }
1978 | },
1979 | "strip-json-comments": {
1980 | "version": "2.0.1",
1981 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1982 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1983 | "dev": true
1984 | },
1985 | "sumchecker": {
1986 | "version": "3.0.1",
1987 | "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz",
1988 | "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==",
1989 | "dev": true,
1990 | "requires": {
1991 | "debug": "^4.1.0"
1992 | }
1993 | },
1994 | "supports-color": {
1995 | "version": "7.1.0",
1996 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
1997 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
1998 | "dev": true,
1999 | "requires": {
2000 | "has-flag": "^4.0.0"
2001 | }
2002 | },
2003 | "temp-file": {
2004 | "version": "3.3.7",
2005 | "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz",
2006 | "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==",
2007 | "dev": true,
2008 | "requires": {
2009 | "async-exit-hook": "^2.0.1",
2010 | "fs-extra": "^8.1.0"
2011 | }
2012 | },
2013 | "term-size": {
2014 | "version": "2.2.0",
2015 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
2016 | "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
2017 | "dev": true
2018 | },
2019 | "textextensions": {
2020 | "version": "5.3.0",
2021 | "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.3.0.tgz",
2022 | "integrity": "sha512-tXYcd0tHHqMbhDD59ynPEs7vdFgZ9nc78mQBh+356swcS7oY7v1N3Clizw9NBKBdJ7qYT7dZlYZTe83DQ51JEA=="
2023 | },
2024 | "to-readable-stream": {
2025 | "version": "1.0.0",
2026 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
2027 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
2028 | "dev": true
2029 | },
2030 | "truncate-utf8-bytes": {
2031 | "version": "1.0.2",
2032 | "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
2033 | "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
2034 | "dev": true,
2035 | "requires": {
2036 | "utf8-byte-length": "^1.0.1"
2037 | }
2038 | },
2039 | "tunnel": {
2040 | "version": "0.0.6",
2041 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
2042 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
2043 | "dev": true,
2044 | "optional": true
2045 | },
2046 | "type-fest": {
2047 | "version": "0.13.1",
2048 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
2049 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
2050 | "dev": true,
2051 | "optional": true
2052 | },
2053 | "typedarray": {
2054 | "version": "0.0.6",
2055 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
2056 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
2057 | "dev": true
2058 | },
2059 | "typedarray-to-buffer": {
2060 | "version": "3.1.5",
2061 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
2062 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
2063 | "dev": true,
2064 | "requires": {
2065 | "is-typedarray": "^1.0.0"
2066 | }
2067 | },
2068 | "unique-string": {
2069 | "version": "2.0.0",
2070 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
2071 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
2072 | "dev": true,
2073 | "requires": {
2074 | "crypto-random-string": "^2.0.0"
2075 | }
2076 | },
2077 | "universalify": {
2078 | "version": "0.1.2",
2079 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
2080 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
2081 | "dev": true
2082 | },
2083 | "update-notifier": {
2084 | "version": "4.1.0",
2085 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz",
2086 | "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==",
2087 | "dev": true,
2088 | "requires": {
2089 | "boxen": "^4.2.0",
2090 | "chalk": "^3.0.0",
2091 | "configstore": "^5.0.1",
2092 | "has-yarn": "^2.1.0",
2093 | "import-lazy": "^2.1.0",
2094 | "is-ci": "^2.0.0",
2095 | "is-installed-globally": "^0.3.1",
2096 | "is-npm": "^4.0.0",
2097 | "is-yarn-global": "^0.3.0",
2098 | "latest-version": "^5.0.0",
2099 | "pupa": "^2.0.1",
2100 | "semver-diff": "^3.1.1",
2101 | "xdg-basedir": "^4.0.0"
2102 | },
2103 | "dependencies": {
2104 | "chalk": {
2105 | "version": "3.0.0",
2106 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
2107 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
2108 | "dev": true,
2109 | "requires": {
2110 | "ansi-styles": "^4.1.0",
2111 | "supports-color": "^7.1.0"
2112 | }
2113 | }
2114 | }
2115 | },
2116 | "uri-js": {
2117 | "version": "4.2.2",
2118 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
2119 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
2120 | "dev": true,
2121 | "requires": {
2122 | "punycode": "^2.1.0"
2123 | }
2124 | },
2125 | "url-parse-lax": {
2126 | "version": "3.0.0",
2127 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
2128 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
2129 | "dev": true,
2130 | "requires": {
2131 | "prepend-http": "^2.0.0"
2132 | }
2133 | },
2134 | "utf8-byte-length": {
2135 | "version": "1.0.4",
2136 | "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
2137 | "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
2138 | "dev": true
2139 | },
2140 | "util-deprecate": {
2141 | "version": "1.0.2",
2142 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2143 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2144 | "dev": true
2145 | },
2146 | "validate-npm-package-license": {
2147 | "version": "3.0.4",
2148 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2149 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2150 | "dev": true,
2151 | "requires": {
2152 | "spdx-correct": "^3.0.0",
2153 | "spdx-expression-parse": "^3.0.0"
2154 | }
2155 | },
2156 | "which-module": {
2157 | "version": "2.0.0",
2158 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
2159 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
2160 | "dev": true
2161 | },
2162 | "widest-line": {
2163 | "version": "3.1.0",
2164 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
2165 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
2166 | "dev": true,
2167 | "requires": {
2168 | "string-width": "^4.0.0"
2169 | }
2170 | },
2171 | "wrap-ansi": {
2172 | "version": "6.2.0",
2173 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
2174 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
2175 | "dev": true,
2176 | "requires": {
2177 | "ansi-styles": "^4.0.0",
2178 | "string-width": "^4.1.0",
2179 | "strip-ansi": "^6.0.0"
2180 | },
2181 | "dependencies": {
2182 | "ansi-regex": {
2183 | "version": "5.0.0",
2184 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
2185 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
2186 | "dev": true
2187 | },
2188 | "strip-ansi": {
2189 | "version": "6.0.0",
2190 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2191 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2192 | "dev": true,
2193 | "requires": {
2194 | "ansi-regex": "^5.0.0"
2195 | }
2196 | }
2197 | }
2198 | },
2199 | "wrappy": {
2200 | "version": "1.0.2",
2201 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2202 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2203 | "dev": true
2204 | },
2205 | "write-file-atomic": {
2206 | "version": "3.0.3",
2207 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2208 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2209 | "dev": true,
2210 | "requires": {
2211 | "imurmurhash": "^0.1.4",
2212 | "is-typedarray": "^1.0.0",
2213 | "signal-exit": "^3.0.2",
2214 | "typedarray-to-buffer": "^3.1.5"
2215 | }
2216 | },
2217 | "xdg-basedir": {
2218 | "version": "4.0.0",
2219 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
2220 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
2221 | "dev": true
2222 | },
2223 | "y18n": {
2224 | "version": "4.0.0",
2225 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
2226 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
2227 | "dev": true
2228 | },
2229 | "yallist": {
2230 | "version": "3.1.1",
2231 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
2232 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
2233 | "dev": true
2234 | },
2235 | "yargs": {
2236 | "version": "15.3.1",
2237 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
2238 | "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
2239 | "dev": true,
2240 | "requires": {
2241 | "cliui": "^6.0.0",
2242 | "decamelize": "^1.2.0",
2243 | "find-up": "^4.1.0",
2244 | "get-caller-file": "^2.0.1",
2245 | "require-directory": "^2.1.1",
2246 | "require-main-filename": "^2.0.0",
2247 | "set-blocking": "^2.0.0",
2248 | "string-width": "^4.2.0",
2249 | "which-module": "^2.0.0",
2250 | "y18n": "^4.0.0",
2251 | "yargs-parser": "^18.1.1"
2252 | }
2253 | },
2254 | "yargs-parser": {
2255 | "version": "18.1.3",
2256 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
2257 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
2258 | "dev": true,
2259 | "requires": {
2260 | "camelcase": "^5.0.0",
2261 | "decamelize": "^1.2.0"
2262 | }
2263 | },
2264 | "yauzl": {
2265 | "version": "2.10.0",
2266 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
2267 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
2268 | "dev": true,
2269 | "requires": {
2270 | "buffer-crc32": "~0.2.3",
2271 | "fd-slicer": "~1.1.0"
2272 | }
2273 | },
2274 | "zip-local": {
2275 | "version": "0.3.4",
2276 | "resolved": "https://registry.npmjs.org/zip-local/-/zip-local-0.3.4.tgz",
2277 | "integrity": "sha1-4pMZByV6lGR56lvQ0OIK3+srWgc=",
2278 | "requires": {
2279 | "async": "^1.4.2",
2280 | "graceful-fs": "^4.1.3",
2281 | "jszip": "^2.5.0",
2282 | "q": "^1.4.1"
2283 | },
2284 | "dependencies": {
2285 | "async": {
2286 | "version": "1.5.2",
2287 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2288 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
2289 | }
2290 | }
2291 | }
2292 | }
2293 | }
2294 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rabbit-electron",
3 | "version": "0.3.0",
4 | "main": "main.js",
5 | "description": "Rabbit Zawgyi to Unicode by Folder. Supporting text file and docx , xlsx, pptx.",
6 | "author": "saturngod",
7 | "license": "MIT",
8 | "scripts": {
9 | "start": "electron .",
10 | "pack": "electron-builder --dir",
11 | "dist": "electron-builder",
12 | "snap": "electron-builder --linux snap"
13 | },
14 | "repository": "https://github.com/saturngod/rabbit-folder",
15 | "keywords": [
16 | "Electron",
17 | "Rabbit",
18 | "Zawgyi",
19 | "Unicode",
20 | "Burmese",
21 | "Converter"
22 | ],
23 | "devDependencies": {
24 | "electron": "^9.3.1",
25 | "electron-builder": "^22.7.0"
26 | },
27 | "build": {
28 | "appId": "com.comquas.rabbitFolder",
29 | "mac": {
30 | "category": "public.app-category.utilities"
31 | }
32 | },
33 | "dependencies": {
34 | "istextorbinary": "^5.2.0",
35 | "zip-local": "^0.3.4"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/rabbit.js:
--------------------------------------------------------------------------------
1 | var Rabbit = {
2 | "zg2uni" : zg2uni,
3 | "uni2zg": uni2zg
4 | }
5 |
6 | function uni2zg(output) {
7 | var rule = [
8 | {
9 | "from": "\u1004\u103a\u1039",
10 | "to": "\u1064"
11 | },
12 | {
13 | "from": "\u1039\u1010\u103d",
14 | "to": "\u1096"
15 | },
16 | {
17 | "from": "\u102b\u103a",
18 | "to": "\u105a"
19 | },
20 | {
21 | "from": "\u102d\u1036",
22 | "to": "\u108e"
23 | },
24 | {
25 | "from": "\u104e\u1004\u103a\u1038",
26 | "to": "\u104e"
27 | },
28 | {
29 | "from": "[\u1025\u1009](?=\u1039)",
30 | "to": "\u106a"
31 | },
32 | {
33 | "from": "\u1009(?=[\u102f\u1030])",
34 | "to": "\u1025"
35 | },
36 | {
37 | "from": "[\u1025\u1009](?=[\u1037]?[\u103a])",
38 | "to": "\u1025"
39 | },
40 | {
41 | "from": "\u100a(?=[\u1039\u103d])",
42 | "to": "\u106b"
43 | },
44 | {
45 | "from": "(\u1039[\u1000-\u1021])(\u102D){0,1}\u102f",
46 | "to": "$1$2\u1033"
47 | },
48 | {
49 | "from": "(\u1039[\u1000-\u1021])\u1030",
50 | "to": "$1\u1034"
51 | },
52 | {
53 | "from": "\u1014(?=[\u102d\u102e\u102f\u103A]?[\u1030\u103d\u103e\u102f\u1039])",
54 | "to": "\u108f"
55 | },
56 | {
57 | "from": "\u1014(?=\u103A\u102F )",
58 | "to": "\u108f"
59 | },
60 | {
61 | "from" : "\u1014\u103c",
62 | "to" : "\u108f\u103c"
63 | },
64 | {
65 | "from": "\u1039\u1000",
66 | "to": "\u1060"
67 | },
68 | {
69 | "from": "\u1039\u1001",
70 | "to": "\u1061"
71 | },
72 | {
73 | "from": "\u1039\u1002",
74 | "to": "\u1062"
75 | },
76 | {
77 | "from": "\u1039\u1003",
78 | "to": "\u1063"
79 | },
80 | {
81 | "from": "\u1039\u1005",
82 | "to": "\u1065"
83 | },
84 | {
85 | "from": "\u1039\u1006",
86 | "to": "\u1066"
87 | },
88 | {
89 | "from": "\u1039\u1007",
90 | "to": "\u1068"
91 | },
92 | {
93 | "from": "\u1039\u1008",
94 | "to": "\u1069"
95 | },
96 | {
97 | "from": "\u1039\u100b",
98 | "to": "\u106c"
99 | },
100 | {
101 | "from": "\u100b\u1039\u100c",
102 | "to": "\u1092"
103 | },
104 | {
105 | "from": "\u1039\u100c",
106 | "to": "\u106d"
107 | },
108 | {
109 | "from": "\u100d\u1039\u100d",
110 | "to": "\u106e"
111 | },
112 | {
113 | "from": "\u100d\u1039\u100e",
114 | "to": "\u106f"
115 | },
116 | {
117 | "from": "\u1039\u100f",
118 | "to": "\u1070"
119 | },
120 | {
121 | "from": "\u1039\u1010",
122 | "to": "\u1071"
123 | },
124 | {
125 | "from": "\u1039\u1011",
126 | "to": "\u1073"
127 | },
128 | {
129 | "from": "\u1039\u1012",
130 | "to": "\u1075"
131 | },
132 | {
133 | "from": "\u1039\u1013",
134 | "to": "\u1076"
135 | },
136 | {
137 | "from": "\u1039[\u1014\u108f]",
138 | "to": "\u1077"
139 | },
140 | {
141 | "from": "\u1039\u1015",
142 | "to": "\u1078"
143 | },
144 | {
145 | "from": "\u1039\u1016",
146 | "to": "\u1079"
147 | },
148 | {
149 | "from": "\u1039\u1017",
150 | "to": "\u107a"
151 | },
152 | {
153 | "from": "\u1039\u1018",
154 | "to": "\u107b"
155 | },
156 | {
157 | "from": "\u1039\u1019",
158 | "to": "\u107c"
159 | },
160 | {
161 | "from": "\u1039\u101c",
162 | "to": "\u1085"
163 | },
164 | {
165 | "from": "\u103f",
166 | "to": "\u1086"
167 | },
168 | {
169 | "from": "\u103d\u103e",
170 | "to": "\u108a"
171 | },
172 | {
173 | "from": "(\u1064)([\u1000-\u1021])([\u103b\u103c]?)\u102d",
174 | "to": "$2$3\u108b"
175 | },
176 | {
177 | "from": "(\u1064)([\u1000-\u1021])([\u103b\u103c]?)\u102e",
178 | "to": "$2$3\u108c"
179 | },
180 | {
181 | "from": "(\u1064)([\u1000-\u1021])([\u103b\u103c]?)\u1036",
182 | "to": "$2$3\u108d"
183 | },
184 | {
185 | "from": "(\u1064)([\u1000-\u1021\u1040-\u1049])([\u103b\u103c]?)([\u1031]?)",
186 | "to": "$2$3$4$1"
187 | },
188 | {
189 | "from": "\u101b(?=([\u102d\u102e]?)[\u102f\u1030\u103d\u108a])",
190 | "to": "\u1090"
191 | },
192 | {
193 | "from": "\u100f\u1039\u100d",
194 | "to": "\u1091"
195 | },
196 | {
197 | "from": "\u100b\u1039\u100b",
198 | "to": "\u1097"
199 | },
200 | {
201 | "from": "([\u1000-\u1021\u108f\u1029\u106a\u106e\u106f\u1086\u1090\u1091\u1092\u1097\u1096])([\u1060-\u1069\u106c\u106d\u1070-\u107c\u1085\u108a])?([\u103b-\u103e]*)?\u1031",
202 | "to": "\u1031$1$2$3"
203 | },
204 | {
205 | "from": "\u103c\u103e",
206 | "to": "\u103c\u1087"
207 | },
208 | {
209 | "from": "([\u1000-\u1021\u108f\u1029])([\u1060-\u1069\u106c\u106d\u1070-\u107c\u1085])?(\u103c)",
210 | "to": "$3$1$2"
211 | },
212 | {
213 | "from": "\u103a",
214 | "to": "\u1039"
215 | },
216 | {
217 | "from": "\u103b",
218 | "to": "\u103a"
219 | },
220 | {
221 | "from": "\u103c",
222 | "to": "\u103b"
223 | },
224 | {
225 | "from": "\u103d",
226 | "to": "\u103c"
227 | },
228 | {
229 | "from": "\u103e",
230 | "to": "\u103d"
231 | },
232 | {
233 | "from": "([^\u103a\u100a])\u103d([\u102d\u102e]?)\u102f",
234 | "to": "$1\u1088$2"
235 | },
236 | {
237 | "from": "([\u101b\u103a\u103c\u108a\u1088\u1090])([\u1030\u103d])?([\u1032\u1036\u1039\u102d\u102e\u108b\u108c\u108d\u108e]?)(\u102f)?\u1037",
238 | "to": "$1$2$3$4\u1095"
239 | },
240 | {
241 | "from": "([\u102f\u1014\u1030\u103d])([\u1032\u1036\u1039\u102d\u102e\u108b\u108c\u108d\u108e]?)\u1037",
242 | "to": "$1$2\u1094"
243 | },
244 | {
245 | "from": "([\u103b])([\u1000-\u1021])([\u1087]?)([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u102f",
246 | "to": "$1$2$3$4\u1033"
247 | },
248 | {
249 | "from": "([\u103b])([\u1000-\u1021])([\u1087]?)([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u1030",
250 | "to": "$1$2$3$4\u1034"
251 | },
252 | {
253 | "from": "([\u103a\u103c\u100a\u1008\u100b\u100c\u100d\u1020\u1025])([\u103d]?)([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u102f",
254 | "to": "$1$2$3\u1033"
255 | },
256 | {
257 | "from": "([\u103a\u103c\u100a\u1008\u100b\u100c\u100d\u1020\u1025])(\u103d?)([\u1036\u102d\u102e\u108b\u108c\u108d\u108e]?)\u1030",
258 | "to": "$1$2$3\u1034"
259 | },
260 | {
261 | "from": "([\u100a\u1020\u1009])\u103d",
262 | "to": "$1\u1087"
263 | },
264 | {
265 | "from": "\u103d\u1030",
266 | "to": "\u1089"
267 | },
268 | {
269 | "from": "\u103b([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])",
270 | "to": "\u107e$1"
271 | },
272 | {
273 | "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u103c\u108a])([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])",
274 | "to": "\u1084$1$2$3"
275 | },
276 | {
277 | "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u103c\u108a])",
278 | "to": "\u1082$1$2"
279 | },
280 | {
281 | "from": "\u107e([\u1000\u1003\u1006\u100f\u1010\u1011\u1018\u101a\u101c\u101a\u101e\u101f])([\u1033\u1034]?)([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])",
282 | "to": "\u1080$1$2$3"
283 | },
284 | {
285 | "from": "\u103b([\u1000-\u1021])([\u103c\u108a])([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])",
286 | "to": "\u1083$1$2$3"
287 | },
288 | {
289 | "from": "\u103b([\u1000-\u1021])([\u103c\u108a])",
290 | "to": "\u1081$1$2"
291 | },
292 | {
293 | "from": "\u103b([\u1000-\u1021])([\u1033\u1034]?)([\u1032\u1036\u102d\u102e\u108b\u108c\u108d\u108e])",
294 | "to": "\u107f$1$2$3"
295 | },
296 | {
297 | "from": "\u103a\u103d",
298 | "to": "\u103d\u103a"
299 | },
300 | {
301 | "from": "\u103a([\u103c\u108a])",
302 | "to": "$1\u107d"
303 | },
304 | {
305 | "from": "([\u1033\u1034])(\u1036?)\u1094",
306 | "to": "$1$2\u1095"
307 | },
308 | {
309 | "from": "\u108F\u1071",
310 | "to" : "\u108F\u1072"
311 | },
312 | {
313 | "from": "\u108F\u1073",
314 | "to" : "\u108F\u1074"
315 | },
316 | {
317 | "from": "([\u1000-\u1021])([\u107B\u1066])\u102C",
318 | "to": "$1\u102C$2"
319 | },
320 | {
321 | "from": "\u102C([\u107B\u1066])\u1037",
322 | "to": "\u102C$1\u1094"
323 | },
324 | {
325 | "from": "\u1047((?=[\u1000-\u1021]\u1039)|(?=[\u102c-\u1030\u1032\u1036-\u1038\u103c\u103d]))",
326 | "to": "\u101b"
327 | }
328 | ]
329 | ;
330 | return replace_with_rule(rule,output);
331 | }
332 |
333 | function zg2uni(output) {
334 | var rule = [
335 | {
336 | "from" : "([\u102D\u102E\u103D\u102F\u1037\u1095])\\1+",
337 | "to" : "$1"
338 | },
339 | {
340 | "from": "\u200B",
341 | "to": ""
342 | },
343 | {
344 | "from" : "\u103d\u103c",
345 | "to" : "\u108a"
346 | },
347 | {
348 | "from": "(\u103d|\u1087)",
349 | "to": "\u103e"
350 | },
351 | {
352 | "from": "\u103c",
353 | "to": "\u103d"
354 | },
355 | {
356 | "from": "(\u103b|\u107e|\u107f|\u1080|\u1081|\u1082|\u1083|\u1084)",
357 | "to": "\u103c"
358 | },
359 | {
360 | "from": "(\u103a|\u107d)",
361 | "to": "\u103b"
362 | },
363 | {
364 | "from": "\u1039",
365 | "to": "\u103a"
366 | },
367 | {
368 | "from": "(\u1066|\u1067)",
369 | "to": "\u1039\u1006"
370 | },
371 | {
372 | "from": "\u106a",
373 | "to": "\u1009"
374 | },
375 | {
376 | "from": "\u106b",
377 | "to": "\u100a"
378 | },
379 | {
380 | "from": "\u106c",
381 | "to": "\u1039\u100b"
382 | },
383 | {
384 | "from": "\u106d",
385 | "to": "\u1039\u100c"
386 | },
387 | {
388 | "from": "\u106e",
389 | "to": "\u100d\u1039\u100d"
390 | },
391 | {
392 | "from": "\u106f",
393 | "to": "\u100d\u1039\u100e"
394 | },
395 | {
396 | "from": "\u1070",
397 | "to": "\u1039\u100f"
398 | },
399 | {
400 | "from": "(\u1071|\u1072)",
401 | "to": "\u1039\u1010"
402 | },
403 | {
404 | "from": "\u1060",
405 | "to": "\u1039\u1000"
406 | },
407 | {
408 | "from": "\u1061",
409 | "to": "\u1039\u1001"
410 | },
411 | {
412 | "from": "\u1062",
413 | "to": "\u1039\u1002"
414 | },
415 | {
416 | "from": "\u1063",
417 | "to": "\u1039\u1003"
418 | },
419 | {
420 | "from": "\u1065",
421 | "to": "\u1039\u1005"
422 | },
423 | {
424 | "from": "\u1068",
425 | "to": "\u1039\u1007"
426 | },
427 | {
428 | "from": "\u1069",
429 | "to": "\u1039\u1008"
430 | },
431 | {
432 | "from": "(\u1073|\u1074)",
433 | "to": "\u1039\u1011"
434 | },
435 | {
436 | "from": "\u1075",
437 | "to": "\u1039\u1012"
438 | },
439 | {
440 | "from": "\u1076",
441 | "to": "\u1039\u1013"
442 | },
443 | {
444 | "from": "\u1077",
445 | "to": "\u1039\u1014"
446 | },
447 | {
448 | "from": "\u1078",
449 | "to": "\u1039\u1015"
450 | },
451 | {
452 | "from": "\u1079",
453 | "to": "\u1039\u1016"
454 | },
455 | {
456 | "from": "\u107a",
457 | "to": "\u1039\u1017"
458 | },
459 | {
460 | "from": "\u107c",
461 | "to": "\u1039\u1019"
462 | },
463 | {
464 | "from": "\u1085",
465 | "to": "\u1039\u101c"
466 | },
467 | {
468 | "from": "\u1033",
469 | "to": "\u102f"
470 | },
471 | {
472 | "from": "\u1034",
473 | "to": "\u1030"
474 | },
475 | {
476 | "from": "\u103f",
477 | "to": "\u1030"
478 | },
479 | {
480 | "from": "\u1086",
481 | "to": "\u103f"
482 | },
483 | {
484 | "from": "\u1036\u1088",
485 | "to": "\u1088\u1036"
486 | },
487 | {
488 | "from": "\u1088",
489 | "to": "\u103e\u102f"
490 | },
491 | {
492 | "from": "\u1089",
493 | "to": "\u103e\u1030"
494 | },
495 | {
496 | "from": "\u108a",
497 | "to": "\u103d\u103e"
498 | },
499 | {
500 | "from": "\u103B\u1064",
501 | "to": "\u1064\u103B"
502 | },
503 | {
504 | "from": "\u103c([\u1000-\u1021])([\u1064\u108b\u108d])",
505 | "to": "$1\u103c$2"
506 | },
507 | {
508 | "from": "(\u1031)?([\u1000-\u1021\u1040-\u1049])(\u103c)?\u1064",
509 | "to": "\u1004\u103a\u1039$1$2$3"
510 | },
511 | {
512 | "from": "(\u1031)?([\u1000-\u1021])(\u103b|\u103c)?\u108b",
513 | "to": "\u1004\u103a\u1039$1$2$3\u102d"
514 | },
515 | {
516 | "from": "(\u1031)?([\u1000-\u1021])(\u103b)?\u108c",
517 | "to": "\u1004\u103a\u1039$1$2$3\u102e"
518 | },
519 | {
520 | "from": "(\u1031)?([\u1000-\u1021])([\u103b\u103c])?\u108d",
521 | "to": "\u1004\u103a\u1039$1$2$3\u1036"
522 | },
523 | {
524 | "from": "\u108e",
525 | "to": "\u102d\u1036"
526 | },
527 | {
528 | "from": "\u108f",
529 | "to": "\u1014"
530 | },
531 | {
532 | "from": "\u1090",
533 | "to": "\u101b"
534 | },
535 | {
536 | "from": "\u1091",
537 | "to": "\u100f\u1039\u100d"
538 | },
539 | {
540 | "from": "\u1092",
541 | "to": "\u100b\u1039\u100c"
542 | },
543 | {
544 | "from": "\u1019\u102c(\u107b|\u1093)",
545 | "to": "\u1019\u1039\u1018\u102c"
546 | },
547 | {
548 | "from": "(\u107b|\u1093)",
549 | "to": "\u1039\u1018"
550 | },
551 | {
552 | "from": "(\u1094|\u1095)",
553 | "to": "\u1037"
554 | },
555 | {
556 | "from": "([\u1000-\u1021])\u1037\u1032",
557 | "to": "$1\u1032\u1037"
558 | },
559 | {
560 | "from": "\u1096",
561 | "to": "\u1039\u1010\u103d"
562 | },
563 | {
564 | "from": "\u1097",
565 | "to": "\u100b\u1039\u100b"
566 | },
567 | {
568 | "from": "\u103c([\u1000-\u1021])([\u1000-\u1021])?",
569 | "to": "$1\u103c$2"
570 | },
571 | {
572 | "from": "([\u1000-\u1021])\u103c\u103a",
573 | "to": "\u103c$1\u103a"
574 | },
575 | {
576 | "from": "\u1047(?=[\u102c-\u1030\u1032\u1036-\u1038\u103d\u1038])",
577 | "to": "\u101b"
578 | },
579 | {
580 | "from": "\u1031\u1047",
581 | "to": "\u1031\u101b"
582 | },
583 | {
584 | "from": "\u1040(\u102e|\u102f|\u102d\u102f|\u1030|\u1036|\u103d|\u103e)",
585 | "to": "\u101d$1"
586 | },
587 | {
588 | "from": "([^\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049])\u1040\u102b",
589 | "to": "$1\u101d\u102b"
590 | },
591 | {
592 | "from": "([\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049])\u1040\u102b(?!\u1038)",
593 | "to": "$1\u101d\u102b"
594 | },
595 | {
596 | "from": "^\u1040(?=\u102b)",
597 | "to": "\u101d"
598 | },
599 | {
600 | "from": "\u1040\u102d(?!\u0020?/)",
601 | "to": "\u101d\u102d"
602 | },
603 | {
604 | "from": "([^\u1040-\u1049])\u1040([^\u1040-\u1049\u0020]|[\u104a\u104b])",
605 | "to": "$1\u101d$2"
606 | },
607 | {
608 | "from": "([^\u1040-\u1049])\u1040(?=[\\f\\n\\r])",
609 | "to": "$1\u101d"
610 | },
611 | {
612 | "from": "([^\u1040-\u1049])\u1040$",
613 | "to": "$1\u101d"
614 | },
615 | {
616 | "from": "\u1031([\u1000-\u1021\u103f])(\u103e)?(\u103b)?",
617 | "to": "$1$2$3\u1031"
618 | },
619 | {
620 | "from": "([\u1000-\u1021])\u1031([\u103b\u103c\u103d\u103e]+)",
621 | "to": "$1$2\u1031"
622 | },
623 | {
624 | "from": "\u1032\u103d",
625 | "to": "\u103d\u1032"
626 | },
627 | {
628 | "from": "([\u102d\u102e])\u103b",
629 | "to": "\u103b$1"
630 | },
631 | {
632 | "from": "\u103d\u103b",
633 | "to": "\u103b\u103d"
634 | },
635 | {
636 | "from": "\u103a\u1037",
637 | "to": "\u1037\u103a"
638 | },
639 | {
640 | "from": "\u102f(\u102d|\u102e|\u1036|\u1037)\u102f",
641 | "to": "\u102f$1"
642 | },
643 | {
644 | "from": "(\u102f|\u1030)(\u102d|\u102e)",
645 | "to": "$2$1"
646 | },
647 | {
648 | "from": "(\u103e)(\u103b|\u103c)",
649 | "to": "$2$1"
650 | },
651 | {
652 | "from": "\u1025(?=[\u1037]?[\u103a\u102c])",
653 | "to": "\u1009"
654 | },
655 | {
656 | "from": "\u1025\u102e",
657 | "to": "\u1026"
658 | },
659 | {
660 | "from": "\u1005\u103b",
661 | "to": "\u1008"
662 | },
663 | {
664 | "from": "\u1036(\u102f|\u1030)",
665 | "to": "$1\u1036"
666 | },
667 | {
668 | "from": "\u1031\u1037\u103e",
669 | "to": "\u103e\u1031\u1037"
670 | },
671 | {
672 | "from": "\u1031\u103e\u102c",
673 | "to": "\u103e\u1031\u102c"
674 | },
675 | {
676 | "from": "\u105a",
677 | "to": "\u102b\u103a"
678 | },
679 | {
680 | "from": "\u1031\u103b\u103e",
681 | "to": "\u103b\u103e\u1031"
682 | },
683 | {
684 | "from": "(\u102d|\u102e)(\u103d|\u103e)",
685 | "to": "$2$1"
686 | },
687 | {
688 | "from": "\u102c\u1039([\u1000-\u1021])",
689 | "to": "\u1039$1\u102c"
690 | },
691 | {
692 | "from": "\u1039\u103c\u103a\u1039([\u1000-\u1021])",
693 | "to": "\u103a\u1039$1\u103c"
694 | },
695 | {
696 | "from": "\u103c\u1039([\u1000-\u1021])",
697 | "to": "\u1039$1\u103c"
698 | },
699 | {
700 | "from": "\u1036\u1039([\u1000-\u1021])",
701 | "to": "\u1039$1\u1036"
702 | },
703 | {
704 | "from": "\u104e",
705 | "to": "\u104e\u1004\u103a\u1038"
706 | },
707 | {
708 | "from": "\u1040(\u102b|\u102c|\u1036)",
709 | "to": "\u101d$1"
710 | },
711 | {
712 | "from": "\u1025\u1039",
713 | "to": "\u1009\u1039"
714 | },
715 | {
716 | "from": "([\u1000-\u1021])\u103c\u1031\u103d",
717 | "to": "$1\u103c\u103d\u1031"
718 | },
719 | {
720 | "from": "([\u1000-\u1021])\u103b\u1031\u103d(\u103e)?",
721 | "to": "$1\u103b\u103d$2\u1031"
722 | },
723 | {
724 | "from": "([\u1000-\u1021])\u103d\u1031\u103b",
725 | "to": "$1\u103b\u103d\u1031"
726 | },
727 | {
728 | "from": "([\u1000-\u1021])\u1031(\u1039[\u1000-\u1021]\u103d?)",
729 | "to": "$1$2\u1031"
730 | },
731 | {
732 | "from": "\u1038\u103a",
733 | "to": "\u103a\u1038"
734 | },
735 | {
736 | "from": "\u102d\u103a|\u103a\u102d",
737 | "to": "\u102d"
738 | },
739 | {
740 | "from": "\u102d\u102f\u103a",
741 | "to": "\u102d\u102f"
742 | },
743 | {
744 | "from": "\u0020\u1037",
745 | "to": "\u1037"
746 | },
747 | {
748 | "from": "\u1037\u1036",
749 | "to": "\u1036\u1037"
750 | },
751 | {
752 | "from": "[\u102d]+",
753 | "to": "\u102d"
754 | },
755 | {
756 | "from": "[\u103a]+",
757 | "to": "\u103a"
758 | },
759 | {
760 | "from": "[\u103d]+",
761 | "to": "\u103d"
762 | },
763 | {
764 | "from": "[\u1037]+",
765 | "to": "\u1037"
766 | },
767 | {
768 | "from": "[\u102e]+",
769 | "to": "\u102e"
770 | },
771 | {
772 | "from": "\u102d\u102e|\u102e\u102d",
773 | "to": "\u102e"
774 | },
775 | {
776 | "from": "\u102f\u102d",
777 | "to": "\u102d\u102f"
778 | },
779 | {
780 | "from": "\u1037\u1037",
781 | "to": "\u1037"
782 | },
783 | {
784 | "from": "\u1032\u1032",
785 | "to": "\u1032"
786 | },
787 | {
788 | "from": "\u1044\u1004\u103a\u1038",
789 | "to": "\u104E\u1004\u103a\u1038"
790 | },
791 | {
792 | "from": "([\u102d\u102e])\u1039([\u1000-\u1021])",
793 | "to": "\u1039$2$1"
794 | },
795 | {
796 | "from": "(\u103c\u1031)\u1039([\u1000-\u1021])",
797 | "to": "\u1039$2$1"
798 | },
799 | {
800 | "from": "\u1036\u103d",
801 | "to": "\u103d\u1036"
802 | },
803 | {
804 | "from": "\u1047((?=[\u1000-\u1021]\u103a)|(?=[\u102c-\u1030\u1032\u1036-\u1038\u103d\u103e]))",
805 | "to": "\u101b"
806 | }
807 | ];
808 | return replace_with_rule(rule,output);
809 | }
810 |
811 | function replace_with_rule(rule,output) {
812 |
813 | var max_loop = rule.length;
814 | for(i=0; i < max_loop; i++) {
815 |
816 | var data = rule[i];
817 | var from = data["from"];
818 | var to = data["to"];
819 |
820 | var from_regex = new RegExp(from,"g");
821 | output = output.replace(from_regex,to);
822 | }
823 |
824 | return output;
825 |
826 | }
827 |
--------------------------------------------------------------------------------
/styles/controls.css:
--------------------------------------------------------------------------------
1 |
2 | .controls {
3 | display: flex;
4 | flex-direction: row;
5 | justify-content: space-between;
6 | align-items: flex-start;
7 |
8 | margin-bottom: 16px;
9 | }
10 |
11 | .controls .btn {
12 | white-space: nowrap;
13 | overflow: hidden;
14 | text-overflow: ellipsis;
15 | }
16 |
17 | .controls div {
18 | display: flex;
19 | flex-direction: column;
20 | align-items: stretch;
21 | justify-content: flex-start;
22 |
23 | flex: 1;
24 | margin-left: 8px;
25 | }
26 |
27 | .controls div span {
28 | margin-top: 8px;
29 | font-size: 12px;
30 | }
31 |
32 | .controls .target-choosen:hover {
33 | flex: 3;
34 | }
--------------------------------------------------------------------------------
/styles/dropper.css:
--------------------------------------------------------------------------------
1 | .dropper {
2 | cursor: pointer;
3 |
4 | user-select: none;
5 |
6 | height: 250px;
7 |
8 | border: 1px dashed #4F4F4F;
9 | box-sizing: border-box;
10 | border-radius: 4px;
11 |
12 | display: flex;
13 | flex-direction: column;
14 | align-items: center;
15 | justify-content: center;
16 |
17 | margin-bottom: 16px;
18 | }
19 |
20 | .dropper * {
21 | pointer-events: none;
22 | }
23 |
24 | .dropper-dragover {
25 | border-color: yellowgreen;
26 | }
27 |
28 | .dropper-error {
29 | border-color: tomato;
30 | }
31 |
32 | .dropper img {
33 | width: 64px;
34 | height: 64px;
35 |
36 | margin-bottom: 8px;
37 | }
38 |
39 | .dropper span {
40 | margin-bottom: 8px;
41 |
42 | font-style: normal;
43 | font-weight: normal;
44 | font-size: 12px;
45 | line-height: 15px;
46 |
47 | color: #828282;
48 | }
49 |
50 | .dropper .text-hint:last-child {
51 | margin-top: 32px;
52 | }
53 |
54 | .dropper span.text-choose {
55 | font-size: 16px;
56 | font-weight: 500;
57 | color: #4F4F4F;
58 |
59 | white-space: nowrap;
60 | overflow: hidden;
61 | text-overflow: ellipsis;
62 | max-width: 500px;
63 | }
--------------------------------------------------------------------------------
/styles/sponsor.css:
--------------------------------------------------------------------------------
1 | .sponsor {
2 | position: absolute;
3 | bottom: 12px;
4 |
5 | display: flex;
6 | flex-direction: column;
7 | justify-content: center;
8 | align-items: center;
9 |
10 | align-self: center;
11 | }
12 |
13 | .sponsor img {
14 | cursor: pointer;
15 | width: 100px;
16 | }
17 |
18 | .sponsor span {
19 | font-size: 10px;
20 | }
--------------------------------------------------------------------------------
/styles/wrapper.css:
--------------------------------------------------------------------------------
1 | body {
2 | display: flex;
3 | flex-direction: row;
4 |
5 | justify-content: center;
6 | }
7 |
8 | .wrapper {
9 | max-width: 600px;
10 | width: 600px;
11 |
12 | display: flex;
13 | flex-direction: column;
14 | padding: 20px 20px 16px 20px;
15 |
16 | align-items: stretch;
17 | justify-content: flex-start;
18 | }
19 |
20 | .hidden {
21 | display: none;
22 | }
--------------------------------------------------------------------------------
/ui.js:
--------------------------------------------------------------------------------
1 | class UI {
2 | constructor(api) {
3 | this.api = api
4 |
5 | this.textChooseFolder = document.querySelector('#text-choose-folder')
6 | this.textSourceFolderPath = document.querySelector('#text-source-folder-path')
7 | this.textError = document.querySelector('#text-error')
8 |
9 | this.btnConvert = document.querySelector('#btn-convert')
10 | this.btnChooseTargetFolder = document.querySelector('#btn-choose-target-folder')
11 |
12 | this.sponsor = document.querySelector('.sponsor img')
13 |
14 | this.dropZone = document.querySelector('#drop-zone')
15 | this.textErrorHidden = true
16 |
17 | this.init()
18 |
19 | this.errors = [
20 | 'Source path can\'t be empty.',
21 | 'Target path can\'t be empty.',
22 | 'Source and target path can\'t be the same.'
23 | ]
24 | }
25 |
26 | showSuccessStatus() {
27 | this.sourceFolderPath = ''
28 | this.targetFolderPath = ''
29 | this.error = null
30 | this.conversionInProgress = false
31 |
32 | this.btnConvert.classList.remove('btn-default')
33 | this.btnConvert.classList.remove('disabled')
34 | this.btnConvert.classList.add('btn-success')
35 | this.btnConvert.innerText = 'Success!'
36 |
37 | setTimeout(() => {
38 | this.btnConvert.classList.add('btn-default')
39 | this.btnConvert.classList.remove('btn-success')
40 | this.btnConvert.classList.add('disabled')
41 |
42 | this.btnConvert.textContent = this.btnConvert.getAttribute('data-default')
43 | }, 1500)
44 | }
45 |
46 | set conversionInProgress(value) {
47 | this._conversionInProgress = !!value
48 |
49 | if (!!value) {
50 | this.btnConvert.textContent = 'Converting ...'
51 | this.btnConvert.disabled = true
52 | this.btnConvert.classList.add('disabled')
53 | }
54 | }
55 |
56 | get conversionInProgress() {
57 | return this._conversionInProgress
58 | }
59 |
60 | set error(errorType) {
61 | if (errorType === null) {
62 | this.textError.textContent = ''
63 | this.textErrorHidden = true
64 | this.textError.classList.add('hidden')
65 |
66 | return
67 | }
68 | let errorText = this.errors[errorType]
69 | this.textError.classList.remove('hidden')
70 | this.textError.textContent = errorText || 'Something went wrong!'
71 | this.textErrorHidden = false
72 | }
73 |
74 | set btnConvertDisabled(value) {
75 | this.btnConvert.disabled = value
76 | if (!value) {
77 | this.btnConvert.classList.remove('disabled')
78 | } else {
79 | this.btnConvert.classList.add('disabled')
80 | }
81 | }
82 |
83 | refreshErrorTextState() {
84 | let sourcePath = this.api.getPath()
85 | let targetPath = this.api.getPath(false)
86 |
87 | if (!!sourcePath && !!targetPath && sourcePath === targetPath) {
88 | this.error = UI.Errors.SOURCE_EQ_TARGET
89 |
90 | return
91 | }
92 |
93 | this.textError.classList.add('hidden')
94 | this.textError.textContent = ''
95 | this.textErrorHidden = true
96 | }
97 |
98 | refreshBtnConvertState() {
99 | let sourcePath = this.api.getPath()
100 | let targetPath = this.api.getPath(false)
101 | let isSourcePathEmpty = !!!sourcePath
102 | let isTargetPathEmpty = !!!targetPath
103 | let isSourceEqTargetPath = !isSourcePathEmpty && !isTargetPathEmpty && sourcePath === targetPath
104 |
105 | this.btnConvertDisabled = isSourcePathEmpty || isTargetPathEmpty || isSourceEqTargetPath
106 | }
107 |
108 | set sourceFolderPath(value) {
109 | this.api.setPath(value)
110 | this.refreshBtnConvertState()
111 | this.refreshErrorTextState()
112 |
113 | if (!!!value) {
114 | this.textChooseFolder.classList.remove('hidden')
115 | this.textSourceFolderPath.classList.add('hidden')
116 |
117 | this.textSourceFolderPath.textContent = this.textSourceFolderPath.getAttribute('data-default')
118 | return
119 | }
120 |
121 | this.textChooseFolder.classList.add('hidden')
122 | this.textSourceFolderPath.classList.remove('hidden')
123 | this.textSourceFolderPath.textContent = value
124 | }
125 |
126 | set targetFolderPath(value) {
127 | this.api.setPath(value, false)
128 | this.refreshBtnConvertState()
129 | this.refreshErrorTextState()
130 |
131 | this.btnChooseTargetFolder.textContent = !!value ? this.api.getBaseName(value) : this.btnChooseTargetFolder.getAttribute('data-default')
132 | }
133 |
134 | showDropZoneError() {
135 | this.dropZone.classList.remove('dropper-dragover')
136 | this.dropZone.classList.add('dropper-error')
137 |
138 | setTimeout(() => {
139 | this.dropZone.classList.remove('dropper-error')
140 | }, 2000);
141 | }
142 |
143 | toggleDropZoneDragEnter(remove = false) {
144 | if (remove) {
145 | this.dropZone.classList.remove('dropper-dragover')
146 | this.dropZone.classList.remove('dropper-error')
147 | } else {
148 | this.dropZone.classList.remove('dropper-error')
149 | this.dropZone.classList.add('dropper-dragover')
150 | }
151 | }
152 | }
153 |
154 | UI.prototype.init = function() {
155 | this.dropEnabled = true
156 |
157 | this.dropZone.addEventListener('dragover', e => {
158 | e.preventDefault()
159 | e.stopPropagation()
160 | })
161 | this.dropZone.addEventListener('dragenter', _ => this.toggleDropZoneDragEnter())
162 | this.dropZone.addEventListener('dragleave', _ => this.toggleDropZoneDragEnter(true))
163 | this.dropZone.addEventListener('drop', this.dropZoneDropEventHandler.bind(this))
164 | this.dropZone.addEventListener('click', this.openSourceFolder.bind(this))
165 |
166 | this.btnChooseTargetFolder.addEventListener('click', this.openTargetFolder.bind(this))
167 | this.btnChooseTargetFolder.addEventListener('mouseover', this.showFullTargetPath.bind(this))
168 | this.btnChooseTargetFolder.addEventListener('mouseleave', this.showBasenameTargetPath.bind(this))
169 |
170 | this.btnConvert.addEventListener('click', this.convert.bind(this))
171 |
172 | this.sponsor.addEventListener('click', _ => this.api.openSponsorLink())
173 | }
174 |
175 | UI.prototype.convert = function() {
176 | this.api.convert()
177 | }
178 |
179 | UI.prototype.openSourceFolder = async function() {
180 | if (this.conversionInProgress) return
181 |
182 | this.sourceFolderPath = await this.api.openFolder()
183 | }
184 |
185 | UI.prototype.openTargetFolder = async function() {
186 | if (this.conversionInProgress) return
187 |
188 | this.targetFolderPath = await this.api.openFolder()
189 | }
190 |
191 | UI.prototype.showFullTargetPath = function() {
192 | let targetFolderPath = this.api.getPath(false)
193 |
194 | if (!!targetFolderPath)
195 | this.btnChooseTargetFolder.textContent = targetFolderPath
196 |
197 | if (!this.textErrorHidden) this.textError.classList.add('hidden')
198 | }
199 |
200 | UI.prototype.showBasenameTargetPath = function() {
201 | let targetFolderPath = this.api.getPath(false)
202 |
203 | if (!!targetFolderPath)
204 | this.btnChooseTargetFolder.textContent = this.api.getBaseName(targetFolderPath)
205 |
206 | if (this.textErrorHidden) this.textError.classList.add('hidden')
207 | else this.textError.classList.remove('hidden')
208 | }
209 |
210 | UI.prototype.dropZoneDropEventHandler = function(event) {
211 | event.preventDefault()
212 | event.stopPropagation()
213 | if (this.conversionInProgress) return
214 |
215 | if (event.dataTransfer.files.length <= 0) return
216 |
217 | let file = event.dataTransfer.files[0]
218 | let transferItem = event.dataTransfer.items[0].webkitGetAsEntry()
219 |
220 | if (!transferItem.isDirectory) {
221 | this.sourceFolderPath = ''
222 | return this.showDropZoneError()
223 | }
224 |
225 | this.toggleDropZoneDragEnter(true)
226 | this.sourceFolderPath = file.path
227 | }
228 |
229 | UI.Errors = {
230 | SOURCE_EMPTY: 0,
231 | TARGET_EMPTY: 1,
232 | SOURCE_EQ_TARGET: 2
233 | }
--------------------------------------------------------------------------------