├── scss └── quickstart.scss ├── .npmignore ├── renovate.json ├── test ├── .eslintrc └── index.js ├── languages ├── en-GB │ └── quickstart.json ├── en-US │ └── quickstart.json └── de │ └── quickstart.json ├── templates ├── quickstart.tpl └── admin │ └── plugins │ ├── quickstart │ └── partials │ │ └── sorted-list │ │ ├── form.tpl │ │ └── item.tpl │ └── quickstart.tpl ├── eslint.config.mjs ├── static └── samplefile.html ├── public └── lib │ ├── quickstart.js │ ├── acp-main.js │ ├── main.js │ └── admin.js ├── commitlint.config.js ├── lib └── controllers.js ├── .gitattributes ├── plugin.json ├── README.md ├── LICENSE ├── package.json ├── library.js ├── .gitignore └── yarn.lock /scss/quickstart.scss: -------------------------------------------------------------------------------- 1 | /* Place any SASS in here */ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | sftp-config.json 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:recommended" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | }, 5 | "rules": { 6 | "no-unused-vars": "off" 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /languages/en-GB/quickstart.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": "This is a translation string, it gets translated to the users language. See the languages folder in the root of this plugin." 3 | } -------------------------------------------------------------------------------- /languages/en-US/quickstart.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": "This is a translation string, it gets translated to the users language. See the languages folder in the root of this plugin." 3 | } -------------------------------------------------------------------------------- /languages/de/quickstart.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": "Dies ist eine Übersetzungszeichenkette, sie wird in die Sprache des Benutzers übersetzt. Siehe den Ordner 'languages' im Stammverzeichnis dieses Plugins." 3 | } -------------------------------------------------------------------------------- /templates/quickstart.tpl: -------------------------------------------------------------------------------- 1 |
2 |

This is a custom page.

3 |

Your uid is {uid}!

4 |

5 |
6 |

[[quickstart:info]]

7 |
-------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import serverConfig from 'eslint-config-nodebb'; 4 | import publicConfig from 'eslint-config-nodebb/public'; 5 | 6 | export default [ 7 | ...publicConfig, 8 | ...serverConfig, 9 | ]; 10 | 11 | -------------------------------------------------------------------------------- /static/samplefile.html: -------------------------------------------------------------------------------- 1 |

Hello!

2 | 3 |

This file is served by nodebb at domain.com/assets/plugins/nodebb-plugin-quickstart/static/samplefile.html

