├── .gitignore ├── LICENSE ├── README.md ├── index.js ├── log.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 David Gwyer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Create Single or Multiple WordPress Blocks 2 | 3 | Extends the WordPress core `@wordpress/create-block` package that creates a new block plugin. It's basically a thin wrapper around the core CLI which allows us to expose some new features right now until they're officially available, such as: 4 | 5 | - Single named blocks. 6 | - Multiple named blocks. 7 | - Full Tailwind CSS integration. 8 | 9 | The `create-wp-blocks` script is meant to be a useful tool to create blocks with additional functionality currently available in `@wordpress/create-block`. Hopefully, over time, most (or all) of these extra features will be available in the core package and this one can be deprecated. 10 | ## New functionality 11 | Specify a block name via the `--block` (or `-b` alias). By default in `@wordpress/create-block` there's no way to name a block, it's always set to the name of the plugin slug. e.g. `npx create-wp-block test -b block1`. 12 | 13 | Note, if the block name is specified but a plugin name (slug) is, then this will trigger interactive mode which is the default behaviour of `@wordpress/create-block` when no slug is specified. 14 | 15 | Optional Tailwind CSS integration is now available via the `--tw` flag. 16 | 17 | # Usage 18 | 19 | To create a basic plugin containing a single block: 20 | 21 | `npx create-wp-block todo-list` 22 | 23 | **Note: This produces exactly the same plugin as `npx @wordpress/create-block todo-list`** 24 | 25 | Things become interesting when we use the new features: 26 | 27 | `npx create-wp-block todo-list -b block1` 28 | 29 | This will create a plugin with the slug `todo-list`, which contains a single block with the slug `block1`. 30 | 31 | Create multiple blocks with: 32 | 33 | `npx create-wp-block todo-list -b block1 block2 block3` 34 | 35 | This will create a plugin with the slug `todo-list`, which contains three blocks with slugs: `block1`, `block2`, `block3`. Each block is located inside its own sub-folder. e.g. `/src/block1/`. 36 | 37 | Enable full Tailwind integration with the `--tw` option: 38 | 39 | `npx create-wp-block todo-list -b block1 block2 block3 --tw` 40 | 41 | Each block compiles its own Tailwind styles, which is inline with how blocks are compiled with `@wordpress/create-block`. Blocks continue to maintain their own styles independently. 42 | 43 | For quick testing you can disable wp-scripts with the `--ns` option: 44 | 45 | `npx create-wp-block todo-list -b block1 block2 block3 --ns` 46 | 47 | This doesn't install npm modules and creates the block plugin much quicker. However, you'll need to manually run `npm install` to do an initial build of the plugin block JavaScript code. 48 | 49 | # Trouble Shooting 50 | 51 | If no named blocks are specified then the plugin slug will be used as a fallback. 52 | 53 | There will probably be regular updates to this CLI as it's refined and new features are added. Sometimes `npx` will cache the version of the script which can be annoying. To make sure you're always running the latest release version you can add `@latest`. e.g. `npx create-wp-block@latest myplugin -b one`. 54 | 55 | For now (at least) there's no interactive mode if a plugin slug is not specified. This is required or the script will exit with a warning message. You're required to enter a plugin slug. 56 | # Request a Feature? 57 | 58 | Are you looking for a feature to be included in this package? Simply open a [new issue](https://github.com/dgwyer/create-wp-block/issues) and let's talk! All suggestions welcome. 59 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import yargs from "yargs"; 3 | import { execa, execaCommand, execaCommandSync } from 'execa'; 4 | import { join } from 'path'; 5 | import replace from 'replace-in-file'; 6 | import { log } from './log.js'; 7 | import { readFile } from 'fs/promises'; 8 | 9 | const argv = yargs(process.argv.slice(2)) 10 | .alias('name', 'n') 11 | .alias('namespace', 'nsp') 12 | //.alias('no-wp-scripts', 's') 13 | .alias('block', 'b') 14 | .alias('dir', 'd') 15 | .array('name') 16 | .array('block') 17 | .boolean('ns') 18 | //.default('ns', false) 19 | //.number('dropbox_base_index') 20 | .argv; 21 | 22 | let pluginSlug; 23 | 24 | if (argv._) { 25 | if (argv._.length > 0) { 26 | pluginSlug = argv._[0]; 27 | } 28 | if (argv._.length === 0) { 29 | console.log('Exiting! No plugin slug found. Please retry and enter a plugin slug.'); 30 | process.exit(); 31 | } 32 | } 33 | 34 | const json = JSON.parse( 35 | await readFile( 36 | new URL('./package.json', import.meta.url) 37 | ) 38 | ); 39 | log('\nVersion: ' + json.version); 40 | log('\nBy David Gwyer'); 41 | log('\nLet\'s create some blocks!'); 42 | 43 | log('\n---'); 44 | 45 | console.log(`\nCreating a new WordPress plugin with slug: ${pluginSlug}`); 46 | 47 | if (argv.b && typeof (argv.b) === 'object') { 48 | console.log("\nCreating the following named blocks:", argv.b.join(', ')); 49 | } 50 | //console.log("\nPassed in args:\n", argv); 51 | 52 | const cb = (error, stdout, stderr) => { 53 | if (error) { 54 | console.error(`exec error: ${error}`); 55 | return; 56 | } 57 | console.log(stdout); 58 | console.error(stderr); 59 | }; 60 | 61 | const opt = []; 62 | if (argv.ns) { 63 | opt.push('--no-wp-scripts'); 64 | } 65 | if (argv.tw) { 66 | opt.push('-t tw-block'); 67 | } 68 | if (argv.nsp) { 69 | opt.push(`--namespace ${argv.nsp}`); 70 | } 71 | 72 | //opt.push(`--title ${pluginSlug}`); 73 | 74 | log('\nBlock options: ' + opt.join(' ')); 75 | 76 | // log(execaCommandSync(`npx @wordpress/create-block ${pluginSlug}`, { stdin: 'inherit' }).stdout); 77 | log(`\nRunning package: npx @wordpress/create-block ${pluginSlug} ${opt.join(' ')}`); 78 | log('\n---'); 79 | 80 | const subprocess = execaCommand(`npx @wordpress/create-block ${pluginSlug} ${opt.join(' ')}`); 81 | subprocess.stdout.pipe(process.stdout); 82 | const { stdout } = await subprocess; 83 | console.log('\n', stdout); 84 | 85 | // log(execaCommandSync(`npx @wordpress/create-block ${pluginSlug} ${opt.join(' ')}`, { shell: true, stdin: 'inherit' }).stdout); 86 | 87 | // await execa( 88 | // "npx", 89 | // // ["@wordpress/create-block", pluginSlug], 90 | // ["@wordpress/create-block", pluginSlug, "--no-wp-scripts"], 91 | // { 92 | // stdin: 'inherit' 93 | // } 94 | // ).stdout.pipe(process.stdout); 95 | //console.log(createBlockScript.stdout); 96 | 97 | console.log("\nPost processing..."); 98 | 99 | if (argv.b && typeof (argv.b) === 'object') { 100 | 101 | if (argv.b.length === 1) { 102 | console.log("Single block name:", argv.b[0]); 103 | renameBlockFiles(argv.b[0], `${pluginSlug}/src`, pluginSlug); 104 | } 105 | 106 | if (argv.b.length > 1) { 107 | console.log("\nInstalling blocks:", ...argv.b); 108 | 109 | argv.b.forEach((item, index) => { 110 | 111 | // Handle first block slightly differently (move into folder and rename). 112 | if (index === 0) { 113 | // Move block files into a new folder using the block name for the folder. 114 | execaCommandSync(`mkdir ${pluginSlug}/src/${argv.b[index]}`); 115 | // log(execaCommandSync(`mkdir ${pluginSlug}/src/${argv.b[index]} -v`).stdout); 116 | execaCommandSync(`mv *.* ${argv.b[index]}`, { cwd: `${pluginSlug}/src` }); 117 | 118 | // Rename block files. 119 | renameBlockFiles(argv.b[index], `${pluginSlug}/src/${argv.b[index]}`, pluginSlug); 120 | 121 | // Update PHP block registration code to include the block path. 122 | renameFirstPhpBlock(argv.b[index], pluginSlug); 123 | } else { 124 | // For all other blocks just copy first block folder and rename. 125 | 126 | // Copy the first block folder to a new folder using the current block name for the folder. 127 | execaCommandSync(`cp -R ${pluginSlug}/src/${argv.b[0]} ${pluginSlug}/src/${argv.b[index]}`); 128 | 129 | // Rename block files. 130 | renameBlockFiles(argv.b[index], `${pluginSlug}/src/${argv.b[index]}`, argv.b[0]); 131 | 132 | // Update PHP block registration code to include the block path. 133 | renamePhpBlock(argv.b[index], pluginSlug); 134 | } 135 | }); 136 | } 137 | 138 | if (argv.b.length === 0) { 139 | // Use plugin slug if no block name specified. 140 | //console.log("NO BLOCK NAME. USING PLUGIN SLUG", pluginSlug); 141 | } 142 | } else { 143 | //console.log("NO BLOCK NAMES - JUST PROCEED AS NORMAL"); 144 | //pluginSlug = ''; // If no plugin slug then trigger interactive mode for npx @wordpress/create-block 145 | } 146 | 147 | // Rebuild plugin files only if '--no-wp-scripts' isn't set. 148 | if (!argv.ns) { 149 | log('\nRebuilding plugin files for production.'); 150 | log(execaCommandSync(`npm run build`, { cwd: `${pluginSlug}`, stdin: 'inherit' }).stdout); 151 | } 152 | 153 | log('\nAll finished. Happy block development!'); 154 | log('\nFollow me on Twitter: dgwyer'); 155 | 156 | // ============ 157 | 158 | function renameFirstPhpBlock(blockName, path) { 159 | 160 | let options = { 161 | files: `${path}/${pluginSlug}.php`, 162 | from: /build/gm, 163 | to: `build/${blockName.toLowerCase()}`, 164 | }; 165 | 166 | // Synchronous replacement. 167 | try { 168 | const results = replace.sync(options); 169 | //console.log('Replacement results:', results); 170 | } 171 | catch (error) { 172 | //console.error('Error occurred:', error); 173 | } 174 | } 175 | 176 | function renamePhpBlock(blockName, path) { 177 | 178 | let options = { 179 | files: `${path}/${pluginSlug}.php`, 180 | from: /^}/gm, 181 | to: ` register_block_type( __DIR__ . '/build/${blockName}' );\n}`, 182 | }; 183 | 184 | // Synchronous replacement. 185 | try { 186 | const results = replace.sync(options); 187 | //console.log('Replacement results:', results); 188 | } 189 | catch (error) { 190 | //console.error('Error occurred:', error); 191 | } 192 | } 193 | 194 | function renameBlockFiles(blockName, path, replaceStr) { 195 | 196 | // 1. Replace block name. 197 | let options = { 198 | files: `${path}/block.json`, 199 | from: new RegExp(`"name": "(create-block\/{1})(.*)?"`, 'gm'), 200 | to: `"name": "$1${blockName.toLowerCase()}"`, 201 | }; 202 | replaceSync(options); 203 | 204 | // 2. Replace block title. 205 | //console.log(`DEBUGGING: ${path}/block.json >> ${capitalize(replaceStr)} >> ${blockName}`); 206 | options = { 207 | files: `${path}/block.json`, 208 | from: new RegExp(`"title": "(.*?)"`, 'gm'), 209 | to: `"title": "${capitalize(blockName)}"`, 210 | }; 211 | replaceSync(options); 212 | 213 | // 3. Replace style.scss selector. 214 | options = { 215 | files: `${path}/style.scss`, 216 | from: new RegExp(`.wp-block-create-block-${replaceStr}`), 217 | to: `.wp-block-create-block-${blockName.toLowerCase()}`, 218 | }; 219 | replaceSync(options); 220 | 221 | // 4. Replace editor.scss selector. 222 | options = { 223 | files: `${path}/editor.scss`, 224 | from: new RegExp(`.wp-block-create-block-${replaceStr}`), 225 | to: `.wp-block-create-block-${blockName.toLowerCase()}`, 226 | }; 227 | replaceSync(options); 228 | 229 | // 5. Replace block name in index.js. 230 | options = { 231 | files: `${path}/index.js`, 232 | from: new RegExp(`create-block/${replaceStr}`), 233 | to: `create-block/${blockName.toLowerCase()}`, 234 | }; 235 | replaceSync(options); 236 | 237 | // 6. Replace block name in tailwind.config.js, only if we're integrating with Tailwind CSS. 238 | if (argv.tw) { 239 | options = { 240 | files: `${path}/tailwind.config.js`, 241 | from: /content: \[(.*?)\]/gm, 242 | to: `content: ['./src/${blockName.toLowerCase()}/*.js']`, 243 | }; 244 | replaceSync(options); 245 | } 246 | 247 | //const { stdout, stdin, stderr } = await execa("ls"); 248 | //console.log(stdout); 249 | } 250 | 251 | function capitalize(str) { 252 | const lower = str.toLowerCase(); 253 | return str.charAt(0).toUpperCase() + lower.slice(1); 254 | } 255 | 256 | function replaceSync(options, log = false) { 257 | // Synchronous replacement. 258 | try { 259 | const results = replace.sync(options); 260 | if(log) { console.log('Replacement results:', results); } 261 | } 262 | catch (error) { 263 | if (log) { console.error('Error occurred:', error); } 264 | } 265 | } -------------------------------------------------------------------------------- /log.js: -------------------------------------------------------------------------------- 1 | const log = (input) => { 2 | console.log(input); 3 | }; 4 | 5 | export { 6 | log 7 | }; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-wp-block", 3 | "version": "2.6.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@nodelib/fs.scandir": { 8 | "version": "2.1.5", 9 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 10 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 11 | "requires": { 12 | "@nodelib/fs.stat": "2.0.5", 13 | "run-parallel": "^1.1.9" 14 | } 15 | }, 16 | "@nodelib/fs.stat": { 17 | "version": "2.0.5", 18 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 19 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 20 | }, 21 | "@nodelib/fs.walk": { 22 | "version": "1.2.8", 23 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 24 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 25 | "requires": { 26 | "@nodelib/fs.scandir": "2.1.5", 27 | "fastq": "^1.6.0" 28 | } 29 | }, 30 | "@wordpress/create-block": { 31 | "version": "3.8.0", 32 | "resolved": "https://registry.npmjs.org/@wordpress/create-block/-/create-block-3.8.0.tgz", 33 | "integrity": "sha512-KGiNn/LG87Kaq7owZiAA2Iu8z3pcamYMuQSH2thEKMycTJT55EIqoxkiHHYn4sGZbn3YXLOO6txKcOJT6fTwcA==", 34 | "requires": { 35 | "@wordpress/lazy-import": "^1.4.2", 36 | "chalk": "^4.0.0", 37 | "change-case": "^4.1.2", 38 | "check-node-version": "^4.1.0", 39 | "commander": "^9.2.0", 40 | "execa": "^4.0.2", 41 | "fast-glob": "^3.2.7", 42 | "inquirer": "^7.1.0", 43 | "lodash": "^4.17.21", 44 | "make-dir": "^3.0.0", 45 | "mustache": "^4.0.0", 46 | "npm-package-arg": "^8.1.5", 47 | "rimraf": "^3.0.2", 48 | "write-pkg": "^4.0.0" 49 | }, 50 | "dependencies": { 51 | "execa": { 52 | "version": "4.1.0", 53 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", 54 | "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", 55 | "requires": { 56 | "cross-spawn": "^7.0.0", 57 | "get-stream": "^5.0.0", 58 | "human-signals": "^1.1.1", 59 | "is-stream": "^2.0.0", 60 | "merge-stream": "^2.0.0", 61 | "npm-run-path": "^4.0.0", 62 | "onetime": "^5.1.0", 63 | "signal-exit": "^3.0.2", 64 | "strip-final-newline": "^2.0.0" 65 | } 66 | }, 67 | "get-stream": { 68 | "version": "5.2.0", 69 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 70 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 71 | "requires": { 72 | "pump": "^3.0.0" 73 | } 74 | }, 75 | "human-signals": { 76 | "version": "1.1.1", 77 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", 78 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" 79 | }, 80 | "is-stream": { 81 | "version": "2.0.1", 82 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 83 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 84 | }, 85 | "mimic-fn": { 86 | "version": "2.1.0", 87 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 88 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 89 | }, 90 | "npm-run-path": { 91 | "version": "4.0.1", 92 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 93 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 94 | "requires": { 95 | "path-key": "^3.0.0" 96 | } 97 | }, 98 | "onetime": { 99 | "version": "5.1.2", 100 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 101 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 102 | "requires": { 103 | "mimic-fn": "^2.1.0" 104 | } 105 | }, 106 | "strip-final-newline": { 107 | "version": "2.0.0", 108 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 109 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 110 | } 111 | } 112 | }, 113 | "@wordpress/lazy-import": { 114 | "version": "1.4.2", 115 | "resolved": "https://registry.npmjs.org/@wordpress/lazy-import/-/lazy-import-1.4.2.tgz", 116 | "integrity": "sha512-Oyj7vA+4L5s82JTlPkzZ9Ij+E6vcjVxUC119ob690E3OjBYUkm5vEL5NfiRBewZbE0XV+UIUC1Jh32BZpk3RWQ==", 117 | "requires": { 118 | "execa": "^4.0.2", 119 | "npm-package-arg": "^8.1.5", 120 | "semver": "^7.3.5" 121 | }, 122 | "dependencies": { 123 | "execa": { 124 | "version": "4.1.0", 125 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", 126 | "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", 127 | "requires": { 128 | "cross-spawn": "^7.0.0", 129 | "get-stream": "^5.0.0", 130 | "human-signals": "^1.1.1", 131 | "is-stream": "^2.0.0", 132 | "merge-stream": "^2.0.0", 133 | "npm-run-path": "^4.0.0", 134 | "onetime": "^5.1.0", 135 | "signal-exit": "^3.0.2", 136 | "strip-final-newline": "^2.0.0" 137 | } 138 | }, 139 | "get-stream": { 140 | "version": "5.2.0", 141 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 142 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 143 | "requires": { 144 | "pump": "^3.0.0" 145 | } 146 | }, 147 | "human-signals": { 148 | "version": "1.1.1", 149 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", 150 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" 151 | }, 152 | "is-stream": { 153 | "version": "2.0.1", 154 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 155 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 156 | }, 157 | "mimic-fn": { 158 | "version": "2.1.0", 159 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 160 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 161 | }, 162 | "npm-run-path": { 163 | "version": "4.0.1", 164 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 165 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 166 | "requires": { 167 | "path-key": "^3.0.0" 168 | } 169 | }, 170 | "onetime": { 171 | "version": "5.1.2", 172 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 173 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 174 | "requires": { 175 | "mimic-fn": "^2.1.0" 176 | } 177 | }, 178 | "strip-final-newline": { 179 | "version": "2.0.0", 180 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 181 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 182 | } 183 | } 184 | }, 185 | "ansi-escapes": { 186 | "version": "4.3.2", 187 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", 188 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", 189 | "requires": { 190 | "type-fest": "^0.21.3" 191 | } 192 | }, 193 | "ansi-regex": { 194 | "version": "5.0.1", 195 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 196 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 197 | }, 198 | "ansi-styles": { 199 | "version": "4.3.0", 200 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 201 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 202 | "requires": { 203 | "color-convert": "^2.0.1" 204 | } 205 | }, 206 | "balanced-match": { 207 | "version": "1.0.2", 208 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 209 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 210 | }, 211 | "brace-expansion": { 212 | "version": "1.1.11", 213 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 214 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 215 | "requires": { 216 | "balanced-match": "^1.0.0", 217 | "concat-map": "0.0.1" 218 | } 219 | }, 220 | "braces": { 221 | "version": "3.0.2", 222 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 223 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 224 | "requires": { 225 | "fill-range": "^7.0.1" 226 | } 227 | }, 228 | "builtins": { 229 | "version": "1.0.3", 230 | "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", 231 | "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" 232 | }, 233 | "camel-case": { 234 | "version": "4.1.2", 235 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", 236 | "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", 237 | "requires": { 238 | "pascal-case": "^3.1.2", 239 | "tslib": "^2.0.3" 240 | } 241 | }, 242 | "capital-case": { 243 | "version": "1.0.4", 244 | "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", 245 | "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", 246 | "requires": { 247 | "no-case": "^3.0.4", 248 | "tslib": "^2.0.3", 249 | "upper-case-first": "^2.0.2" 250 | } 251 | }, 252 | "chalk": { 253 | "version": "4.1.2", 254 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 255 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 256 | "requires": { 257 | "ansi-styles": "^4.1.0", 258 | "supports-color": "^7.1.0" 259 | } 260 | }, 261 | "change-case": { 262 | "version": "4.1.2", 263 | "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", 264 | "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", 265 | "requires": { 266 | "camel-case": "^4.1.2", 267 | "capital-case": "^1.0.4", 268 | "constant-case": "^3.0.4", 269 | "dot-case": "^3.0.4", 270 | "header-case": "^2.0.4", 271 | "no-case": "^3.0.4", 272 | "param-case": "^3.0.4", 273 | "pascal-case": "^3.1.2", 274 | "path-case": "^3.0.4", 275 | "sentence-case": "^3.0.4", 276 | "snake-case": "^3.0.4", 277 | "tslib": "^2.0.3" 278 | } 279 | }, 280 | "chardet": { 281 | "version": "0.7.0", 282 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 283 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" 284 | }, 285 | "check-node-version": { 286 | "version": "4.2.1", 287 | "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", 288 | "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", 289 | "requires": { 290 | "chalk": "^3.0.0", 291 | "map-values": "^1.0.1", 292 | "minimist": "^1.2.0", 293 | "object-filter": "^1.0.2", 294 | "run-parallel": "^1.1.4", 295 | "semver": "^6.3.0" 296 | }, 297 | "dependencies": { 298 | "chalk": { 299 | "version": "3.0.0", 300 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 301 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 302 | "requires": { 303 | "ansi-styles": "^4.1.0", 304 | "supports-color": "^7.1.0" 305 | } 306 | }, 307 | "semver": { 308 | "version": "6.3.0", 309 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 310 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 311 | } 312 | } 313 | }, 314 | "cli-cursor": { 315 | "version": "3.1.0", 316 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 317 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 318 | "requires": { 319 | "restore-cursor": "^3.1.0" 320 | } 321 | }, 322 | "cli-width": { 323 | "version": "3.0.0", 324 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", 325 | "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" 326 | }, 327 | "cliui": { 328 | "version": "7.0.4", 329 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", 330 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", 331 | "requires": { 332 | "string-width": "^4.2.0", 333 | "strip-ansi": "^6.0.0", 334 | "wrap-ansi": "^7.0.0" 335 | } 336 | }, 337 | "color-convert": { 338 | "version": "2.0.1", 339 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 340 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 341 | "requires": { 342 | "color-name": "~1.1.4" 343 | } 344 | }, 345 | "color-name": { 346 | "version": "1.1.4", 347 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 348 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 349 | }, 350 | "commander": { 351 | "version": "9.4.0", 352 | "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", 353 | "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==" 354 | }, 355 | "concat-map": { 356 | "version": "0.0.1", 357 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 358 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 359 | }, 360 | "constant-case": { 361 | "version": "3.0.4", 362 | "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", 363 | "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", 364 | "requires": { 365 | "no-case": "^3.0.4", 366 | "tslib": "^2.0.3", 367 | "upper-case": "^2.0.2" 368 | } 369 | }, 370 | "cross-spawn": { 371 | "version": "7.0.3", 372 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 373 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 374 | "requires": { 375 | "path-key": "^3.1.0", 376 | "shebang-command": "^2.0.0", 377 | "which": "^2.0.1" 378 | } 379 | }, 380 | "detect-indent": { 381 | "version": "5.0.0", 382 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", 383 | "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==" 384 | }, 385 | "dot-case": { 386 | "version": "3.0.4", 387 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", 388 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", 389 | "requires": { 390 | "no-case": "^3.0.4", 391 | "tslib": "^2.0.3" 392 | } 393 | }, 394 | "emoji-regex": { 395 | "version": "8.0.0", 396 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 397 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 398 | }, 399 | "end-of-stream": { 400 | "version": "1.4.4", 401 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 402 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 403 | "requires": { 404 | "once": "^1.4.0" 405 | } 406 | }, 407 | "escalade": { 408 | "version": "3.1.1", 409 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 410 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 411 | }, 412 | "escape-string-regexp": { 413 | "version": "1.0.5", 414 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 415 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 416 | }, 417 | "execa": { 418 | "version": "6.1.0", 419 | "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", 420 | "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", 421 | "requires": { 422 | "cross-spawn": "^7.0.3", 423 | "get-stream": "^6.0.1", 424 | "human-signals": "^3.0.1", 425 | "is-stream": "^3.0.0", 426 | "merge-stream": "^2.0.0", 427 | "npm-run-path": "^5.1.0", 428 | "onetime": "^6.0.0", 429 | "signal-exit": "^3.0.7", 430 | "strip-final-newline": "^3.0.0" 431 | } 432 | }, 433 | "external-editor": { 434 | "version": "3.1.0", 435 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 436 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 437 | "requires": { 438 | "chardet": "^0.7.0", 439 | "iconv-lite": "^0.4.24", 440 | "tmp": "^0.0.33" 441 | } 442 | }, 443 | "fast-glob": { 444 | "version": "3.2.11", 445 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 446 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 447 | "requires": { 448 | "@nodelib/fs.stat": "^2.0.2", 449 | "@nodelib/fs.walk": "^1.2.3", 450 | "glob-parent": "^5.1.2", 451 | "merge2": "^1.3.0", 452 | "micromatch": "^4.0.4" 453 | } 454 | }, 455 | "fastq": { 456 | "version": "1.13.0", 457 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 458 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 459 | "requires": { 460 | "reusify": "^1.0.4" 461 | } 462 | }, 463 | "figures": { 464 | "version": "3.2.0", 465 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 466 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 467 | "requires": { 468 | "escape-string-regexp": "^1.0.5" 469 | } 470 | }, 471 | "fill-range": { 472 | "version": "7.0.1", 473 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 474 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 475 | "requires": { 476 | "to-regex-range": "^5.0.1" 477 | } 478 | }, 479 | "fs.realpath": { 480 | "version": "1.0.0", 481 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 482 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 483 | }, 484 | "get-caller-file": { 485 | "version": "2.0.5", 486 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 487 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 488 | }, 489 | "get-stream": { 490 | "version": "6.0.1", 491 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 492 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" 493 | }, 494 | "glob": { 495 | "version": "7.2.3", 496 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 497 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 498 | "requires": { 499 | "fs.realpath": "^1.0.0", 500 | "inflight": "^1.0.4", 501 | "inherits": "2", 502 | "minimatch": "^3.1.1", 503 | "once": "^1.3.0", 504 | "path-is-absolute": "^1.0.0" 505 | } 506 | }, 507 | "glob-parent": { 508 | "version": "5.1.2", 509 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 510 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 511 | "requires": { 512 | "is-glob": "^4.0.1" 513 | } 514 | }, 515 | "graceful-fs": { 516 | "version": "4.2.10", 517 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 518 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 519 | }, 520 | "has-flag": { 521 | "version": "4.0.0", 522 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 523 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 524 | }, 525 | "header-case": { 526 | "version": "2.0.4", 527 | "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", 528 | "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", 529 | "requires": { 530 | "capital-case": "^1.0.4", 531 | "tslib": "^2.0.3" 532 | } 533 | }, 534 | "hosted-git-info": { 535 | "version": "4.1.0", 536 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", 537 | "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", 538 | "requires": { 539 | "lru-cache": "^6.0.0" 540 | } 541 | }, 542 | "human-signals": { 543 | "version": "3.0.1", 544 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", 545 | "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==" 546 | }, 547 | "iconv-lite": { 548 | "version": "0.4.24", 549 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 550 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 551 | "requires": { 552 | "safer-buffer": ">= 2.1.2 < 3" 553 | } 554 | }, 555 | "imurmurhash": { 556 | "version": "0.1.4", 557 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 558 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" 559 | }, 560 | "inflight": { 561 | "version": "1.0.6", 562 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 563 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 564 | "requires": { 565 | "once": "^1.3.0", 566 | "wrappy": "1" 567 | } 568 | }, 569 | "inherits": { 570 | "version": "2.0.4", 571 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 572 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 573 | }, 574 | "inquirer": { 575 | "version": "7.3.3", 576 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", 577 | "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", 578 | "requires": { 579 | "ansi-escapes": "^4.2.1", 580 | "chalk": "^4.1.0", 581 | "cli-cursor": "^3.1.0", 582 | "cli-width": "^3.0.0", 583 | "external-editor": "^3.0.3", 584 | "figures": "^3.0.0", 585 | "lodash": "^4.17.19", 586 | "mute-stream": "0.0.8", 587 | "run-async": "^2.4.0", 588 | "rxjs": "^6.6.0", 589 | "string-width": "^4.1.0", 590 | "strip-ansi": "^6.0.0", 591 | "through": "^2.3.6" 592 | } 593 | }, 594 | "is-extglob": { 595 | "version": "2.1.1", 596 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 597 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 598 | }, 599 | "is-fullwidth-code-point": { 600 | "version": "3.0.0", 601 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 602 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 603 | }, 604 | "is-glob": { 605 | "version": "4.0.3", 606 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 607 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 608 | "requires": { 609 | "is-extglob": "^2.1.1" 610 | } 611 | }, 612 | "is-number": { 613 | "version": "7.0.0", 614 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 615 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 616 | }, 617 | "is-plain-obj": { 618 | "version": "1.1.0", 619 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 620 | "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" 621 | }, 622 | "is-stream": { 623 | "version": "3.0.0", 624 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", 625 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" 626 | }, 627 | "isexe": { 628 | "version": "2.0.0", 629 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 630 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 631 | }, 632 | "lodash": { 633 | "version": "4.17.21", 634 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 635 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 636 | }, 637 | "lower-case": { 638 | "version": "2.0.2", 639 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 640 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 641 | "requires": { 642 | "tslib": "^2.0.3" 643 | } 644 | }, 645 | "lru-cache": { 646 | "version": "6.0.0", 647 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 648 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 649 | "requires": { 650 | "yallist": "^4.0.0" 651 | } 652 | }, 653 | "make-dir": { 654 | "version": "3.1.0", 655 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 656 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 657 | "requires": { 658 | "semver": "^6.0.0" 659 | }, 660 | "dependencies": { 661 | "semver": { 662 | "version": "6.3.0", 663 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 664 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 665 | } 666 | } 667 | }, 668 | "map-values": { 669 | "version": "1.0.1", 670 | "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", 671 | "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==" 672 | }, 673 | "merge-stream": { 674 | "version": "2.0.0", 675 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 676 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 677 | }, 678 | "merge2": { 679 | "version": "1.4.1", 680 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 681 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 682 | }, 683 | "micromatch": { 684 | "version": "4.0.5", 685 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 686 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 687 | "requires": { 688 | "braces": "^3.0.2", 689 | "picomatch": "^2.3.1" 690 | } 691 | }, 692 | "mimic-fn": { 693 | "version": "4.0.0", 694 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", 695 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" 696 | }, 697 | "minimatch": { 698 | "version": "3.1.2", 699 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 700 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 701 | "requires": { 702 | "brace-expansion": "^1.1.7" 703 | } 704 | }, 705 | "minimist": { 706 | "version": "1.2.6", 707 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 708 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 709 | }, 710 | "mustache": { 711 | "version": "4.2.0", 712 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 713 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" 714 | }, 715 | "mute-stream": { 716 | "version": "0.0.8", 717 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 718 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" 719 | }, 720 | "no-case": { 721 | "version": "3.0.4", 722 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 723 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 724 | "requires": { 725 | "lower-case": "^2.0.2", 726 | "tslib": "^2.0.3" 727 | } 728 | }, 729 | "npm-package-arg": { 730 | "version": "8.1.5", 731 | "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", 732 | "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", 733 | "requires": { 734 | "hosted-git-info": "^4.0.1", 735 | "semver": "^7.3.4", 736 | "validate-npm-package-name": "^3.0.0" 737 | } 738 | }, 739 | "npm-run-path": { 740 | "version": "5.1.0", 741 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", 742 | "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", 743 | "requires": { 744 | "path-key": "^4.0.0" 745 | }, 746 | "dependencies": { 747 | "path-key": { 748 | "version": "4.0.0", 749 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 750 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" 751 | } 752 | } 753 | }, 754 | "object-filter": { 755 | "version": "1.0.2", 756 | "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", 757 | "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==" 758 | }, 759 | "once": { 760 | "version": "1.4.0", 761 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 762 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 763 | "requires": { 764 | "wrappy": "1" 765 | } 766 | }, 767 | "onetime": { 768 | "version": "6.0.0", 769 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", 770 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", 771 | "requires": { 772 | "mimic-fn": "^4.0.0" 773 | } 774 | }, 775 | "os-tmpdir": { 776 | "version": "1.0.2", 777 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 778 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" 779 | }, 780 | "param-case": { 781 | "version": "3.0.4", 782 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", 783 | "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", 784 | "requires": { 785 | "dot-case": "^3.0.4", 786 | "tslib": "^2.0.3" 787 | } 788 | }, 789 | "pascal-case": { 790 | "version": "3.1.2", 791 | "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", 792 | "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", 793 | "requires": { 794 | "no-case": "^3.0.4", 795 | "tslib": "^2.0.3" 796 | } 797 | }, 798 | "path-case": { 799 | "version": "3.0.4", 800 | "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", 801 | "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", 802 | "requires": { 803 | "dot-case": "^3.0.4", 804 | "tslib": "^2.0.3" 805 | } 806 | }, 807 | "path-is-absolute": { 808 | "version": "1.0.1", 809 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 810 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 811 | }, 812 | "path-key": { 813 | "version": "3.1.1", 814 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 815 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 816 | }, 817 | "picomatch": { 818 | "version": "2.3.1", 819 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 820 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 821 | }, 822 | "pify": { 823 | "version": "4.0.1", 824 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 825 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" 826 | }, 827 | "pump": { 828 | "version": "3.0.0", 829 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 830 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 831 | "requires": { 832 | "end-of-stream": "^1.1.0", 833 | "once": "^1.3.1" 834 | } 835 | }, 836 | "queue-microtask": { 837 | "version": "1.2.3", 838 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 839 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 840 | }, 841 | "replace-in-file": { 842 | "version": "6.3.5", 843 | "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.5.tgz", 844 | "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", 845 | "requires": { 846 | "chalk": "^4.1.2", 847 | "glob": "^7.2.0", 848 | "yargs": "^17.2.1" 849 | } 850 | }, 851 | "require-directory": { 852 | "version": "2.1.1", 853 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 854 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" 855 | }, 856 | "restore-cursor": { 857 | "version": "3.1.0", 858 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 859 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 860 | "requires": { 861 | "onetime": "^5.1.0", 862 | "signal-exit": "^3.0.2" 863 | }, 864 | "dependencies": { 865 | "mimic-fn": { 866 | "version": "2.1.0", 867 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 868 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 869 | }, 870 | "onetime": { 871 | "version": "5.1.2", 872 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 873 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 874 | "requires": { 875 | "mimic-fn": "^2.1.0" 876 | } 877 | } 878 | } 879 | }, 880 | "reusify": { 881 | "version": "1.0.4", 882 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 883 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 884 | }, 885 | "rimraf": { 886 | "version": "3.0.2", 887 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 888 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 889 | "requires": { 890 | "glob": "^7.1.3" 891 | } 892 | }, 893 | "run-async": { 894 | "version": "2.4.1", 895 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 896 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" 897 | }, 898 | "run-parallel": { 899 | "version": "1.2.0", 900 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 901 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 902 | "requires": { 903 | "queue-microtask": "^1.2.2" 904 | } 905 | }, 906 | "rxjs": { 907 | "version": "6.6.7", 908 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", 909 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", 910 | "requires": { 911 | "tslib": "^1.9.0" 912 | }, 913 | "dependencies": { 914 | "tslib": { 915 | "version": "1.14.1", 916 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 917 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 918 | } 919 | } 920 | }, 921 | "safer-buffer": { 922 | "version": "2.1.2", 923 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 924 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 925 | }, 926 | "semver": { 927 | "version": "7.3.7", 928 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 929 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 930 | "requires": { 931 | "lru-cache": "^6.0.0" 932 | } 933 | }, 934 | "sentence-case": { 935 | "version": "3.0.4", 936 | "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", 937 | "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", 938 | "requires": { 939 | "no-case": "^3.0.4", 940 | "tslib": "^2.0.3", 941 | "upper-case-first": "^2.0.2" 942 | } 943 | }, 944 | "shebang-command": { 945 | "version": "2.0.0", 946 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 947 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 948 | "requires": { 949 | "shebang-regex": "^3.0.0" 950 | } 951 | }, 952 | "shebang-regex": { 953 | "version": "3.0.0", 954 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 955 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 956 | }, 957 | "signal-exit": { 958 | "version": "3.0.7", 959 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 960 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 961 | }, 962 | "snake-case": { 963 | "version": "3.0.4", 964 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", 965 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", 966 | "requires": { 967 | "dot-case": "^3.0.4", 968 | "tslib": "^2.0.3" 969 | } 970 | }, 971 | "sort-keys": { 972 | "version": "2.0.0", 973 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", 974 | "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", 975 | "requires": { 976 | "is-plain-obj": "^1.0.0" 977 | } 978 | }, 979 | "string-width": { 980 | "version": "4.2.3", 981 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 982 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 983 | "requires": { 984 | "emoji-regex": "^8.0.0", 985 | "is-fullwidth-code-point": "^3.0.0", 986 | "strip-ansi": "^6.0.1" 987 | } 988 | }, 989 | "strip-ansi": { 990 | "version": "6.0.1", 991 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 992 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 993 | "requires": { 994 | "ansi-regex": "^5.0.1" 995 | } 996 | }, 997 | "strip-final-newline": { 998 | "version": "3.0.0", 999 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", 1000 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" 1001 | }, 1002 | "supports-color": { 1003 | "version": "7.2.0", 1004 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1005 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1006 | "requires": { 1007 | "has-flag": "^4.0.0" 1008 | } 1009 | }, 1010 | "through": { 1011 | "version": "2.3.8", 1012 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1013 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 1014 | }, 1015 | "tmp": { 1016 | "version": "0.0.33", 1017 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1018 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1019 | "requires": { 1020 | "os-tmpdir": "~1.0.2" 1021 | } 1022 | }, 1023 | "to-regex-range": { 1024 | "version": "5.0.1", 1025 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1026 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1027 | "requires": { 1028 | "is-number": "^7.0.0" 1029 | } 1030 | }, 1031 | "tslib": { 1032 | "version": "2.4.0", 1033 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 1034 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" 1035 | }, 1036 | "type-fest": { 1037 | "version": "0.21.3", 1038 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", 1039 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" 1040 | }, 1041 | "upper-case": { 1042 | "version": "2.0.2", 1043 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", 1044 | "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", 1045 | "requires": { 1046 | "tslib": "^2.0.3" 1047 | } 1048 | }, 1049 | "upper-case-first": { 1050 | "version": "2.0.2", 1051 | "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", 1052 | "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", 1053 | "requires": { 1054 | "tslib": "^2.0.3" 1055 | } 1056 | }, 1057 | "validate-npm-package-name": { 1058 | "version": "3.0.0", 1059 | "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", 1060 | "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", 1061 | "requires": { 1062 | "builtins": "^1.0.3" 1063 | } 1064 | }, 1065 | "which": { 1066 | "version": "2.0.2", 1067 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1068 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1069 | "requires": { 1070 | "isexe": "^2.0.0" 1071 | } 1072 | }, 1073 | "wrap-ansi": { 1074 | "version": "7.0.0", 1075 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1076 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1077 | "requires": { 1078 | "ansi-styles": "^4.0.0", 1079 | "string-width": "^4.1.0", 1080 | "strip-ansi": "^6.0.0" 1081 | } 1082 | }, 1083 | "wrappy": { 1084 | "version": "1.0.2", 1085 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1086 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1087 | }, 1088 | "write-file-atomic": { 1089 | "version": "2.4.3", 1090 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", 1091 | "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", 1092 | "requires": { 1093 | "graceful-fs": "^4.1.11", 1094 | "imurmurhash": "^0.1.4", 1095 | "signal-exit": "^3.0.2" 1096 | } 1097 | }, 1098 | "write-json-file": { 1099 | "version": "3.2.0", 1100 | "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", 1101 | "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", 1102 | "requires": { 1103 | "detect-indent": "^5.0.0", 1104 | "graceful-fs": "^4.1.15", 1105 | "make-dir": "^2.1.0", 1106 | "pify": "^4.0.1", 1107 | "sort-keys": "^2.0.0", 1108 | "write-file-atomic": "^2.4.2" 1109 | }, 1110 | "dependencies": { 1111 | "make-dir": { 1112 | "version": "2.1.0", 1113 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 1114 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 1115 | "requires": { 1116 | "pify": "^4.0.1", 1117 | "semver": "^5.6.0" 1118 | } 1119 | }, 1120 | "semver": { 1121 | "version": "5.7.1", 1122 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1123 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1124 | } 1125 | } 1126 | }, 1127 | "write-pkg": { 1128 | "version": "4.0.0", 1129 | "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", 1130 | "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", 1131 | "requires": { 1132 | "sort-keys": "^2.0.0", 1133 | "type-fest": "^0.4.1", 1134 | "write-json-file": "^3.2.0" 1135 | }, 1136 | "dependencies": { 1137 | "type-fest": { 1138 | "version": "0.4.1", 1139 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", 1140 | "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==" 1141 | } 1142 | } 1143 | }, 1144 | "y18n": { 1145 | "version": "5.0.8", 1146 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 1147 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" 1148 | }, 1149 | "yallist": { 1150 | "version": "4.0.0", 1151 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1152 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1153 | }, 1154 | "yargs": { 1155 | "version": "17.5.1", 1156 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", 1157 | "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", 1158 | "requires": { 1159 | "cliui": "^7.0.2", 1160 | "escalade": "^3.1.1", 1161 | "get-caller-file": "^2.0.5", 1162 | "require-directory": "^2.1.1", 1163 | "string-width": "^4.2.3", 1164 | "y18n": "^5.0.5", 1165 | "yargs-parser": "^21.0.0" 1166 | } 1167 | }, 1168 | "yargs-parser": { 1169 | "version": "21.1.1", 1170 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 1171 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" 1172 | } 1173 | } 1174 | } 1175 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "create-wp-block", 3 | "version": "2.6.0", 4 | "description": "Extends the @wordpress/create-block package by adding new features for flexible block scaffolding such as support for multiple blocks.", 5 | "main": "./index.js", 6 | "bin": { 7 | "create-wp-block": "./index.js" 8 | }, 9 | "type": "module", 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/dgwyer/create-wp-block.git" 16 | }, 17 | "keywords": [ 18 | "wordpress", 19 | "gutenberg", 20 | "block", 21 | "scaffold" 22 | ], 23 | "author": "", 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/dgwyer/create-wp-block/issues" 27 | }, 28 | "homepage": "https://github.com/dgwyer/create-wp-block#readme", 29 | "dependencies": { 30 | "@wordpress/create-block": "^3.8.0", 31 | "execa": "^6.1.0", 32 | "replace-in-file": "^6.3.5", 33 | "yargs": "^17.5.1" 34 | }, 35 | "publishConfig": { 36 | "access": "public" 37 | } 38 | } 39 | --------------------------------------------------------------------------------