4 | 5 | Check plugin.json for the "staticDirs" property if you want to change the path. -------------------------------------------------------------------------------- /public/lib/quickstart.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | This file is located in the "modules" block of plugin.json 5 | It is only loaded when the user navigates to /quickstart page 6 | It is not bundled into the min file that is served on the first load of the page. 7 | */ 8 | 9 | define('forum/quickstart', function () { 10 | var module = {}; 11 | module.init = function () { 12 | $('#last-p').text('quickstart.js loaded!'); 13 | }; 14 | return module; 15 | }); 16 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | extends: ['@commitlint/config-angular'], 5 | rules: { 6 | 'header-max-length': [1, 'always', 72], 7 | 'type-enum': [ 8 | 2, 9 | 'always', 10 | [ 11 | 'breaking', 12 | 'build', 13 | 'chore', 14 | 'ci', 15 | 'docs', 16 | 'feat', 17 | 'fix', 18 | 'perf', 19 | 'refactor', 20 | 'revert', 21 | 'style', 22 | 'test', 23 | ], 24 | ], 25 | }, 26 | }; 27 | -------------------------------------------------------------------------------- /templates/admin/plugins/quickstart/partials/sorted-list/form.tpl: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 |
7 | 8 | 9 |
10 |
-------------------------------------------------------------------------------- /lib/controllers.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Controllers = module.exports; 4 | 5 | Controllers.renderAdminPage = function (req, res/* , next */) { 6 | /* 7 | Make sure the route matches your path to template exactly. 8 | 9 | If your route was: 10 | myforum.com/some/complex/route 11 | your template should be: 12 | templates/some/complex/route.tpl 13 | and you would render it like so: 14 | res.render('some/complex/route'); 15 | */ 16 | 17 | res.render('admin/plugins/quickstart', { 18 | title: 'Quick Start', 19 | }); 20 | }; 21 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /templates/admin/plugins/quickstart/partials/sorted-list/item.tpl: -------------------------------------------------------------------------------- 1 |
  • 2 |
    3 |
    4 | {name}
    5 | {description} 6 |
    7 |
    8 | 9 | 10 |
    11 |
    12 |
  • -------------------------------------------------------------------------------- /public/lib/acp-main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | $(document).ready(function () { 4 | /* 5 | This file shows how admin page client-side javascript can be included via a plugin. 6 | If you check `plugin.json`, you'll see that this file is listed under "acpScripts". 7 | That array tells NodeBB which files to bundle into the minified javascript 8 | that is served to the end user. 9 | 10 | Some events you can elect to listen for: 11 | 12 | $(document).ready(); Fired when the DOM is ready 13 | $(window).on('action:ajaxify.end', function(data) { ... }); "data" contains "url" 14 | */ 15 | 16 | console.log('nodebb-plugin-quickstart: acp-loaded'); 17 | // Note how this is shown in the console on the first load of every page in the ACP 18 | }); 19 | -------------------------------------------------------------------------------- /plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "nodebb-plugin-quickstart", 3 | "url": "https://github.com/NodeBB/nodebb-plugin-quickstart", 4 | "library": "./library.js", 5 | "hooks": [ 6 | { "hook": "static:app.load", "method": "init" }, 7 | { "hook": "static:api.routes", "method": "addRoutes" }, 8 | { "hook": "filter:admin.header.build", "method": "addAdminNavigation" } 9 | ], 10 | "staticDirs": { 11 | "static": "./static" 12 | }, 13 | "scss": [ 14 | "scss/quickstart.scss" 15 | ], 16 | "scripts": [ 17 | "public/lib/main.js" 18 | ], 19 | "acpScripts": [ 20 | "public/lib/acp-main.js" 21 | ], 22 | "modules": { 23 | "../client/quickstart.js": "./public/lib/quickstart.js", 24 | "../admin/plugins/quickstart.js": "./public/lib/admin.js" 25 | }, 26 | "templates": "templates" 27 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Quickstart Plugin for NodeBB 2 | 3 | A starter kit for quickly creating NodeBB plugins. Comes with a pre-setup SCSS file, server side JS script with an `static:app.load` hook, and a client-side script. Most plugins need at least one of the above, so this ought to save you some time. For a full list of hooks have a look at our [wiki page](https://github.com/NodeBB/NodeBB/wiki/Hooks), and for more information about creating plugins please visit our [documentation portal](https://docs.nodebb.org/). 4 | 5 | Fork this or copy it, and using your favourite text editor find and replace all instances of `nodebb-plugin-quickstart` with `nodebb-plugin-your-plugins-name`. Change the author's name in the LICENSE and package.json files. 6 | 7 | ## Hello World 8 | 9 | Really simple, just edit `public/lib/main.js` and paste in `console.log('hello world');`, and that's it! 10 | 11 | ## Installation 12 | 13 | npm install nodebb-plugin-quickstart 14 | 15 | ## Screenshots 16 | 17 | Don't forget to add screenshots! 18 | -------------------------------------------------------------------------------- /public/lib/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * This file shows how client-side javascript can be included via a plugin. 5 | * If you check `plugin.json`, you'll see that this file is listed under "scripts". 6 | * That array tells NodeBB which files to bundle into the minified javascript 7 | * that is served to the end user. 8 | * 9 | * There are two (standard) ways to wait for when NodeBB is ready. 10 | * This one below executes when NodeBB reports it is ready... 11 | */ 12 | 13 | (async () => { 14 | const hooks = await app.require('hooks'); 15 | 16 | hooks.on('action:app.load', () => { 17 | // called once when nbb has loaded 18 | }); 19 | 20 | hooks.on('action:ajaxify.end', (/* data */) => { 21 | // called everytime user navigates between pages including first load 22 | }); 23 | })(); 24 | 25 | /** 26 | * ... and this one reports when the DOM is loaded (but NodeBB might not be fully ready yet). 27 | * For most cases, you'll want the one above. 28 | */ 29 | 30 | $(document).ready(function () { 31 | // ... 32 | }); 33 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * You can run these tests by executing `npx mocha test/plugins-installed.js` 3 | * from the NodeBB root folder. The regular test runner will also run these 4 | * tests. 5 | * 6 | * Keep in mind tests do not activate all plugins, so if you are testing 7 | * hook listeners, socket.io, or mounted routes, you will need to add your 8 | * plugin to `config.json`, e.g. 9 | * 10 | * { 11 | * "test_plugins": [ 12 | * "nodebb-plugin-quickstart" 13 | * ] 14 | * } 15 | */ 16 | 17 | 'use strict'; 18 | 19 | /* globals describe, it, before */ 20 | 21 | const assert = require('assert'); 22 | 23 | const db = require.main.require('./test/mocks/databasemock'); 24 | 25 | describe('nodebb-plugin-quickstart', () => { 26 | before(() => { 27 | // Prepare for tests here 28 | }); 29 | 30 | it('should pass', (done) => { 31 | const actual = 'value'; 32 | const expected = 'value'; 33 | assert.strictEqual(actual, expected); 34 | done(); 35 | }); 36 | 37 | it('should load config object', async () => { // Tests can be async functions too 38 | const config = await db.getObject('config'); 39 | assert(config); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 NodeBB Inc. 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodebb-plugin-quickstart", 3 | "version": "0.4.3", 4 | "description": "A starter kit for quickly creating NodeBB plugins", 5 | "main": "library.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/nodebb/nodebb-plugin-quickstart" 9 | }, 10 | "scripts": { 11 | "lint": "eslint ." 12 | }, 13 | "keywords": [ 14 | "nodebb", 15 | "plugin", 16 | "quickstart", 17 | "shell" 18 | ], 19 | "husky": { 20 | "hooks": { 21 | "pre-commit": "lint-staged", 22 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 23 | } 24 | }, 25 | "lint-staged": { 26 | "*.js": [ 27 | "eslint --fix", 28 | "git add" 29 | ] 30 | }, 31 | "license": "MIT", 32 | "bugs": { 33 | "url": "https://github.com/nodebb/nodebb-plugin-quickstart/issues" 34 | }, 35 | "readmeFilename": "README.md", 36 | "nbbpm": { 37 | "compatibility": "^3.2.0" 38 | }, 39 | "devDependencies": { 40 | "@commitlint/cli": "20.2.0", 41 | "@commitlint/config-angular": "20.2.0", 42 | "eslint": "9.39.2", 43 | "eslint-config-nodebb": "1.1.11", 44 | "husky": "9.1.7", 45 | "lint-staged": "16.2.7" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /public/lib/admin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* 4 | This file is located in the "modules" block of plugin.json 5 | It is only loaded when the user navigates to /admin/plugins/quickstart page 6 | It is not bundled into the min file that is served on the first load of the page. 7 | */ 8 | 9 | import { save, load } from 'settings'; 10 | import * as uploader from 'uploader'; 11 | 12 | export function init() { 13 | handleSettingsForm(); 14 | setupUploader(); 15 | }; 16 | 17 | function handleSettingsForm() { 18 | load('quickstart', $('.quickstart-settings'), function () { 19 | setupColorInputs(); 20 | }); 21 | 22 | $('#save').on('click', () => { 23 | save('quickstart', $('.quickstart-settings')); // pass in a function in the 3rd parameter to override the default success/failure handler 24 | }); 25 | } 26 | 27 | function setupColorInputs() { 28 | var colorInputs = $('[data-settings="colorpicker"]'); 29 | colorInputs.on('change', updateColors); 30 | updateColors(); 31 | } 32 | 33 | function updateColors() { 34 | $('#preview').css({ 35 | color: $('#color').val(), 36 | 'background-color': $('#bgColor').val(), 37 | }); 38 | } 39 | 40 | function setupUploader() { 41 | $('#content input[data-action="upload"]').each(function () { 42 | var uploadBtn = $(this); 43 | uploadBtn.on('click', function () { 44 | uploader.show({ 45 | route: config.relative_path + '/api/admin/upload/file', 46 | params: { 47 | folder: 'quickstart', 48 | }, 49 | accept: 'image/*', 50 | }, function (image) { 51 | $('#' + uploadBtn.attr('data-target')).val(image); 52 | }); 53 | }); 54 | }); 55 | } 56 | -------------------------------------------------------------------------------- /library.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const nconf = require.main.require('nconf'); 4 | const winston = require.main.require('winston'); 5 | 6 | const meta = require.main.require('./src/meta'); 7 | 8 | const controllers = require('./lib/controllers'); 9 | 10 | const routeHelpers = require.main.require('./src/routes/helpers'); 11 | 12 | const plugin = {}; 13 | 14 | plugin.init = async (params) => { 15 | const { router /* , middleware , controllers */ } = params; 16 | 17 | // Settings saved in the plugin settings can be retrieved via settings methods 18 | const { setting1, setting2 } = await meta.settings.get('quickstart'); 19 | if (setting1) { 20 | console.log(setting2); 21 | } 22 | 23 | /** 24 | * We create two routes for every view. One API call, and the actual route itself. 25 | * Use the `setupPageRoute` helper and NodeBB will take care of everything for you. 26 | * 27 | * Other helpers include `setupAdminPageRoute` and `setupAPIRoute` 28 | * */ 29 | routeHelpers.setupPageRoute(router, '/quickstart', [(req, res, next) => { 30 | winston.info(`[plugins/quickstart] In middleware. This argument can be either a single middleware or an array of middlewares`); 31 | setImmediate(next); 32 | }], (req, res) => { 33 | winston.info(`[plugins/quickstart] Navigated to ${nconf.get('relative_path')}/quickstart`); 34 | res.render('quickstart', { uid: req.uid }); 35 | }); 36 | 37 | routeHelpers.setupAdminPageRoute(router, '/admin/plugins/quickstart', controllers.renderAdminPage); 38 | }; 39 | 40 | /** 41 | * If you wish to add routes to NodeBB's RESTful API, listen to the `static:api.routes` hook. 42 | * Define your routes similarly to above, and allow core to handle the response via the 43 | * built-in helpers.formatApiResponse() method. 44 | * 45 | * In this example route, the `ensureLoggedIn` middleware is added, which means a valid login 46 | * session or bearer token (which you can create via ACP > Settings > API Access) needs to be 47 | * passed in. 48 | * 49 | * To call this example route: 50 | * curl -X GET \ 51 | * http://example.org/api/v3/plugins/quickstart/test \ 52 | * -H "Authorization: Bearer some_valid_bearer_token" 53 | * 54 | * Will yield the following response JSON: 55 | * { 56 | * "status": { 57 | * "code": "ok", 58 | * "message": "OK" 59 | * }, 60 | * "response": { 61 | * "foobar": "test" 62 | * } 63 | * } 64 | */ 65 | plugin.addRoutes = async ({ router, middleware, helpers }) => { 66 | const middlewares = [ 67 | middleware.ensureLoggedIn, // use this if you want only registered users to call this route 68 | // middleware.admin.checkPrivileges, // use this to restrict the route to administrators 69 | ]; 70 | 71 | routeHelpers.setupApiRoute(router, 'get', '/quickstart/:param1', middlewares, (req, res) => { 72 | helpers.formatApiResponse(200, res, { 73 | foobar: req.params.param1, 74 | }); 75 | }); 76 | }; 77 | 78 | plugin.addAdminNavigation = (header) => { 79 | header.plugins.push({ 80 | route: '/plugins/quickstart', 81 | icon: 'fa-tint', 82 | name: 'Quickstart', 83 | }); 84 | 85 | return header; 86 | }; 87 | 88 | module.exports = plugin; 89 | -------------------------------------------------------------------------------- /templates/admin/plugins/quickstart.tpl: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 |
    5 |
    6 |
    7 |
    8 |
    General
    9 | 10 |

    11 | Adjust these settings. You can then retrieve these settings in code via: 12 |
    await meta.settings.get('quickstart'); 13 |

    14 |
    15 | 16 | 17 |
    18 |
    19 | 20 | 21 |
    22 | 23 |
    24 | 25 | 26 |
    27 |
    28 | 29 |
    30 |
    Colors
    31 | 32 |

    33 | Here is some preview text. Use the inputs below to modify this alert's appearance. 34 |

    35 |
    36 | 37 | 38 |
    39 |
    40 | 41 | 42 |
    43 |
    44 | 45 |
    46 |
    Sorted List
    47 | 48 |
    49 |
      50 | 51 |
      52 |
      53 | 54 |
      55 |
      Uploads
      56 | 57 | 58 |
      59 | 60 | 61 |
      62 |
      63 |
      64 |
      65 | 66 | 67 |
      68 |
      69 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | 217 | sftp-config.json 218 | node_modules/ 219 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.27.1" 7 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz" 8 | integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== 9 | dependencies: 10 | "@babel/helper-validator-identifier" "^7.27.1" 11 | js-tokens "^4.0.0" 12 | picocolors "^1.1.1" 13 | 14 | "@babel/helper-validator-identifier@^7.27.1": 15 | version "7.28.5" 16 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" 17 | integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== 18 | 19 | "@commitlint/cli@20.2.0": 20 | version "20.2.0" 21 | resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-20.2.0.tgz" 22 | integrity sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA== 23 | dependencies: 24 | "@commitlint/format" "^20.2.0" 25 | "@commitlint/lint" "^20.2.0" 26 | "@commitlint/load" "^20.2.0" 27 | "@commitlint/read" "^20.2.0" 28 | "@commitlint/types" "^20.2.0" 29 | tinyexec "^1.0.0" 30 | yargs "^17.0.0" 31 | 32 | "@commitlint/config-angular-type-enum@^20.0.0": 33 | version "20.0.0" 34 | resolved "https://registry.npmjs.org/@commitlint/config-angular-type-enum/-/config-angular-type-enum-20.0.0.tgz" 35 | integrity sha512-6HAMnXyUl3EUBgECjvfLzlghbkMfZx28YBPDry3pPWR0+xpzqSbUY19VIkmdetqYKeawFViudvkqD4VH93gKKg== 36 | 37 | "@commitlint/config-angular@20.2.0": 38 | version "20.2.0" 39 | resolved "https://registry.npmjs.org/@commitlint/config-angular/-/config-angular-20.2.0.tgz" 40 | integrity sha512-/FwLctMaBM8DxFuJ3TtEmNMpAzs/sOO8ZahDFWZYg8BN4aFk2n7UUd8qMKw3s0Sn9BC1xabLbJSPOqf4kKSDOw== 41 | dependencies: 42 | "@commitlint/config-angular-type-enum" "^20.0.0" 43 | 44 | "@commitlint/config-validator@^20.2.0": 45 | version "20.2.0" 46 | resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.2.0.tgz" 47 | integrity sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w== 48 | dependencies: 49 | "@commitlint/types" "^20.2.0" 50 | ajv "^8.11.0" 51 | 52 | "@commitlint/ensure@^20.2.0": 53 | version "20.2.0" 54 | resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.2.0.tgz" 55 | integrity sha512-+8TgIGv89rOWyt3eC6lcR1H7hqChAKkpawytlq9P1i/HYugFRVqgoKJ8dhd89fMnlrQTLjA5E97/4sF09QwdoA== 56 | dependencies: 57 | "@commitlint/types" "^20.2.0" 58 | lodash.camelcase "^4.3.0" 59 | lodash.kebabcase "^4.1.1" 60 | lodash.snakecase "^4.1.1" 61 | lodash.startcase "^4.4.0" 62 | lodash.upperfirst "^4.3.1" 63 | 64 | "@commitlint/execute-rule@^20.0.0": 65 | version "20.0.0" 66 | resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-20.0.0.tgz" 67 | integrity sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== 68 | 69 | "@commitlint/format@^20.2.0": 70 | version "20.2.0" 71 | resolved "https://registry.npmjs.org/@commitlint/format/-/format-20.2.0.tgz" 72 | integrity sha512-PhNoLNhxpfIBlW/i90uZ3yG3hwSSYx7n4d9Yc+2FAorAHS0D9btYRK4ZZXX+Gm3W5tDtu911ow/eWRfcRVgNWg== 73 | dependencies: 74 | "@commitlint/types" "^20.2.0" 75 | chalk "^5.3.0" 76 | 77 | "@commitlint/is-ignored@^20.2.0": 78 | version "20.2.0" 79 | resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.2.0.tgz" 80 | integrity sha512-Lz0OGeZCo/QHUDLx5LmZc0EocwanneYJUM8z0bfWexArk62HKMLfLIodwXuKTO5y0s6ddXaTexrYHs7v96EOmw== 81 | dependencies: 82 | "@commitlint/types" "^20.2.0" 83 | semver "^7.6.0" 84 | 85 | "@commitlint/lint@^20.2.0": 86 | version "20.2.0" 87 | resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-20.2.0.tgz" 88 | integrity sha512-cQEEB+jlmyQbyiji/kmh8pUJSDeUmPiWq23kFV0EtW3eM+uAaMLMuoTMajbrtWYWQpPzOMDjYltQ8jxHeHgITg== 89 | dependencies: 90 | "@commitlint/is-ignored" "^20.2.0" 91 | "@commitlint/parse" "^20.2.0" 92 | "@commitlint/rules" "^20.2.0" 93 | "@commitlint/types" "^20.2.0" 94 | 95 | "@commitlint/load@^20.2.0": 96 | version "20.2.0" 97 | resolved "https://registry.npmjs.org/@commitlint/load/-/load-20.2.0.tgz" 98 | integrity sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g== 99 | dependencies: 100 | "@commitlint/config-validator" "^20.2.0" 101 | "@commitlint/execute-rule" "^20.0.0" 102 | "@commitlint/resolve-extends" "^20.2.0" 103 | "@commitlint/types" "^20.2.0" 104 | chalk "^5.3.0" 105 | cosmiconfig "^9.0.0" 106 | cosmiconfig-typescript-loader "^6.1.0" 107 | lodash.isplainobject "^4.0.6" 108 | lodash.merge "^4.6.2" 109 | lodash.uniq "^4.5.0" 110 | 111 | "@commitlint/message@^20.0.0": 112 | version "20.0.0" 113 | resolved "https://registry.npmjs.org/@commitlint/message/-/message-20.0.0.tgz" 114 | integrity sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ== 115 | 116 | "@commitlint/parse@^20.2.0": 117 | version "20.2.0" 118 | resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-20.2.0.tgz" 119 | integrity sha512-LXStagGU1ivh07X7sM+hnEr4BvzFYn1iBJ6DRg2QsIN8lBfSzyvkUcVCDwok9Ia4PWiEgei5HQjju6xfJ1YaSQ== 120 | dependencies: 121 | "@commitlint/types" "^20.2.0" 122 | conventional-changelog-angular "^7.0.0" 123 | conventional-commits-parser "^5.0.0" 124 | 125 | "@commitlint/read@^20.2.0": 126 | version "20.2.0" 127 | resolved "https://registry.npmjs.org/@commitlint/read/-/read-20.2.0.tgz" 128 | integrity sha512-+SjF9mxm5JCbe+8grOpXCXMMRzAnE0WWijhhtasdrpJoAFJYd5UgRTj/oCq5W3HJTwbvTOsijEJ0SUGImECD7Q== 129 | dependencies: 130 | "@commitlint/top-level" "^20.0.0" 131 | "@commitlint/types" "^20.2.0" 132 | git-raw-commits "^4.0.0" 133 | minimist "^1.2.8" 134 | tinyexec "^1.0.0" 135 | 136 | "@commitlint/resolve-extends@^20.2.0": 137 | version "20.2.0" 138 | resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.2.0.tgz" 139 | integrity sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ== 140 | dependencies: 141 | "@commitlint/config-validator" "^20.2.0" 142 | "@commitlint/types" "^20.2.0" 143 | global-directory "^4.0.1" 144 | import-meta-resolve "^4.0.0" 145 | lodash.mergewith "^4.6.2" 146 | resolve-from "^5.0.0" 147 | 148 | "@commitlint/rules@^20.2.0": 149 | version "20.2.0" 150 | resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-20.2.0.tgz" 151 | integrity sha512-27rHGpeAjnYl/A+qUUiYDa7Yn1WIjof/dFJjYW4gA1Ug+LUGa1P0AexzGZ5NBxTbAlmDgaxSZkLLxtLVqtg8PQ== 152 | dependencies: 153 | "@commitlint/ensure" "^20.2.0" 154 | "@commitlint/message" "^20.0.0" 155 | "@commitlint/to-lines" "^20.0.0" 156 | "@commitlint/types" "^20.2.0" 157 | 158 | "@commitlint/to-lines@^20.0.0": 159 | version "20.0.0" 160 | resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-20.0.0.tgz" 161 | integrity sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw== 162 | 163 | "@commitlint/top-level@^20.0.0": 164 | version "20.0.0" 165 | resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.0.0.tgz" 166 | integrity sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg== 167 | dependencies: 168 | find-up "^7.0.0" 169 | 170 | "@commitlint/types@^20.2.0": 171 | version "20.2.0" 172 | resolved "https://registry.npmjs.org/@commitlint/types/-/types-20.2.0.tgz" 173 | integrity sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA== 174 | dependencies: 175 | "@types/conventional-commits-parser" "^5.0.0" 176 | chalk "^5.3.0" 177 | 178 | "@eslint-community/eslint-utils@^4.8.0": 179 | version "4.9.0" 180 | resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz" 181 | integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== 182 | dependencies: 183 | eslint-visitor-keys "^3.4.3" 184 | 185 | "@eslint-community/regexpp@^4.12.1": 186 | version "4.12.1" 187 | resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" 188 | integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== 189 | 190 | "@eslint/config-array@^0.21.1": 191 | version "0.21.1" 192 | resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz" 193 | integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== 194 | dependencies: 195 | "@eslint/object-schema" "^2.1.7" 196 | debug "^4.3.1" 197 | minimatch "^3.1.2" 198 | 199 | "@eslint/config-helpers@^0.4.2": 200 | version "0.4.2" 201 | resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz" 202 | integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== 203 | dependencies: 204 | "@eslint/core" "^0.17.0" 205 | 206 | "@eslint/core@^0.17.0": 207 | version "0.17.0" 208 | resolved "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz" 209 | integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== 210 | dependencies: 211 | "@types/json-schema" "^7.0.15" 212 | 213 | "@eslint/eslintrc@^3.3.1": 214 | version "3.3.1" 215 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz" 216 | integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== 217 | dependencies: 218 | ajv "^6.12.4" 219 | debug "^4.3.2" 220 | espree "^10.0.1" 221 | globals "^14.0.0" 222 | ignore "^5.2.0" 223 | import-fresh "^3.2.1" 224 | js-yaml "^4.1.0" 225 | minimatch "^3.1.2" 226 | strip-json-comments "^3.1.1" 227 | 228 | "@eslint/js@9.39.2": 229 | version "9.39.2" 230 | resolved "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz" 231 | integrity sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA== 232 | 233 | "@eslint/object-schema@^2.1.7": 234 | version "2.1.7" 235 | resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz" 236 | integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== 237 | 238 | "@eslint/plugin-kit@^0.4.1": 239 | version "0.4.1" 240 | resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz" 241 | integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== 242 | dependencies: 243 | "@eslint/core" "^0.17.0" 244 | levn "^0.4.1" 245 | 246 | "@humanfs/core@^0.19.1": 247 | version "0.19.1" 248 | resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" 249 | integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== 250 | 251 | "@humanfs/node@^0.16.6": 252 | version "0.16.6" 253 | resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" 254 | integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== 255 | dependencies: 256 | "@humanfs/core" "^0.19.1" 257 | "@humanwhocodes/retry" "^0.3.0" 258 | 259 | "@humanwhocodes/module-importer@^1.0.1": 260 | version "1.0.1" 261 | resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" 262 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 263 | 264 | "@humanwhocodes/retry@^0.3.0": 265 | version "0.3.1" 266 | resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" 267 | integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== 268 | 269 | "@humanwhocodes/retry@^0.4.2": 270 | version "0.4.3" 271 | resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz" 272 | integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== 273 | 274 | "@types/conventional-commits-parser@^5.0.0": 275 | version "5.0.2" 276 | resolved "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.2.tgz" 277 | integrity sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g== 278 | dependencies: 279 | "@types/node" "*" 280 | 281 | "@types/estree@^1.0.6": 282 | version "1.0.7" 283 | resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz" 284 | integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== 285 | 286 | "@types/json-schema@^7.0.15": 287 | version "7.0.15" 288 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" 289 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 290 | 291 | "@types/node@*": 292 | version "24.10.1" 293 | resolved "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz" 294 | integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== 295 | dependencies: 296 | undici-types "~7.16.0" 297 | 298 | JSONStream@^1.3.5: 299 | version "1.3.5" 300 | resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" 301 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 302 | dependencies: 303 | jsonparse "^1.2.0" 304 | through ">=2.2.7 <3" 305 | 306 | acorn-jsx@^5.3.2: 307 | version "5.3.2" 308 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 309 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 310 | 311 | acorn@^8.15.0: 312 | version "8.15.0" 313 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" 314 | integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== 315 | 316 | ajv@^6.12.4: 317 | version "6.12.6" 318 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 319 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 320 | dependencies: 321 | fast-deep-equal "^3.1.1" 322 | fast-json-stable-stringify "^2.0.0" 323 | json-schema-traverse "^0.4.1" 324 | uri-js "^4.2.2" 325 | 326 | ajv@^8.11.0: 327 | version "8.17.1" 328 | resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" 329 | integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== 330 | dependencies: 331 | fast-deep-equal "^3.1.3" 332 | fast-uri "^3.0.1" 333 | json-schema-traverse "^1.0.0" 334 | require-from-string "^2.0.2" 335 | 336 | ansi-escapes@^7.0.0: 337 | version "7.1.1" 338 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.1.1.tgz" 339 | integrity sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q== 340 | dependencies: 341 | environment "^1.0.0" 342 | 343 | ansi-regex@^5.0.0, ansi-regex@^5.0.1: 344 | version "5.0.1" 345 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 346 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 347 | 348 | ansi-regex@^6.0.1: 349 | version "6.2.2" 350 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz" 351 | integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== 352 | 353 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 354 | version "4.3.0" 355 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 356 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 357 | dependencies: 358 | color-convert "^2.0.1" 359 | 360 | ansi-styles@^6.2.1: 361 | version "6.2.3" 362 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" 363 | integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== 364 | 365 | argparse@^2.0.1: 366 | version "2.0.1" 367 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 368 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 369 | 370 | array-ify@^1.0.0: 371 | version "1.0.0" 372 | resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" 373 | integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== 374 | 375 | balanced-match@^1.0.0: 376 | version "1.0.2" 377 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 378 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 379 | 380 | brace-expansion@^1.1.7: 381 | version "1.1.12" 382 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" 383 | integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== 384 | dependencies: 385 | balanced-match "^1.0.0" 386 | concat-map "0.0.1" 387 | 388 | braces@^3.0.3: 389 | version "3.0.3" 390 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" 391 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 392 | dependencies: 393 | fill-range "^7.1.1" 394 | 395 | callsites@^3.0.0: 396 | version "3.1.0" 397 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 398 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 399 | 400 | chalk@^4.0.0: 401 | version "4.1.2" 402 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 403 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 404 | dependencies: 405 | ansi-styles "^4.1.0" 406 | supports-color "^7.1.0" 407 | 408 | chalk@^5.3.0: 409 | version "5.6.2" 410 | resolved "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" 411 | integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== 412 | 413 | cli-cursor@^5.0.0: 414 | version "5.0.0" 415 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz" 416 | integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== 417 | dependencies: 418 | restore-cursor "^5.0.0" 419 | 420 | cli-truncate@^5.0.0: 421 | version "5.1.0" 422 | resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.0.tgz" 423 | integrity sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g== 424 | dependencies: 425 | slice-ansi "^7.1.0" 426 | string-width "^8.0.0" 427 | 428 | cliui@^8.0.1: 429 | version "8.0.1" 430 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" 431 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== 432 | dependencies: 433 | string-width "^4.2.0" 434 | strip-ansi "^6.0.1" 435 | wrap-ansi "^7.0.0" 436 | 437 | color-convert@^2.0.1: 438 | version "2.0.1" 439 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 440 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 441 | dependencies: 442 | color-name "~1.1.4" 443 | 444 | color-name@~1.1.4: 445 | version "1.1.4" 446 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 447 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 448 | 449 | colorette@^2.0.20: 450 | version "2.0.20" 451 | resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" 452 | integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== 453 | 454 | commander@^14.0.2: 455 | version "14.0.2" 456 | resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" 457 | integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== 458 | 459 | compare-func@^2.0.0: 460 | version "2.0.0" 461 | resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" 462 | integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== 463 | dependencies: 464 | array-ify "^1.0.0" 465 | dot-prop "^5.1.0" 466 | 467 | concat-map@0.0.1: 468 | version "0.0.1" 469 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 470 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 471 | 472 | conventional-changelog-angular@^7.0.0: 473 | version "7.0.0" 474 | resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz" 475 | integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== 476 | dependencies: 477 | compare-func "^2.0.0" 478 | 479 | conventional-commits-parser@^5.0.0: 480 | version "5.0.0" 481 | resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz" 482 | integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== 483 | dependencies: 484 | JSONStream "^1.3.5" 485 | is-text-path "^2.0.0" 486 | meow "^12.0.1" 487 | split2 "^4.0.0" 488 | 489 | cosmiconfig-typescript-loader@^6.1.0: 490 | version "6.2.0" 491 | resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.2.0.tgz" 492 | integrity sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ== 493 | dependencies: 494 | jiti "^2.6.1" 495 | 496 | cosmiconfig@^9.0.0: 497 | version "9.0.0" 498 | resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" 499 | integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== 500 | dependencies: 501 | env-paths "^2.2.1" 502 | import-fresh "^3.3.0" 503 | js-yaml "^4.1.0" 504 | parse-json "^5.2.0" 505 | 506 | cross-spawn@^7.0.6: 507 | version "7.0.6" 508 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" 509 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 510 | dependencies: 511 | path-key "^3.1.0" 512 | shebang-command "^2.0.0" 513 | which "^2.0.1" 514 | 515 | dargs@^8.0.0: 516 | version "8.1.0" 517 | resolved "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz" 518 | integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== 519 | 520 | debug@^4.3.1, debug@^4.3.2: 521 | version "4.4.1" 522 | resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" 523 | integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== 524 | dependencies: 525 | ms "^2.1.3" 526 | 527 | deep-is@^0.1.3: 528 | version "0.1.4" 529 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 530 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 531 | 532 | dot-prop@^5.1.0: 533 | version "5.3.0" 534 | resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" 535 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 536 | dependencies: 537 | is-obj "^2.0.0" 538 | 539 | emoji-regex@^10.3.0: 540 | version "10.6.0" 541 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz" 542 | integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== 543 | 544 | emoji-regex@^8.0.0: 545 | version "8.0.0" 546 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 547 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 548 | 549 | env-paths@^2.2.1: 550 | version "2.2.1" 551 | resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" 552 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 553 | 554 | environment@^1.0.0: 555 | version "1.1.0" 556 | resolved "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz" 557 | integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== 558 | 559 | error-ex@^1.3.1: 560 | version "1.3.4" 561 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz" 562 | integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== 563 | dependencies: 564 | is-arrayish "^0.2.1" 565 | 566 | escalade@^3.1.1: 567 | version "3.1.1" 568 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 569 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 570 | 571 | escape-string-regexp@^4.0.0: 572 | version "4.0.0" 573 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 574 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 575 | 576 | eslint-config-nodebb@1.1.11: 577 | version "1.1.11" 578 | resolved "https://registry.npmjs.org/eslint-config-nodebb/-/eslint-config-nodebb-1.1.11.tgz" 579 | integrity sha512-UEAPQgOG0bof5gcnmw4KANVNdmkL63n4Xu3SvkVT0HgOfnlG0OfYtIaBiTXztvAktUr/pvV/BEpWGOJFfJvbKg== 580 | 581 | eslint-scope@^8.4.0: 582 | version "8.4.0" 583 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz" 584 | integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== 585 | dependencies: 586 | esrecurse "^4.3.0" 587 | estraverse "^5.2.0" 588 | 589 | eslint-visitor-keys@^3.4.3: 590 | version "3.4.3" 591 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" 592 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== 593 | 594 | eslint-visitor-keys@^4.2.1: 595 | version "4.2.1" 596 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz" 597 | integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== 598 | 599 | eslint@9.39.2: 600 | version "9.39.2" 601 | resolved "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz" 602 | integrity sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw== 603 | dependencies: 604 | "@eslint-community/eslint-utils" "^4.8.0" 605 | "@eslint-community/regexpp" "^4.12.1" 606 | "@eslint/config-array" "^0.21.1" 607 | "@eslint/config-helpers" "^0.4.2" 608 | "@eslint/core" "^0.17.0" 609 | "@eslint/eslintrc" "^3.3.1" 610 | "@eslint/js" "9.39.2" 611 | "@eslint/plugin-kit" "^0.4.1" 612 | "@humanfs/node" "^0.16.6" 613 | "@humanwhocodes/module-importer" "^1.0.1" 614 | "@humanwhocodes/retry" "^0.4.2" 615 | "@types/estree" "^1.0.6" 616 | ajv "^6.12.4" 617 | chalk "^4.0.0" 618 | cross-spawn "^7.0.6" 619 | debug "^4.3.2" 620 | escape-string-regexp "^4.0.0" 621 | eslint-scope "^8.4.0" 622 | eslint-visitor-keys "^4.2.1" 623 | espree "^10.4.0" 624 | esquery "^1.5.0" 625 | esutils "^2.0.2" 626 | fast-deep-equal "^3.1.3" 627 | file-entry-cache "^8.0.0" 628 | find-up "^5.0.0" 629 | glob-parent "^6.0.2" 630 | ignore "^5.2.0" 631 | imurmurhash "^0.1.4" 632 | is-glob "^4.0.0" 633 | json-stable-stringify-without-jsonify "^1.0.1" 634 | lodash.merge "^4.6.2" 635 | minimatch "^3.1.2" 636 | natural-compare "^1.4.0" 637 | optionator "^0.9.3" 638 | 639 | espree@^10.0.1, espree@^10.4.0: 640 | version "10.4.0" 641 | resolved "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz" 642 | integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== 643 | dependencies: 644 | acorn "^8.15.0" 645 | acorn-jsx "^5.3.2" 646 | eslint-visitor-keys "^4.2.1" 647 | 648 | esquery@^1.5.0: 649 | version "1.6.0" 650 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" 651 | integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== 652 | dependencies: 653 | estraverse "^5.1.0" 654 | 655 | esrecurse@^4.3.0: 656 | version "4.3.0" 657 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 658 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 659 | dependencies: 660 | estraverse "^5.2.0" 661 | 662 | estraverse@^5.1.0, estraverse@^5.2.0: 663 | version "5.3.0" 664 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 665 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 666 | 667 | esutils@^2.0.2: 668 | version "2.0.3" 669 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 670 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 671 | 672 | eventemitter3@^5.0.1: 673 | version "5.0.1" 674 | resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" 675 | integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== 676 | 677 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 678 | version "3.1.3" 679 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 680 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 681 | 682 | fast-json-stable-stringify@^2.0.0: 683 | version "2.1.0" 684 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 685 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 686 | 687 | fast-levenshtein@^2.0.6: 688 | version "2.0.6" 689 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 690 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 691 | 692 | fast-uri@^3.0.1: 693 | version "3.1.0" 694 | resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz" 695 | integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== 696 | 697 | file-entry-cache@^8.0.0: 698 | version "8.0.0" 699 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" 700 | integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== 701 | dependencies: 702 | flat-cache "^4.0.0" 703 | 704 | fill-range@^7.1.1: 705 | version "7.1.1" 706 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" 707 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 708 | dependencies: 709 | to-regex-range "^5.0.1" 710 | 711 | find-up@^5.0.0: 712 | version "5.0.0" 713 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 714 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 715 | dependencies: 716 | locate-path "^6.0.0" 717 | path-exists "^4.0.0" 718 | 719 | find-up@^7.0.0: 720 | version "7.0.0" 721 | resolved "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz" 722 | integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== 723 | dependencies: 724 | locate-path "^7.2.0" 725 | path-exists "^5.0.0" 726 | unicorn-magic "^0.1.0" 727 | 728 | flat-cache@^4.0.0: 729 | version "4.0.1" 730 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" 731 | integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== 732 | dependencies: 733 | flatted "^3.2.9" 734 | keyv "^4.5.4" 735 | 736 | flatted@^3.2.9: 737 | version "3.3.3" 738 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" 739 | integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== 740 | 741 | get-caller-file@^2.0.5: 742 | version "2.0.5" 743 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 744 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 745 | 746 | get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.0, get-east-asian-width@^1.3.1: 747 | version "1.4.0" 748 | resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz" 749 | integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== 750 | 751 | git-raw-commits@^4.0.0: 752 | version "4.0.0" 753 | resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz" 754 | integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== 755 | dependencies: 756 | dargs "^8.0.0" 757 | meow "^12.0.1" 758 | split2 "^4.0.0" 759 | 760 | glob-parent@^6.0.2: 761 | version "6.0.2" 762 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" 763 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 764 | dependencies: 765 | is-glob "^4.0.3" 766 | 767 | global-directory@^4.0.1: 768 | version "4.0.1" 769 | resolved "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz" 770 | integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== 771 | dependencies: 772 | ini "4.1.1" 773 | 774 | globals@^14.0.0: 775 | version "14.0.0" 776 | resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" 777 | integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== 778 | 779 | has-flag@^4.0.0: 780 | version "4.0.0" 781 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 782 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 783 | 784 | husky@9.1.7: 785 | version "9.1.7" 786 | resolved "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz" 787 | integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== 788 | 789 | ignore@^5.2.0: 790 | version "5.3.2" 791 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" 792 | integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== 793 | 794 | import-fresh@^3.2.1, import-fresh@^3.3.0: 795 | version "3.3.1" 796 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" 797 | integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== 798 | dependencies: 799 | parent-module "^1.0.0" 800 | resolve-from "^4.0.0" 801 | 802 | import-meta-resolve@^4.0.0: 803 | version "4.2.0" 804 | resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz" 805 | integrity sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== 806 | 807 | imurmurhash@^0.1.4: 808 | version "0.1.4" 809 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 810 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 811 | 812 | ini@4.1.1: 813 | version "4.1.1" 814 | resolved "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz" 815 | integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== 816 | 817 | is-arrayish@^0.2.1: 818 | version "0.2.1" 819 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 820 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 821 | 822 | is-extglob@^2.1.1: 823 | version "2.1.1" 824 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 825 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 826 | 827 | is-fullwidth-code-point@^3.0.0: 828 | version "3.0.0" 829 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 830 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 831 | 832 | is-fullwidth-code-point@^5.0.0: 833 | version "5.1.0" 834 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz" 835 | integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== 836 | dependencies: 837 | get-east-asian-width "^1.3.1" 838 | 839 | is-glob@^4.0.0, is-glob@^4.0.3: 840 | version "4.0.3" 841 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 842 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 843 | dependencies: 844 | is-extglob "^2.1.1" 845 | 846 | is-number@^7.0.0: 847 | version "7.0.0" 848 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 849 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 850 | 851 | is-obj@^2.0.0: 852 | version "2.0.0" 853 | resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" 854 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 855 | 856 | is-text-path@^2.0.0: 857 | version "2.0.0" 858 | resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz" 859 | integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== 860 | dependencies: 861 | text-extensions "^2.0.0" 862 | 863 | isexe@^2.0.0: 864 | version "2.0.0" 865 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 866 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 867 | 868 | jiti@^2.6.1: 869 | version "2.6.1" 870 | resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" 871 | integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== 872 | 873 | js-tokens@^4.0.0: 874 | version "4.0.0" 875 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 876 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 877 | 878 | js-yaml@^4.1.0: 879 | version "4.1.0" 880 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 881 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 882 | dependencies: 883 | argparse "^2.0.1" 884 | 885 | json-buffer@3.0.1: 886 | version "3.0.1" 887 | resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" 888 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 889 | 890 | json-parse-even-better-errors@^2.3.0: 891 | version "2.3.1" 892 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" 893 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 894 | 895 | json-schema-traverse@^0.4.1: 896 | version "0.4.1" 897 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 898 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 899 | 900 | json-schema-traverse@^1.0.0: 901 | version "1.0.0" 902 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" 903 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 904 | 905 | json-stable-stringify-without-jsonify@^1.0.1: 906 | version "1.0.1" 907 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 908 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 909 | 910 | jsonparse@^1.2.0: 911 | version "1.3.1" 912 | resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" 913 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== 914 | 915 | keyv@^4.5.4: 916 | version "4.5.4" 917 | resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" 918 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== 919 | dependencies: 920 | json-buffer "3.0.1" 921 | 922 | levn@^0.4.1: 923 | version "0.4.1" 924 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 925 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 926 | dependencies: 927 | prelude-ls "^1.2.1" 928 | type-check "~0.4.0" 929 | 930 | lines-and-columns@^1.1.6: 931 | version "1.2.4" 932 | resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" 933 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 934 | 935 | lint-staged@16.2.7: 936 | version "16.2.7" 937 | resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz" 938 | integrity sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow== 939 | dependencies: 940 | commander "^14.0.2" 941 | listr2 "^9.0.5" 942 | micromatch "^4.0.8" 943 | nano-spawn "^2.0.0" 944 | pidtree "^0.6.0" 945 | string-argv "^0.3.2" 946 | yaml "^2.8.1" 947 | 948 | listr2@^9.0.5: 949 | version "9.0.5" 950 | resolved "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz" 951 | integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== 952 | dependencies: 953 | cli-truncate "^5.0.0" 954 | colorette "^2.0.20" 955 | eventemitter3 "^5.0.1" 956 | log-update "^6.1.0" 957 | rfdc "^1.4.1" 958 | wrap-ansi "^9.0.0" 959 | 960 | locate-path@^6.0.0: 961 | version "6.0.0" 962 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 963 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 964 | dependencies: 965 | p-locate "^5.0.0" 966 | 967 | locate-path@^7.2.0: 968 | version "7.2.0" 969 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" 970 | integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== 971 | dependencies: 972 | p-locate "^6.0.0" 973 | 974 | lodash.camelcase@^4.3.0: 975 | version "4.3.0" 976 | resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" 977 | integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== 978 | 979 | lodash.isplainobject@^4.0.6: 980 | version "4.0.6" 981 | resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" 982 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== 983 | 984 | lodash.kebabcase@^4.1.1: 985 | version "4.1.1" 986 | resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" 987 | integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== 988 | 989 | lodash.merge@^4.6.2: 990 | version "4.6.2" 991 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" 992 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 993 | 994 | lodash.mergewith@^4.6.2: 995 | version "4.6.2" 996 | resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz" 997 | integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== 998 | 999 | lodash.snakecase@^4.1.1: 1000 | version "4.1.1" 1001 | resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" 1002 | integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== 1003 | 1004 | lodash.startcase@^4.4.0: 1005 | version "4.4.0" 1006 | resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz" 1007 | integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== 1008 | 1009 | lodash.uniq@^4.5.0: 1010 | version "4.5.0" 1011 | resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" 1012 | integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== 1013 | 1014 | lodash.upperfirst@^4.3.1: 1015 | version "4.3.1" 1016 | resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" 1017 | integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== 1018 | 1019 | log-update@^6.1.0: 1020 | version "6.1.0" 1021 | resolved "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz" 1022 | integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== 1023 | dependencies: 1024 | ansi-escapes "^7.0.0" 1025 | cli-cursor "^5.0.0" 1026 | slice-ansi "^7.1.0" 1027 | strip-ansi "^7.1.0" 1028 | wrap-ansi "^9.0.0" 1029 | 1030 | meow@^12.0.1: 1031 | version "12.1.1" 1032 | resolved "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz" 1033 | integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== 1034 | 1035 | micromatch@^4.0.8: 1036 | version "4.0.8" 1037 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" 1038 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 1039 | dependencies: 1040 | braces "^3.0.3" 1041 | picomatch "^2.3.1" 1042 | 1043 | mimic-function@^5.0.0: 1044 | version "5.0.1" 1045 | resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz" 1046 | integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== 1047 | 1048 | minimatch@^3.1.2: 1049 | version "3.1.2" 1050 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1051 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1052 | dependencies: 1053 | brace-expansion "^1.1.7" 1054 | 1055 | minimist@^1.2.8: 1056 | version "1.2.8" 1057 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" 1058 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1059 | 1060 | ms@^2.1.3: 1061 | version "2.1.3" 1062 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 1063 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1064 | 1065 | nano-spawn@^2.0.0: 1066 | version "2.0.0" 1067 | resolved "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz" 1068 | integrity sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw== 1069 | 1070 | natural-compare@^1.4.0: 1071 | version "1.4.0" 1072 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 1073 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1074 | 1075 | onetime@^7.0.0: 1076 | version "7.0.0" 1077 | resolved "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz" 1078 | integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== 1079 | dependencies: 1080 | mimic-function "^5.0.0" 1081 | 1082 | optionator@^0.9.3: 1083 | version "0.9.4" 1084 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" 1085 | integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== 1086 | dependencies: 1087 | deep-is "^0.1.3" 1088 | fast-levenshtein "^2.0.6" 1089 | levn "^0.4.1" 1090 | prelude-ls "^1.2.1" 1091 | type-check "^0.4.0" 1092 | word-wrap "^1.2.5" 1093 | 1094 | p-limit@^3.0.2: 1095 | version "3.1.0" 1096 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 1097 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1098 | dependencies: 1099 | yocto-queue "^0.1.0" 1100 | 1101 | p-limit@^4.0.0: 1102 | version "4.0.0" 1103 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" 1104 | integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== 1105 | dependencies: 1106 | yocto-queue "^1.0.0" 1107 | 1108 | p-locate@^5.0.0: 1109 | version "5.0.0" 1110 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 1111 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1112 | dependencies: 1113 | p-limit "^3.0.2" 1114 | 1115 | p-locate@^6.0.0: 1116 | version "6.0.0" 1117 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" 1118 | integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== 1119 | dependencies: 1120 | p-limit "^4.0.0" 1121 | 1122 | parent-module@^1.0.0: 1123 | version "1.0.1" 1124 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 1125 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1126 | dependencies: 1127 | callsites "^3.0.0" 1128 | 1129 | parse-json@^5.2.0: 1130 | version "5.2.0" 1131 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" 1132 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1133 | dependencies: 1134 | "@babel/code-frame" "^7.0.0" 1135 | error-ex "^1.3.1" 1136 | json-parse-even-better-errors "^2.3.0" 1137 | lines-and-columns "^1.1.6" 1138 | 1139 | path-exists@^4.0.0: 1140 | version "4.0.0" 1141 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 1142 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1143 | 1144 | path-exists@^5.0.0: 1145 | version "5.0.0" 1146 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" 1147 | integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== 1148 | 1149 | path-key@^3.1.0: 1150 | version "3.1.1" 1151 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 1152 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1153 | 1154 | picocolors@^1.1.1: 1155 | version "1.1.1" 1156 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" 1157 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 1158 | 1159 | picomatch@^2.3.1: 1160 | version "2.3.1" 1161 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 1162 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1163 | 1164 | pidtree@^0.6.0: 1165 | version "0.6.0" 1166 | resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" 1167 | integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== 1168 | 1169 | prelude-ls@^1.2.1: 1170 | version "1.2.1" 1171 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 1172 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1173 | 1174 | punycode@^2.1.0: 1175 | version "2.3.1" 1176 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" 1177 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1178 | 1179 | require-directory@^2.1.1: 1180 | version "2.1.1" 1181 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 1182 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1183 | 1184 | require-from-string@^2.0.2: 1185 | version "2.0.2" 1186 | resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" 1187 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1188 | 1189 | resolve-from@^4.0.0: 1190 | version "4.0.0" 1191 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 1192 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1193 | 1194 | resolve-from@^5.0.0: 1195 | version "5.0.0" 1196 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 1197 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1198 | 1199 | restore-cursor@^5.0.0: 1200 | version "5.1.0" 1201 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz" 1202 | integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== 1203 | dependencies: 1204 | onetime "^7.0.0" 1205 | signal-exit "^4.1.0" 1206 | 1207 | rfdc@^1.4.1: 1208 | version "1.4.1" 1209 | resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" 1210 | integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== 1211 | 1212 | semver@^7.6.0: 1213 | version "7.7.3" 1214 | resolved "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz" 1215 | integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== 1216 | 1217 | shebang-command@^2.0.0: 1218 | version "2.0.0" 1219 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 1220 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1221 | dependencies: 1222 | shebang-regex "^3.0.0" 1223 | 1224 | shebang-regex@^3.0.0: 1225 | version "3.0.0" 1226 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 1227 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1228 | 1229 | signal-exit@^4.1.0: 1230 | version "4.1.0" 1231 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" 1232 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1233 | 1234 | slice-ansi@^7.1.0: 1235 | version "7.1.2" 1236 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz" 1237 | integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== 1238 | dependencies: 1239 | ansi-styles "^6.2.1" 1240 | is-fullwidth-code-point "^5.0.0" 1241 | 1242 | split2@^4.0.0: 1243 | version "4.2.0" 1244 | resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" 1245 | integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== 1246 | 1247 | string-argv@^0.3.2: 1248 | version "0.3.2" 1249 | resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" 1250 | integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== 1251 | 1252 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: 1253 | version "4.2.3" 1254 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1255 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1256 | dependencies: 1257 | emoji-regex "^8.0.0" 1258 | is-fullwidth-code-point "^3.0.0" 1259 | strip-ansi "^6.0.1" 1260 | 1261 | string-width@^7.0.0: 1262 | version "7.2.0" 1263 | resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz" 1264 | integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== 1265 | dependencies: 1266 | emoji-regex "^10.3.0" 1267 | get-east-asian-width "^1.0.0" 1268 | strip-ansi "^7.1.0" 1269 | 1270 | string-width@^8.0.0: 1271 | version "8.1.0" 1272 | resolved "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz" 1273 | integrity sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg== 1274 | dependencies: 1275 | get-east-asian-width "^1.3.0" 1276 | strip-ansi "^7.1.0" 1277 | 1278 | strip-ansi@^6.0.0: 1279 | version "6.0.0" 1280 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" 1281 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1282 | dependencies: 1283 | ansi-regex "^5.0.0" 1284 | 1285 | strip-ansi@^6.0.1: 1286 | version "6.0.1" 1287 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1288 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1289 | dependencies: 1290 | ansi-regex "^5.0.1" 1291 | 1292 | strip-ansi@^7.1.0: 1293 | version "7.1.2" 1294 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz" 1295 | integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== 1296 | dependencies: 1297 | ansi-regex "^6.0.1" 1298 | 1299 | strip-json-comments@^3.1.1: 1300 | version "3.1.1" 1301 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 1302 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1303 | 1304 | supports-color@^7.1.0: 1305 | version "7.2.0" 1306 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1307 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1308 | dependencies: 1309 | has-flag "^4.0.0" 1310 | 1311 | text-extensions@^2.0.0: 1312 | version "2.4.0" 1313 | resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz" 1314 | integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== 1315 | 1316 | "through@>=2.2.7 <3": 1317 | version "2.3.8" 1318 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" 1319 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 1320 | 1321 | tinyexec@^1.0.0: 1322 | version "1.0.2" 1323 | resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz" 1324 | integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== 1325 | 1326 | to-regex-range@^5.0.1: 1327 | version "5.0.1" 1328 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 1329 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1330 | dependencies: 1331 | is-number "^7.0.0" 1332 | 1333 | type-check@^0.4.0, type-check@~0.4.0: 1334 | version "0.4.0" 1335 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 1336 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1337 | dependencies: 1338 | prelude-ls "^1.2.1" 1339 | 1340 | undici-types@~7.16.0: 1341 | version "7.16.0" 1342 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" 1343 | integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== 1344 | 1345 | unicorn-magic@^0.1.0: 1346 | version "0.1.0" 1347 | resolved "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz" 1348 | integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== 1349 | 1350 | uri-js@^4.2.2: 1351 | version "4.4.1" 1352 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 1353 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1354 | dependencies: 1355 | punycode "^2.1.0" 1356 | 1357 | which@^2.0.1: 1358 | version "2.0.2" 1359 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 1360 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1361 | dependencies: 1362 | isexe "^2.0.0" 1363 | 1364 | word-wrap@^1.2.5: 1365 | version "1.2.5" 1366 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" 1367 | integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== 1368 | 1369 | wrap-ansi@^7.0.0: 1370 | version "7.0.0" 1371 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 1372 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1373 | dependencies: 1374 | ansi-styles "^4.0.0" 1375 | string-width "^4.1.0" 1376 | strip-ansi "^6.0.0" 1377 | 1378 | wrap-ansi@^9.0.0: 1379 | version "9.0.2" 1380 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz" 1381 | integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== 1382 | dependencies: 1383 | ansi-styles "^6.2.1" 1384 | string-width "^7.0.0" 1385 | strip-ansi "^7.1.0" 1386 | 1387 | y18n@^5.0.5: 1388 | version "5.0.8" 1389 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 1390 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1391 | 1392 | yaml@^2.8.1: 1393 | version "2.8.1" 1394 | resolved "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz" 1395 | integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== 1396 | 1397 | yargs-parser@^21.1.1: 1398 | version "21.1.1" 1399 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" 1400 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 1401 | 1402 | yargs@^17.0.0: 1403 | version "17.7.2" 1404 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" 1405 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== 1406 | dependencies: 1407 | cliui "^8.0.1" 1408 | escalade "^3.1.1" 1409 | get-caller-file "^2.0.5" 1410 | require-directory "^2.1.1" 1411 | string-width "^4.2.3" 1412 | y18n "^5.0.5" 1413 | yargs-parser "^21.1.1" 1414 | 1415 | yocto-queue@^0.1.0: 1416 | version "0.1.0" 1417 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 1418 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1419 | 1420 | yocto-queue@^1.0.0: 1421 | version "1.2.2" 1422 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz" 1423 | integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== 1424 | --------------------------------------------------------------------------------